<?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>168839</bug_id>
          
          <creation_ts>2017-02-24 12:48:16 -0800</creation_ts>
          <short_desc>Download attribute should be sanitized before being used as suggested filename</short_desc>
          <delta_ts>2017-02-25 08:33:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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=168856</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1280831</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 12:48:16 -0800</bug_when>
    <thetext>Download attribute should be sanitized before being used as suggested filename for download.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280832</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 12:48:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/30683109&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280885</commentid>
    <comment_count>2</comment_count>
      <attachid>302692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 14:47:55 -0800</bug_when>
    <thetext>Created attachment 302692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280886</commentid>
    <comment_count>3</comment_count>
      <attachid>302692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 14:51:42 -0800</bug_when>
    <thetext>Comment on attachment 302692
Patch

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

&gt; Source/WebCore/html/HTMLAnchorElement.cpp:384
&gt; +            downloadAttribute = ResourceResponse::sanitizeSuggestedFilename(attributeWithoutSynchronization(downloadAttr));

We could also use FileSystem.h &apos;s encodeForFileName() but it does %-encoding and it would be inconsistent with what CFNetwork does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280891</commentid>
    <comment_count>4</comment_count>
      <attachid>302692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:10:03 -0800</bug_when>
    <thetext>Comment on attachment 302692
Patch

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

&gt; LayoutTests/fast/dom/HTMLAnchorElement/anchor-file-blob-download-includes-unicode-expected.txt:2
&gt; +Downloading URL with suggested filename &quot;ä½ å¥½.png&quot;

This is due to bugzilla. The output does look correct locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280893</commentid>
    <comment_count>5</comment_count>
      <attachid>302692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:15:05 -0800</bug_when>
    <thetext>Comment on attachment 302692
Patch

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

&gt; Source/WebCore/platform/network/ResourceResponseBase.cpp:230
&gt; +    ResourceResponse response(URL(ParsedURLString, &quot;http://example.com&quot;), String(), -1, String());

We need a HTTP URL and a non-zero status code or ResourceResponse::initNSURLResponse() will not process the headers when constructing the NSURLResponse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280895</commentid>
    <comment_count>6</comment_count>
      <attachid>302692</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-02-24 15:17:43 -0800</bug_when>
    <thetext>Comment on attachment 302692
Patch

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

&gt; Source/WebCore/platform/network/ResourceResponseBase.cpp:235
&gt; +    StringBuilder value;
&gt; +    value.appendLiteral(&quot;attachment; filename=\&quot;&quot;);
&gt; +    value.append(suggestedFilename.replace(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;));
&gt; +    value.appendLiteral(&quot;\&quot;&quot;);

This could be done more efficiently without a StringBuilder:

    String value = makeString(&quot;attachment; filename=\&quot;&quot;, suggestedFilename.replace(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;), &apos;&apos;&quot;&apos;);

Or you could use operator+ if you like that syntax better than makeString.

I’m also surprised that we don‘t have an overload of replace that takes a char for the first argument and a const char* for the second argument. If we do, then that should be used.

&gt; Source/WebCore/platform/network/ResourceResponseBase.h:117
&gt; +    WEBCORE_EXPORT static String sanitizeSuggestedFilename(String);

Typically the argument would be a const String&amp; rather than a String to avoid unnecessary reference count churn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280897</commentid>
    <comment_count>7</comment_count>
      <attachid>302692</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:19:00 -0800</bug_when>
    <thetext>Comment on attachment 302692
Patch

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

&gt;&gt; Source/WebCore/platform/network/ResourceResponseBase.h:117
&gt;&gt; +    WEBCORE_EXPORT static String sanitizeSuggestedFilename(String);
&gt; 
&gt; Typically the argument would be a const String&amp; rather than a String to avoid unnecessary reference count churn.

This issue is that String::replace() is not const. I can make the parameter a const String&amp;, but then I&apos;ll need a local variable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280900</commentid>
    <comment_count>8</comment_count>
      <attachid>302694</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:32:45 -0800</bug_when>
    <thetext>Created attachment 302694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280902</commentid>
    <comment_count>9</comment_count>
      <attachid>302696</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:46:39 -0800</bug_when>
    <thetext>Created attachment 302696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280903</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 15:47:24 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Comment on attachment 302692 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=302692&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/network/ResourceResponseBase.cpp:235
&gt; &gt; +    StringBuilder value;
&gt; &gt; +    value.appendLiteral(&quot;attachment; filename=\&quot;&quot;);
&gt; &gt; +    value.append(suggestedFilename.replace(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;));
&gt; &gt; +    value.appendLiteral(&quot;\&quot;&quot;);
&gt; 
&gt; This could be done more efficiently without a StringBuilder:
&gt; 
&gt;     String value = makeString(&quot;attachment; filename=\&quot;&quot;,
&gt; suggestedFilename.replace(&quot;\&quot;&quot;, &quot;\\\&quot;&quot;), &apos;&apos;&quot;&apos;);
&gt; 
&gt; Or you could use operator+ if you like that syntax better than makeString.
&gt; 
&gt; I’m also surprised that we don‘t have an overload of replace that takes a
&gt; char for the first argument and a const char* for the second argument. If we
&gt; do, then that should be used.

We do have such overload. I am using it now.

&gt; 
&gt; &gt; Source/WebCore/platform/network/ResourceResponseBase.h:117
&gt; &gt; +    WEBCORE_EXPORT static String sanitizeSuggestedFilename(String);
&gt; 
&gt; Typically the argument would be a const String&amp; rather than a String to
&gt; avoid unnecessary reference count churn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1280904</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-02-24 16:04:17 -0800</bug_when>
    <thetext>Committed r212972: &lt;http://trac.webkit.org/changeset/212972&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1281080</commentid>
    <comment_count>12</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-02-25 08:33:18 -0800</bug_when>
    <thetext>New tests are all failing for GTK, see bug #168871.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302692</attachid>
            <date>2017-02-24 14:47:55 -0800</date>
            <delta_ts>2017-02-24 15:32:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168839-20170224144505.patch</filename>
            <type>text/plain</type>
            <size>17294</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgxMDk3MTI5ZTE1ZGVi
MjhlMjliOTkyZjJlYzQ0ODYzMzRlNTY1ZC4uOGY2MTFmYzVkMTFlZmFjZWUwY2FkYTIwMTliY2Q4
MzZkMTQ5NGExOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRl
IHNob3VsZCBiZSBzYW5pdGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVu
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4
MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNhbml0aXplIERvd25sb2FkIGF0dHJpYnV0
ZSBiZWZvcmUgdXNpbmcgaXQgYXMgYSBzdWdnZXN0ZWQgZmlsZW5hbWUgZm9yIHRoZSBkb3dubG9h
ZC4KKyAgICAgICAgV2UgcmVseSBvbiBSZXNvdXJjZVJlc3BvbnNlJ3Mgc2FuaXRpemluZyBvZiB0
aGUgc3VnZ2VzdGVkIGZpbGVuYW1lIHRvIGRvIHNvLCB3aGljaCBoYXMKKyAgICAgICAgdGhlIGJl
bmVmaXQgb2YgYmVpbmcgY29uc2lzdGVudCB3aXRoIGRvd25sb2FkcyB3aXRob3V0IHRoZSBkb3du
bG9hZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbAor
ICAgICAgICAgICAgICAgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtdW5p
Y29kZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVTdWdnZXN0ZWRGaWxlbmFtZSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorCisyMDE3
LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW01hY10g
UmVwb3J0IGRvbWFpbnMgdXNpbmcgYWJub3JtYWxseSBoaWdoIG1lbW9yeSB1c2FnZSB2aWEgZW5o
YW5jZWQgcHJpdmFjeSBsb2dnaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjg3OTcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5OTY0MDE3Pgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBlMzk5NTA4MDZl
NmZlYzJmMjM2NjUyZTZjODRhM2JmMzE2OWM3ZDU0Li5jYjFmMWM5ZjU0NjUzZDZiZGQyYjQ3OTJj
MjYzOTg4MjEwYzdmYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50
LmNwcApAQCAtMzc1LDEzICszNzUsMTMgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxl
Q2xpY2soRXZlbnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJs
LCBldmVudCk7CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwo
dXJsLnRvU3RyaW5nKCkpOwogCi0gICAgYXV0byBkb3dubG9hZEF0dHJpYnV0ZSA9IG51bGxBdG9t
OworICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRU
UklCVVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LmRvd25sb2FkQXR0cmlidXRlRW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElnbm9yZSB0aGUgZG93
bmxvYWQgYXR0cmlidXRlIGNvbXBsZXRlbHkgaWYgdGhlIGhyZWYgVVJMIGlzIGNyb3NzIG9yaWdp
bi4KICAgICAgICAgYm9vbCBpc1NhbWVPcmlnaW4gPSBjb21wbGV0ZWRVUkwucHJvdG9jb2xJc0Rh
dGEoKSB8fCBkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChjb21wbGV0ZWRV
UkwpOwogICAgICAgICBpZiAoaXNTYW1lT3JpZ2luKQotICAgICAgICAgICAgZG93bmxvYWRBdHRy
aWJ1dGUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRvd25sb2FkQXR0cik7Cisg
ICAgICAgICAgICBkb3dubG9hZEF0dHJpYnV0ZSA9IFJlc291cmNlUmVzcG9uc2U6OnNhbml0aXpl
U3VnZ2VzdGVkRmlsZW5hbWUoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkb3dubG9h
ZEF0dHIpKTsKICAgICAgICAgZWxzZSBpZiAoaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXph
dGlvbihkb3dubG9hZEF0dHIpKQogICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVz
c2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiVGhl
IGRvd25sb2FkIGF0dHJpYnV0ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMgaHJl
ZiBVUkwgaGFzIGEgZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbi4iKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJh
c2UuY3BwCmluZGV4IDJkMTBiNjY2YmI5NmVmNThjMGYxM2U2M2ZiNTQ3YjE5ODA3ODJmODMuLjcy
ZDA4OTI1MzhjZjY5ZGI1NjU3YjJkNzJjNmQ4ZmU4MGM0NzgzYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3Bw
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z1ZpZXcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjI0LDYgKzIyNSwxOCBAQCBTdHJp
bmcgUmVzb3VyY2VSZXNwb25zZUJhc2U6OnN1Z2dlc3RlZEZpbGVuYW1lKCkgY29uc3QKICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Y29uc3QgUmVzb3VyY2VSZXNwb25zZSo+KHRoaXMpLT5wbGF0Zm9y
bVN1Z2dlc3RlZEZpbGVuYW1lKCk7CiB9CiAKK1N0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6
c2FuaXRpemVTdWdnZXN0ZWRGaWxlbmFtZShTdHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUpCit7Cisg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZShVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDov
L2V4YW1wbGUuY29tIiksIFN0cmluZygpLCAtMSwgU3RyaW5nKCkpOworICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNDb2RlKDIwMCk7CisgICAgU3RyaW5nQnVpbGRlciB2YWx1ZTsKKyAgICB2YWx1
ZS5hcHBlbmRMaXRlcmFsKCJhdHRhY2htZW50OyBmaWxlbmFtZT1cIiIpOworICAgIHZhbHVlLmFw
cGVuZChzdWdnZXN0ZWRGaWxlbmFtZS5yZXBsYWNlKCJcIiIsICJcXFwiIikpOworICAgIHZhbHVl
LmFwcGVuZExpdGVyYWwoIlwiIik7CisgICAgcmVzcG9uc2Uuc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpDb250ZW50RGlzcG9zaXRpb24sIHZhbHVlLnRvU3RyaW5nKCkpOworICAg
IHJldHVybiByZXNwb25zZS5zdWdnZXN0ZWRGaWxlbmFtZSgpOworfQorCiBib29sIFJlc291cmNl
UmVzcG9uc2VCYXNlOjppc1N1Y2Nlc3NmdWwoKSBjb25zdAogewogICAgIGludCBjb2RlID0gaHR0
cFN0YXR1c0NvZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAppbmRleCBkNDZlZDY0NTQxNDhlZDJmMGM1OWZhYzBl
ODAzMjQ3YjljZDI3N2RmLi45ODcxZTM0NTBlZTY2MzhiOWI0YjU2NTljOTNmYmRiOWJhZGRhNWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVz
cG9uc2VCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZVJlc3BvbnNlQmFzZS5oCkBAIC0xMTQsNiArMTE0LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpc0F0dGFjaG1lbnQoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBT
dHJpbmcgc3VnZ2VzdGVkRmlsZW5hbWUoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgU3RyaW5nIHNhbml0aXplU3VnZ2VzdGVkRmlsZW5hbWUoU3RyaW5nKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgaW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0OwogICAgIGNvbnN0
IHN0ZDo6b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3Qg
eyByZXR1cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjMwMzY2ZDllOGE0YzdmMTdh
NTI1N2U2OTYxZTk5Y2E4MzMwMjdmYy4uZDBhZmQ5YjZiZTdjZjc1OTg3MDU3OGUyYjk4N2RjNjBm
NDdhZjg3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTI0ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRlIHNob3VsZCBi
ZSBzYW5pdGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4MzkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAg
ICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQt
aW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVz
LWRvdWJsZXF1b3RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2Fk
LWluY2x1ZGVzLXVuaWNvZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVu
aWNvZGUuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9U
ZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0w
Mi0yNCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIC4uIHNob3VsZCBub3QgcmVtb3ZlIHdpbmRvd3MgZHJpdmUgbGV0dGVycyBpbiBwYXRocyBv
ZiBmaWxlIFVSTHMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JF
bGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjE1ZmUzMTBkNDBjZDdjOTI4OWY0ZmM0OWQzODA3OTQ4OWIzZWM5ZQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1
Z2dlc3RlZCBmaWxlbmFtZSAidGVzdCJhYmUucG5nIgorRG93bmxvYWQgY29tcGxldGVkLgorVGhl
IHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRo
ZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxvYiBVUkwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxl
LWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVk
ZXMtZG91YmxlcXVvdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWRjNGQ1YzVhNDQ5ZjQ4OTBlMzA2NTU0
NjBmZmE4ZjA0ZmMzNTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
SFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3Vi
bGVxdW90ZS5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRoZSBkb3dubG9h
ZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwiIGRvd25sb2FkPSd0ZXN0ImFi
ZS5wbmcnPkZpbGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNr
KGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQo
J0NsaWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10
Lm9mZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9
IGludGVybmFscy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBs
aW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVm
ID0gd2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9
CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93
bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNs
YXNoZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Yjc5ZGUzMDM3M2FmZDhhYzY3MDg2ZjYy
MzU3MTQ4NzUwYWVlZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNo
ZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25s
b2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidGVzdDFfdGVzdDJhYmUucG5nIgor
RG93bmxvYWQgY29tcGxldGVkLgorVGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQg
Tk9UIGluY2x1ZGUgc2xhc2hlcyBvciBiYWNrc2xhc2hlcyBhbmQgdGhlIGRvd25sb2FkIHNob3Vs
ZCBzdWNjZWVkLgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1p
bmNsdWRlcy1zbGFzaGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jZDc1NTRmMjhhMzkwODBiNjY0MmRiNGI0ZTI4MTRiMzExOWNlYTIyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKQEAgLTAsMCArMSwzNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2ph
dmFzY3JpcHQnPgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBOT1Qg
aW5jbHVkZSBzbGFzaGVzIG9yIGJhY2tzbGFzaGVzIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1
Y2NlZWQuPC9wPgorPGEgaWQ9ImJsb2ItdXJsIiBkb3dubG9hZD0idGVzdDEvdGVzdDJcXGFiZS5w
bmciPkZpbGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVs
bXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0Ns
aWNrIHRoZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9m
ZnNldFRvcCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGlu
dGVybmFscy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5r
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0g
d2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9City
dW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxv
YWQtaW5jbHVkZXMtdW5pY29kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNv
ZGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMzNWEzYTAyZGM1OGNhMzVmNGQ5ZmI3NDk4NzQ1
Y2VjOTYyZjYyMDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
QW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2Fk
aW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAi5L2g5aW9LnBuZyIKK0Rvd25sb2FkIGNv
bXBsZXRlZC4KK1RoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICLkvaDlpb0u
cG5nIiBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitGaWxlIGJhY2tlZCBibG9i
IFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
YW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2Fk
LWluY2x1ZGVzLXVuaWNvZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Mjc3Y2IzYjUyNmNiNGNhMjA0Njlj
ZGRjMTExYTYyY2I5YWE2M2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11
bmljb2RlLmh0bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3Jp
cHQnPgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAi5L2g5aW9
LnBuZyIgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11
cmwiIGRvd25sb2FkPSfkvaDlpb0ucG5nJz5GaWxlIGJhY2tlZCBibG9iIFVSTDwvYT4KKzxzY3Jp
cHQ+CitmdW5jdGlvbiBjbGljayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5v
ZmZzZXRMZWZ0ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3Vz
ZURvd24oKTsKKyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmlsZSgiLi4vcmVzb3VyY2VzL2Fi
ZS5wbmciKTsKKyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9iLXVy
bCIpOworICAgIGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOwor
ICAgIGNsaWNrKGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA1NzUwNDhmNTUyMWEzMmE2N2Y0MzJhMDE1N2ZiNTg2NTk5
ZWNlNDFkLi5iYjhjN2ExYzk5NDkxOGRhYzQ3YmMxNGQ0N2I1YzY1YTczNTQxMGE3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTEzMjcsNiArMTMyNyw5IEBAIHdlYmtpdC5vcmcvYi8xNTU0OTUgY29tcG9z
aXRpbmcvdmlzaWJsZS1yZWN0L2FuaW1hdGVkLWZyb20tbm9uZS5odG1sIFsgRmFpbHVyZSBQCiB3
ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3du
bG9hZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBm
YXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQt
c3ludGhldGljLWNsaWNrLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tp
cCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQor
d2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmls
ZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRv
d25sb2FkLWluY2x1ZGVzLXVuaWNvZGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2
OSBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Via2l0
Lm9yZy9iLzE1NjA2OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1i
bG9iLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1cml0
eS9hbmNob3ItZG93bmxvYWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA5ZjUzZDhmMGRmZDc5YjcxZGNmZTVkN2IzYjM3OWNjNzEwNDgxNmI1Li4xMWE2NjlhY2Q0
YmU0MjQ3ZjM3YzNkM2I2MWEwZTYyZGY1Mjg3OGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MTUs
NiArMTgxNSw5IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLWRvd25sb2FkLXVuc2V0Lmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTU2MDY3
IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5odG1sIFsgU2tpcCBd
CiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1m
aWxlLWJsb2ItY29udmVydC10by1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2Iv
MTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxv
YWQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1b3RlLmh0
bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0KIHdlYmtp
dC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2
NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3Itbm9kb3dubG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZmJhOGRhNGZkNjU4NjNjMWJjNDlhNjgxNTZk
ZmE4ODJjNWJhMzZkZC4uMjFmYmMxNTVkZmZjZGYyOTIyYmQ0ZmU3MDA4NzhkNjlmMGVhODhiMSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MjE0LDYgKzIxNCw5IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVs
ZW1lbnQvYW5jaG9yLWRvd25sb2FkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTYw
NjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1j
bGljay5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2su
aHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcv
Yi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3du
bG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2
MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQt
aW5jbHVkZXMtc2xhc2hlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
dW5pY29kZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3It
ZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkg
aHR0cC90ZXN0cy9kb3dubG9hZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDY1MDEzMmJmYjA4ZDAzMzYx
ZDQ0M2ZkYjZhZWM2MTYzY2IzZTQyYi4uM2JmY2QyNzk0MzNmZTkyNjFlNzI4M2RhYTQ4YjQxYzI4
YjRkNDI5NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTQ0NSw2ICs0NDUsOSBAQCBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxv
YWQtdW5zZXQuaHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNr
Lmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBd
CitmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWlu
Y2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQv
YW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0K
IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8t
ZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25s
b2FkLW5vLWV4dGVuc2lvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEt
ZG93bmxvYWQuaHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302694</attachid>
            <date>2017-02-24 15:32:45 -0800</date>
            <delta_ts>2017-02-24 15:46:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168839-20170224152955.patch</filename>
            <type>text/plain</type>
            <size>17171</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgxMDk3MTI5ZTE1ZGVi
MjhlMjliOTkyZjJlYzQ0ODYzMzRlNTY1ZC4uNWZjMjUxMmI1MjRhMDBlMWViM2NmZmZhYTRmYjdi
NDFhOWNlNjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRl
IHNob3VsZCBiZSBzYW5pdGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVu
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4
MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNhbml0aXplIERvd25sb2FkIGF0dHJpYnV0ZSBi
ZWZvcmUgdXNpbmcgaXQgYXMgYSBzdWdnZXN0ZWQgZmlsZW5hbWUgZm9yIHRoZSBkb3dubG9hZC4K
KyAgICAgICAgV2UgcmVseSBvbiBSZXNvdXJjZVJlc3BvbnNlJ3Mgc2FuaXRpemluZyBvZiB0aGUg
c3VnZ2VzdGVkIGZpbGVuYW1lIHRvIGRvIHNvLCB3aGljaCBoYXMKKyAgICAgICAgdGhlIGJlbmVm
aXQgb2YgYmVpbmcgY29uc2lzdGVudCB3aXRoIGRvd25sb2FkcyB3aXRob3V0IHRoZSBkb3dubG9h
ZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1k
b3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtdW5pY29k
ZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorCisyMDE3LTAy
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW01hY10gUmVw
b3J0IGRvbWFpbnMgdXNpbmcgYWJub3JtYWxseSBoaWdoIG1lbW9yeSB1c2FnZSB2aWEgZW5oYW5j
ZWQgcHJpdmFjeSBsb2dnaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjg3OTcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5OTY0MDE3PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBlMzk5NTA4MDZlNmZl
YzJmMjM2NjUyZTZjODRhM2JmMzE2OWM3ZDU0Li5jYjFmMWM5ZjU0NjUzZDZiZGQyYjQ3OTJjMjYz
OTg4MjEwYzdmYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cApAQCAtMzc1LDEzICszNzUsMTMgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xp
Y2soRXZlbnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBl
dmVudCk7CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJs
LnRvU3RyaW5nKCkpOwogCi0gICAgYXV0byBkb3dubG9hZEF0dHJpYnV0ZSA9IG51bGxBdG9tOwor
ICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklC
VVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRv
d25sb2FkQXR0cmlidXRlRW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElnbm9yZSB0aGUgZG93bmxv
YWQgYXR0cmlidXRlIGNvbXBsZXRlbHkgaWYgdGhlIGhyZWYgVVJMIGlzIGNyb3NzIG9yaWdpbi4K
ICAgICAgICAgYm9vbCBpc1NhbWVPcmlnaW4gPSBjb21wbGV0ZWRVUkwucHJvdG9jb2xJc0RhdGEo
KSB8fCBkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChjb21wbGV0ZWRVUkwp
OwogICAgICAgICBpZiAoaXNTYW1lT3JpZ2luKQotICAgICAgICAgICAgZG93bmxvYWRBdHRyaWJ1
dGUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRvd25sb2FkQXR0cik7CisgICAg
ICAgICAgICBkb3dubG9hZEF0dHJpYnV0ZSA9IFJlc291cmNlUmVzcG9uc2U6OnNhbml0aXplU3Vn
Z2VzdGVkRmlsZW5hbWUoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkb3dubG9hZEF0
dHIpKTsKICAgICAgICAgZWxzZSBpZiAoaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihkb3dubG9hZEF0dHIpKQogICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiVGhlIGRv
d25sb2FkIGF0dHJpYnV0ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMgaHJlZiBV
UkwgaGFzIGEgZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbi4iKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwCmluZGV4IDJkMTBiNjY2YmI5NmVmNThjMGYxM2U2M2ZiNTQ3YjE5ODA3ODJmODMuLmFhOTk5
Mjg5Y2M3NWFlZjM2ZWI1ZjQ4NDdlODMxNGQyMDRjOWQ2M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBA
IC0yMjQsNiArMjI0LDE5IEBAIFN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZXNvdXJjZVJl
c3BvbnNlKj4odGhpcyktPnBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKTsKIH0KIAorU3RyaW5n
IFJlc291cmNlUmVzcG9uc2VCYXNlOjpzYW5pdGl6ZVN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCit7CisgICAgaWYgKHN1Z2dlc3RlZEZpbGVuYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN1Z2dlc3RlZEZpbGVuYW1lOworCisgICAgUmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZShVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL2V4YW1wbGUu
Y29tIiksIFN0cmluZygpLCAtMSwgU3RyaW5nKCkpOworICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDIwMCk7CisgICAgU3RyaW5nIGVzY2FwZWRTdWdnZXN0ZWRGaWxlbmFtZSA9IFN0cmlu
ZyhzdWdnZXN0ZWRGaWxlbmFtZSkucmVwbGFjZSgiXCIiLCAiXFxcIiIpOworICAgIFN0cmluZyB2
YWx1ZSA9IG1ha2VTdHJpbmcoImF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIiwgZXNjYXBlZFN1Z2dl
c3RlZEZpbGVuYW1lLCAnIicpOworICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q29udGVudERpc3Bvc2l0aW9uLCB2YWx1ZSk7CisgICAgcmV0dXJuIHJlc3Bv
bnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7Cit9CisKIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OmlzU3VjY2Vzc2Z1bCgpIGNvbnN0CiB7CiAgICAgaW50IGNvZGUgPSBodHRwU3RhdHVzQ29kZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5oCmluZGV4IGQ0NmVkNjQ1NDE0OGVkMmYwYzU5ZmFjMGU4MDMyNDdiOWNkMjc3
ZGYuLjFlZmZlMWY3ZWQ3MzNhMTA4YmYzMzE4ZjExNzAwMWMzOGZlODdmYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmgKQEAgLTExNCw2ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzQXR0YWNobWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgc2Fu
aXRpemVTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgaW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0OwogICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1
cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjMwMzY2ZDllOGE0YzdmMTdhNTI1N2U2
OTYxZTk5Y2E4MzMwMjdmYy4uOWViZDAzZmMxN2UzNTUzMzI5MzE4YmUxNWZiYmRkNjUyOWU0ODAw
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRlIHNob3VsZCBiZSBzYW5p
dGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4MzkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
ZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
QW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1
b3RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVz
LXVuaWNvZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0wMi0yNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIC4uIHNo
b3VsZCBub3QgcmVtb3ZlIHdpbmRvd3MgZHJpdmUgbGV0dGVycyBpbiBwYXRocyBvZiBmaWxlIFVS
THMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE1ZmUzMTBkNDBjZDdjOTI4OWY0ZmM0OWQzODA3OTQ4OWIzZWM5ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAidGVzdCJhYmUucG5nIgorRG93bmxvYWQgY29tcGxldGVkLgorVGhlIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRoZSBkb3dubG9h
ZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93
bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91Ymxl
cXVvdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWRjNGQ1YzVhNDQ5ZjQ4OTBlMzA2NTU0NjBmZmE4ZjA0
ZmMzNTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5o
dG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxlbmFt
ZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQg
c3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwiIGRvd25sb2FkPSd0ZXN0ImFiZS5wbmcnPkZp
bGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7
CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRo
ZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRv
cCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFs
cy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93
LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5j
bHVkZXMtc2xhc2hlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Yjc5ZGUzMDM3M2FmZDhhYzY3MDg2ZjYyMzU3MTQ4NzUw
YWVlZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVS
TCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidGVzdDFfdGVzdDJhYmUucG5nIgorRG93bmxvYWQg
Y29tcGxldGVkLgorVGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgTk9UIGluY2x1
ZGUgc2xhc2hlcyBvciBiYWNrc2xhc2hlcyBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVk
LgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1z
bGFzaGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZDc1NTRmMjhhMzkwODBiNjY0MmRiNGI0ZTI4MTRiMzExOWNlYTIyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBOT1QgaW5jbHVkZSBz
bGFzaGVzIG9yIGJhY2tzbGFzaGVzIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1Y2NlZWQuPC9w
PgorPGEgaWQ9ImJsb2ItdXJsIiBkb3dubG9hZD0idGVzdDEvdGVzdDJcXGFiZS5wbmciPkZpbGUg
YmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRoZSBs
aW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRvcCAr
IDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFscy5j
cmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93LlVS
TC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVk
ZXMtdW5pY29kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMzNWEzYTAyZGM1OGNhMzVmNGQ5ZmI3NDk4NzQ1Y2VjOTYyZjYy
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAi5L2g5aW9LnBuZyIKK0Rvd25sb2FkIGNvbXBsZXRlZC4K
K1RoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICLkvaDlpb0ucG5nIiBhbmQg
dGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZp
bGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVz
LXVuaWNvZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Mjc3Y2IzYjUyNmNiNGNhMjA0NjljZGRjMTExYTYy
Y2I5YWE2M2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAi5L2g5aW9LnBuZyIgYW5k
IHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwiIGRvd25s
b2FkPSfkvaDlpb0ucG5nJz5GaWxlIGJhY2tlZCBibG9iIFVSTDwvYT4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBjbGljayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRMZWZ0
ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmlsZSgiLi4vcmVzb3VyY2VzL2FiZS5wbmciKTsK
KyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9iLXVybCIpOworICAg
IGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOworICAgIGNsaWNr
KGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA1NzUwNDhmNTUyMWEzMmE2N2Y0MzJhMDE1N2ZiNTg2NTk5ZWNlNDFkLi5i
YjhjN2ExYzk5NDkxOGRhYzQ3YmMxNGQ0N2I1YzY1YTczNTQxMGE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzMjcsNiArMTMyNyw5IEBAIHdlYmtpdC5vcmcvYi8xNTU0OTUgY29tcG9zaXRpbmcvdmlz
aWJsZS1yZWN0L2FuaW1hdGVkLWZyb20tbm9uZS5odG1sIFsgRmFpbHVyZSBQCiB3ZWJraXQub3Jn
L2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50
aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGlj
LWNsaWNrLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRv
d25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2
OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWlu
Y2x1ZGVzLXVuaWNvZGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rl
c3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1
NjA2OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3It
ZG93bmxvYWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZjUz
ZDhmMGRmZDc5YjcxZGNmZTVkN2IzYjM3OWNjNzEwNDgxNmI1Li4xMWE2NjlhY2Q0YmU0MjQ3ZjM3
YzNkM2I2MWEwZTYyZGY1Mjg3OGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MTUsNiArMTgxNSw5
IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWRvd25sb2FkLXVuc2V0Lmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2It
Y29udmVydC10by1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1b3RlLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
NTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9h
ZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9k
b3dubG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZmJhOGRhNGZkNjU4NjNjMWJjNDlhNjgxNTZkZmE4ODJjNWJh
MzZkZC4uMjFmYmMxNTVkZmZjZGYyOTIyYmQ0ZmU3MDA4NzhkNjlmMGVhODhiMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0LDYgKzIx
NCw5IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWRvd25sb2FkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1s
IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkg
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNs
dWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
c2xhc2hlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtdW5pY29kZS5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQt
bm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0
cy9kb3dubG9hZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDY1MDEzMmJmYjA4ZDAzMzYxZDQ0M2ZkYjZh
ZWM2MTYzY2IzZTQyYi4uM2JmY2QyNzk0MzNmZTkyNjFlNzI4M2RhYTQ4YjQxYzI4YjRkNDI5NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0NSw2ICs0
NDUsOSBAQCBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdW5zZXQu
aHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2Fk
LXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBT
a2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxv
YWQuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUt
YmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBdCitmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNs
YXNoZXMuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZp
bGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9u
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4
dGVuc2lvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQu
aHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>302696</attachid>
            <date>2017-02-24 15:46:39 -0800</date>
            <delta_ts>2017-02-24 16:08:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-168839-20170224154349.patch</filename>
            <type>text/plain</type>
            <size>17171</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyOTYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTgxMDk3MTI5ZTE1ZGVi
MjhlMjliOTkyZjJlYzQ0ODYzMzRlNTY1ZC4uNWZjMjUxMmI1MjRhMDBlMWViM2NmZmZhYTRmYjdi
NDFhOWNlNjNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI3IEBACiAyMDE3LTAyLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRl
IHNob3VsZCBiZSBzYW5pdGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVu
YW1lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4
MzkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFNhbml0aXplIERvd25sb2FkIGF0dHJpYnV0ZSBi
ZWZvcmUgdXNpbmcgaXQgYXMgYSBzdWdnZXN0ZWQgZmlsZW5hbWUgZm9yIHRoZSBkb3dubG9hZC4K
KyAgICAgICAgV2UgcmVseSBvbiBSZXNvdXJjZVJlc3BvbnNlJ3Mgc2FuaXRpemluZyBvZiB0aGUg
c3VnZ2VzdGVkIGZpbGVuYW1lIHRvIGRvIHNvLCB3aGljaCBoYXMKKyAgICAgICAgdGhlIGJlbmVm
aXQgb2YgYmVpbmcgY29uc2lzdGVudCB3aXRoIGRvd25sb2FkcyB3aXRob3V0IHRoZSBkb3dubG9h
ZCBhdHRyaWJ1dGUuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbAorICAg
ICAgICAgICAgICAgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1k
b3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtdW5pY29k
ZS5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxBbmNob3JFbGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c2FuaXRpemVTdWdnZXN0ZWRGaWxlbmFtZSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oOgorCisyMDE3LTAy
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKICAgICAgICAgW01hY10gUmVw
b3J0IGRvbWFpbnMgdXNpbmcgYWJub3JtYWxseSBoaWdoIG1lbW9yeSB1c2FnZSB2aWEgZW5oYW5j
ZWQgcHJpdmFjeSBsb2dnaW5nCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjg3OTcKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI5OTY0MDE3PgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCBlMzk5NTA4MDZlNmZl
YzJmMjM2NjUyZTZjODRhM2JmMzE2OWM3ZDU0Li5jYjFmMWM5ZjU0NjUzZDZiZGQyYjQ3OTJjMjYz
OTg4MjEwYzdmYzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNw
cApAQCAtMzc1LDEzICszNzUsMTMgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xp
Y2soRXZlbnQmIGV2ZW50KQogICAgIGFwcGVuZFNlcnZlck1hcE1vdXNlUG9zaXRpb24odXJsLCBl
dmVudCk7CiAgICAgVVJMIGNvbXBsZXRlZFVSTCA9IGRvY3VtZW50KCkuY29tcGxldGVVUkwodXJs
LnRvU3RyaW5nKCkpOwogCi0gICAgYXV0byBkb3dubG9hZEF0dHJpYnV0ZSA9IG51bGxBdG9tOwor
ICAgIFN0cmluZyBkb3dubG9hZEF0dHJpYnV0ZTsKICNpZiBFTkFCTEUoRE9XTkxPQURfQVRUUklC
VVRFKQogICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRv
d25sb2FkQXR0cmlidXRlRW5hYmxlZCgpKSB7CiAgICAgICAgIC8vIElnbm9yZSB0aGUgZG93bmxv
YWQgYXR0cmlidXRlIGNvbXBsZXRlbHkgaWYgdGhlIGhyZWYgVVJMIGlzIGNyb3NzIG9yaWdpbi4K
ICAgICAgICAgYm9vbCBpc1NhbWVPcmlnaW4gPSBjb21wbGV0ZWRVUkwucHJvdG9jb2xJc0RhdGEo
KSB8fCBkb2N1bWVudCgpLnNlY3VyaXR5T3JpZ2luKCkuY2FuUmVxdWVzdChjb21wbGV0ZWRVUkwp
OwogICAgICAgICBpZiAoaXNTYW1lT3JpZ2luKQotICAgICAgICAgICAgZG93bmxvYWRBdHRyaWJ1
dGUgPSBhdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGRvd25sb2FkQXR0cik7CisgICAg
ICAgICAgICBkb3dubG9hZEF0dHJpYnV0ZSA9IFJlc291cmNlUmVzcG9uc2U6OnNhbml0aXplU3Vn
Z2VzdGVkRmlsZW5hbWUoYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihkb3dubG9hZEF0
dHIpKTsKICAgICAgICAgZWxzZSBpZiAoaGFzQXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlv
bihkb3dubG9hZEF0dHIpKQogICAgICAgICAgICAgZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiVGhlIGRv
d25sb2FkIGF0dHJpYnV0ZSBvbiBhbmNob3Igd2FzIGlnbm9yZWQgYmVjYXVzZSBpdHMgaHJlZiBV
UkwgaGFzIGEgZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbi4iKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2Uu
Y3BwCmluZGV4IDJkMTBiNjY2YmI5NmVmNThjMGYxM2U2M2ZiNTQ3YjE5ODA3ODJmODMuLjI3YmQ1
NzkwZTlkMGRhZDI5MjM1YTcxMzcwZmJiYWRmOWRjNzc5YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuY3BwCkBA
IC0yMjQsNiArMjI0LDE5IEBAIFN0cmluZyBSZXNvdXJjZVJlc3BvbnNlQmFzZTo6c3VnZ2VzdGVk
RmlsZW5hbWUoKSBjb25zdAogICAgIHJldHVybiBzdGF0aWNfY2FzdDxjb25zdCBSZXNvdXJjZVJl
c3BvbnNlKj4odGhpcyktPnBsYXRmb3JtU3VnZ2VzdGVkRmlsZW5hbWUoKTsKIH0KIAorU3RyaW5n
IFJlc291cmNlUmVzcG9uc2VCYXNlOjpzYW5pdGl6ZVN1Z2dlc3RlZEZpbGVuYW1lKGNvbnN0IFN0
cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCit7CisgICAgaWYgKHN1Z2dlc3RlZEZpbGVuYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHN1Z2dlc3RlZEZpbGVuYW1lOworCisgICAgUmVzb3Vy
Y2VSZXNwb25zZSByZXNwb25zZShVUkwoUGFyc2VkVVJMU3RyaW5nLCAiaHR0cDovL2V4YW1wbGUu
Y29tIiksIFN0cmluZygpLCAtMSwgU3RyaW5nKCkpOworICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0
dXNDb2RlKDIwMCk7CisgICAgU3RyaW5nIGVzY2FwZWRTdWdnZXN0ZWRGaWxlbmFtZSA9IFN0cmlu
ZyhzdWdnZXN0ZWRGaWxlbmFtZSkucmVwbGFjZSgnXCInLCAiXFxcIiIpOworICAgIFN0cmluZyB2
YWx1ZSA9IG1ha2VTdHJpbmcoImF0dGFjaG1lbnQ7IGZpbGVuYW1lPVwiIiwgZXNjYXBlZFN1Z2dl
c3RlZEZpbGVuYW1lLCAnIicpOworICAgIHJlc3BvbnNlLnNldEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6Q29udGVudERpc3Bvc2l0aW9uLCB2YWx1ZSk7CisgICAgcmV0dXJuIHJlc3Bv
bnNlLnN1Z2dlc3RlZEZpbGVuYW1lKCk7Cit9CisKIGJvb2wgUmVzb3VyY2VSZXNwb25zZUJhc2U6
OmlzU3VjY2Vzc2Z1bCgpIGNvbnN0CiB7CiAgICAgaW50IGNvZGUgPSBodHRwU3RhdHVzQ29kZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZVJl
c3BvbnNlQmFzZS5oCmluZGV4IGQ0NmVkNjQ1NDE0OGVkMmYwYzU5ZmFjMGU4MDMyNDdiOWNkMjc3
ZGYuLjFlZmZlMWY3ZWQ3MzNhMTA4YmYzMzE4ZjExNzAwMWMzOGZlODdmYzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VSZXNwb25zZUJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlUmVzcG9uc2VCYXNl
LmgKQEAgLTExNCw2ICsxMTQsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IGlzQXR0YWNobWVudCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzdWdnZXN0
ZWRGaWxlbmFtZSgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcgc2Fu
aXRpemVTdWdnZXN0ZWRGaWxlbmFtZShjb25zdCBTdHJpbmcmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgaW5jbHVkZUNlcnRpZmljYXRlSW5mbygpIGNvbnN0OwogICAgIGNvbnN0IHN0ZDo6
b3B0aW9uYWw8Q2VydGlmaWNhdGVJbmZvPiYgY2VydGlmaWNhdGVJbmZvKCkgY29uc3QgeyByZXR1
cm4gbV9jZXJ0aWZpY2F0ZUluZm87IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYjMwMzY2ZDllOGE0YzdmMTdhNTI1N2U2
OTYxZTk5Y2E4MzMwMjdmYy4uOWViZDAzZmMxN2UzNTUzMzI5MzE4YmUxNWZiYmRkNjUyOWU0ODAw
NSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAyLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgRG93bmxvYWQgYXR0cmlidXRlIHNob3VsZCBiZSBzYW5p
dGl6ZWQgYmVmb3JlIGJlaW5nIHVzZWQgYXMgc3VnZ2VzdGVkIGZpbGVuYW1lCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjg4MzkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzMwNjgzMTA5PgorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIEFkZCBsYXlvdXQgdGVzdCBjb3ZlcmFnZS4KKworICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
ZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1M
QW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1
b3RlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtc2xhc2hlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVz
LXVuaWNvZGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUuaHRt
bDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0
YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxNy0wMi0yNCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIC4uIHNo
b3VsZCBub3QgcmVtb3ZlIHdpbmRvd3MgZHJpdmUgbGV0dGVycyBpbiBwYXRocyBvZiBmaWxlIFVS
THMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2Fu
Y2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjE1ZmUzMTBkNDBjZDdjOTI4OWY0ZmM0OWQzODA3OTQ4OWIzZWM5ZQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3aXRoIHN1Z2dlc3RlZCBm
aWxlbmFtZSAidGVzdCJhYmUucG5nIgorRG93bmxvYWQgY29tcGxldGVkLgorVGhlIHN1Z2dlc3Rl
ZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRoZSBkb3dubG9h
ZCBzaG91bGQgc3VjY2VlZC4KKworRmlsZSBiYWNrZWQgYmxvYiBVUkwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93
bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtZG91Ymxl
cXVvdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZWRjNGQ1YzVhNDQ5ZjQ4OTBlMzA2NTU0NjBmZmE4ZjA0
ZmMzNTcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hv
ckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5o
dG1sCkBAIC0wLDAgKzEsMzYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgdHlwZT0ndGV4dC9qYXZhc2NyaXB0Jz4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlIHN1Z2dlc3RlZCBmaWxlbmFt
ZSBhYm92ZSBzaG91bGQgYmUgJ3Rlc3QiYWJlLnBuZycgYW5kIHRoZSBkb3dubG9hZCBzaG91bGQg
c3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwiIGRvd25sb2FkPSd0ZXN0ImFiZS5wbmcnPkZp
bGUgYmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7
CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRo
ZSBsaW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRv
cCArIDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlVXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFs
cy5jcmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93
LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0
KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5j
bHVkZXMtc2xhc2hlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2Yjc5ZGUzMDM3M2FmZDhhYzY3MDg2ZjYyMzU3MTQ4NzUw
YWVlZGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVS
TCB3aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAidGVzdDFfdGVzdDJhYmUucG5nIgorRG93bmxvYWQg
Y29tcGxldGVkLgorVGhlIHN1Z2dlc3RlZCBmaWxlbmFtZSBhYm92ZSBzaG91bGQgTk9UIGluY2x1
ZGUgc2xhc2hlcyBvciBiYWNrc2xhc2hlcyBhbmQgdGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVk
LgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1z
bGFzaGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
ZDc1NTRmMjhhMzkwODBiNjY0MmRiNGI0ZTI4MTRiMzExOWNlYTIyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQn
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBOT1QgaW5jbHVkZSBz
bGFzaGVzIG9yIGJhY2tzbGFzaGVzIGFuZCB0aGUgZG93bmxvYWQgc2hvdWxkIHN1Y2NlZWQuPC9w
PgorPGEgaWQ9ImJsb2ItdXJsIiBkb3dubG9hZD0idGVzdDEvdGVzdDJcXGFiZS5wbmciPkZpbGUg
YmFja2VkIGJsb2IgVVJMPC9hPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7Cisg
ICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRoZSBs
aW5rIHRvIHJ1biB0aGUgdGVzdC4nKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhlbG10Lm9mZnNldExlZnQgKyA1LCBlbG10Lm9mZnNldFRvcCAr
IDUpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgZmlsZSA9IGludGVybmFscy5j
cmVhdGVGaWxlKCIuLi9yZXNvdXJjZXMvYWJlLnBuZyIpOworICAgIHZhciBsaW5rID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImJsb2ItdXJsIik7CisgICAgbGluay5ocmVmID0gd2luZG93LlVS
TC5jcmVhdGVPYmplY3RVUkwoZmlsZSk7CisgICAgY2xpY2sobGluayk7Cit9CitydW5UZXN0KCk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVk
ZXMtdW5pY29kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9y
RWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMzNWEzYTAyZGM1OGNhMzVmNGQ5ZmI3NDk4NzQ1Y2VjOTYyZjYy
MDEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxl
bWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXVuaWNvZGUtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorRG93bmxvYWQgc3RhcnRlZC4KK0Rvd25sb2FkaW5nIFVSTCB3
aXRoIHN1Z2dlc3RlZCBmaWxlbmFtZSAi5L2g5aW9LnBuZyIKK0Rvd25sb2FkIGNvbXBsZXRlZC4K
K1RoZSBzdWdnZXN0ZWQgZmlsZW5hbWUgYWJvdmUgc2hvdWxkIGJlICLkvaDlpb0ucG5nIiBhbmQg
dGhlIGRvd25sb2FkIHNob3VsZCBzdWNjZWVkLgorCitGaWxlIGJhY2tlZCBibG9iIFVSTApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZp
bGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVz
LXVuaWNvZGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Mjc3Y2IzYjUyNmNiNGNhMjA0NjljZGRjMTExYTYy
Y2I5YWE2M2JlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0
bWwKQEAgLTAsMCArMSwzNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPG1l
dGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGUgc3VnZ2VzdGVkIGZpbGVuYW1lIGFib3ZlIHNob3VsZCBiZSAi5L2g5aW9LnBuZyIgYW5k
IHRoZSBkb3dubG9hZCBzaG91bGQgc3VjY2VlZC48L3A+Cis8YSBpZD0iYmxvYi11cmwiIGRvd25s
b2FkPSfkvaDlpb0ucG5nJz5GaWxlIGJhY2tlZCBibG9iIFVSTDwvYT4KKzxzY3JpcHQ+CitmdW5j
dGlvbiBjbGljayhlbG10KQoreworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAg
ICAgIGFsZXJ0KCdDbGljayB0aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRMZWZ0
ICsgNSwgZWxtdC5vZmZzZXRUb3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
KyAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIGZpbGUgPSBpbnRlcm5hbHMuY3JlYXRlRmlsZSgiLi4vcmVzb3VyY2VzL2FiZS5wbmciKTsK
KyAgICB2YXIgbGluayA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJibG9iLXVybCIpOworICAg
IGxpbmsuaHJlZiA9IHdpbmRvdy5VUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpOworICAgIGNsaWNr
KGxpbmspOworfQorcnVuVGVzdCgpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azEvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA1NzUwNDhmNTUyMWEzMmE2N2Y0MzJhMDE1N2ZiNTg2NTk5ZWNlNDFkLi5i
YjhjN2ExYzk5NDkxOGRhYzQ3YmMxNGQ0N2I1YzY1YTczNTQxMGE3IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Itd2sxL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEzMjcsNiArMTMyNyw5IEBAIHdlYmtpdC5vcmcvYi8xNTU0OTUgY29tcG9zaXRpbmcvdmlz
aWJsZS1yZWN0L2FuaW1hdGVkLWZyb20tbm9uZS5odG1sIFsgRmFpbHVyZSBQCiB3ZWJraXQub3Jn
L2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC1zeW50
aGV0aWMtY2xpY2suaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9I
VE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGlj
LWNsaWNrLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFu
Y2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC5odG1sIFsgU2tpcCBdCit3ZWJr
aXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJs
b2ItZG93bmxvYWQtaW5jbHVkZXMtZG91YmxlcXVvdGUuaHRtbCBbIFNraXAgXQord2Via2l0Lm9y
Zy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRv
d25sb2FkLWluY2x1ZGVzLXNsYXNoZXMuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2
OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWlu
Y2x1ZGVzLXVuaWNvZGUuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBodHRwL3Rl
c3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1
NjA2OSBodHRwL3Rlc3RzL3NlY3VyaXR5L2FuY2hvci1kb3dubG9hZC1hbGxvdy1ibG9iLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9zZWN1cml0eS9hbmNob3It
ZG93bmxvYWQtYWxsb3ctZGF0YS5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5ZjUz
ZDhmMGRmZDc5YjcxZGNmZTVkN2IzYjM3OWNjNzEwNDgxNmI1Li4xMWE2NjlhY2Q0YmU0MjQ3ZjM3
YzNkM2I2MWEwZTYyZGY1Mjg3OGJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9p
b3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MTUsNiArMTgxNSw5
IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWRvd25sb2FkLXVuc2V0Lmh0bWwgWyBTa2lwCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvMTU2MDY3IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2It
Y29udmVydC10by1kb3dubG9hZC5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY3IGZh
c3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQuaHRtbCBb
IFNraXAgXQord2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLWRvdWJsZXF1b3RlLmh0bWwgWyBTa2lw
IF0KK3dlYmtpdC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9y
LWZpbGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy1zbGFzaGVzLmh0bWwgWyBTa2lwIF0KK3dlYmtp
dC5vcmcvYi8xNTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxv
Yi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8x
NTYwNjcgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9h
ZC1uby1leHRlbnNpb24uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9kb3dubG9hZC1zZXQuaHRtbCBbIFNraXAgXQog
d2Via2l0Lm9yZy9iLzE1NjA2NyBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm9k
b3dubG9hZC5odG1sIFsgU2tpcCBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZmJhOGRhNGZkNjU4NjNjMWJjNDlhNjgxNTZkZmE4ODJjNWJh
MzZkZC4uMjFmYmMxNTVkZmZjZGYyOTIyYmQ0ZmU3MDA4NzhkNjlmMGVhODhiMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjE0LDYgKzIx
NCw5IEBAIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5j
aG9yLWRvd25sb2FkLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgZmFzdC9k
b20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2FkLXN5bnRoZXRpYy1jbGljay5odG1s
IFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50
L2FuY2hvci1kb3dubG9hZC11c2VyLXRyaWdnZXJlZC1zeW50aGV0aWMtY2xpY2suaHRtbCBbIFNr
aXAgXQogd2Via2l0Lm9yZy9iLzE1NjA2OSBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNo
b3ItZmlsZS1ibG9iLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8xNTYwNjkg
ZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUtYmxvYi1kb3dubG9hZC1pbmNs
dWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMt
c2xhc2hlcy5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxB
bmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtaW5jbHVkZXMtdW5pY29kZS5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTU2MDY5IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0cy9kb3dubG9hZC9hbmNob3ItZG93bmxvYWQt
bm8tZXh0ZW5zaW9uLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8xNTYwNjkgaHR0cC90ZXN0
cy9kb3dubG9hZC9hcmVhLWRvd25sb2FkLmh0bWwgWyBTa2lwIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZDY1MDEzMmJmYjA4ZDAzMzYxZDQ0M2ZkYjZh
ZWM2MTYzY2IzZTQyYi4uM2JmY2QyNzk0MzNmZTkyNjFlNzI4M2RhYTQ4YjQxYzI4YjRkNDI5NyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ0NSw2ICs0
NDUsOSBAQCBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZG93bmxvYWQtdW5zZXQu
aHRtbCBbIFNraXAgXQogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWRvd25sb2Fk
LXN5bnRoZXRpYy1jbGljay5odG1sIFsgU2tpcCBdCiBmYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVu
dC9hbmNob3ItZG93bmxvYWQtdXNlci10cmlnZ2VyZWQtc3ludGhldGljLWNsaWNrLmh0bWwgWyBT
a2lwIF0KIGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxv
YWQuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZpbGUt
YmxvYi1kb3dubG9hZC1pbmNsdWRlcy1kb3VibGVxdW90ZS5odG1sIFsgU2tpcCBdCitmYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3ItZmlsZS1ibG9iLWRvd25sb2FkLWluY2x1ZGVzLXNs
YXNoZXMuaHRtbCBbIFNraXAgXQorZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLWZp
bGUtYmxvYi1kb3dubG9hZC1pbmNsdWRlcy11bmljb2RlLmh0bWwgWyBTa2lwIF0KIGZhc3QvZG9t
L0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1maWxlLWJsb2ItZG93bmxvYWQtbm8tZXh0ZW5zaW9u
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvZG93bmxvYWQvYW5jaG9yLWRvd25sb2FkLW5vLWV4
dGVuc2lvbi5odG1sIFsgU2tpcCBdCiBodHRwL3Rlc3RzL2Rvd25sb2FkL2FyZWEtZG93bmxvYWQu
aHRtbCBbIFNraXAgXQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>