<?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>183620</bug_id>
          
          <creation_ts>2018-03-13 17:38:01 -0700</creation_ts>
          <short_desc>Resource Load Statistics: Immediately forward cookie access for domains with previous user interaction when there&apos;s an opener document</short_desc>
          <delta_ts>2018-03-16 17:23:36 -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>WebKit Misc.</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=183577</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=183641</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=183714</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="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>jlewis3</cc>
    
    <cc>kangil.han</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1406310</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 17:38:01 -0700</bug_when>
    <thetext>It turns out the fix in https://bugs.webkit.org/show_bug.cgi?id=183577 wasn&apos;t enough to address the compatibility issues with popups. Some of them just detect their unpartitioned cookies, auto-dismiss themselves, and expect their unpartitioned cookies to be available under the opener afterwards. We should grant them access if the popup&apos;s domain has had user interaction _previously_.

Note that we still need the part in https://bugs.webkit.org/show_bug.cgi?id=183577 because if the popup&apos;s domain has not received user interaction previously, we will not grant it storage access on just the window open.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406312</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 17:38:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/38431469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406318</commentid>
    <comment_count>2</comment_count>
      <attachid>335750</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 17:54:10 -0700</bug_when>
    <thetext>Created attachment 335750
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406321</commentid>
    <comment_count>3</comment_count>
      <attachid>335752</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 18:00:46 -0700</bug_when>
    <thetext>Created attachment 335752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406329</commentid>
    <comment_count>4</comment_count>
      <attachid>335754</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 18:31:59 -0700</bug_when>
    <thetext>Created attachment 335754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406330</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 18:32:23 -0700</bug_when>
    <thetext>Added test cases as [ Pass ] in expectations files.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406349</commentid>
    <comment_count>6</comment_count>
      <attachid>335754</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-03-13 21:17:22 -0700</bug_when>
    <thetext>Comment on attachment 335754
Patch

R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406350</commentid>
    <comment_count>7</comment_count>
      <attachid>335754</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-13 21:53:09 -0700</bug_when>
    <thetext>Comment on attachment 335754
Patch

Thanks, Brent!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406351</commentid>
    <comment_count>8</comment_count>
      <attachid>335754</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-13 22:18:02 -0700</bug_when>
    <thetext>Comment on attachment 335754
Patch

Clearing flags on attachment: 335754

Committed r229597: &lt;https://trac.webkit.org/changeset/229597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406352</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-13 22:18:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406449</commentid>
    <comment_count>10</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-03-14 11:23:33 -0700</bug_when>
    <thetext>This change seems to have caused storageAccess LayoutTest failures:
https://build.webkit.org/results/Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r229601%20(3439)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406451</commentid>
    <comment_count>11</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-14 11:42:01 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #10)
&gt; This change seems to have caused storageAccess LayoutTest failures:
&gt; https://build.webkit.org/results/
&gt; Apple%20High%20Sierra%20Release%20WK2%20(Tests)/r229601%20(3439)/results.html

It&apos;s probably the network process that keeps state between test runs. I&apos;ll try to come up with a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406466</commentid>
    <comment_count>12</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-14 12:41:46 -0700</bug_when>
    <thetext>I have a fix I&apos;ll put up for review. Thanks for letting me know, Ryan!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1406473</commentid>
    <comment_count>13</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2018-03-14 12:55:02 -0700</bug_when>
    <thetext>https://bugs.webkit.org/show_bug.cgi?id=183641 tracks the fix.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335750</attachid>
            <date>2018-03-13 17:54:10 -0700</date>
            <delta_ts>2018-03-13 18:00:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183620-20180313175409.patch</filename>
            <type>text/plain</type>
            <size>30923</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAzLTEzICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3Rh
dGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBkb21haW5zIHdp
dGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3BlbmVyIGRvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2
MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci5odG1sCisKKyAgICAgICAgSXQgdHVybnMgb3V0IHRoZSBmaXggaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzU3NworICAgICAgICB3YXNuJ3QgZW5vdWdo
IHRvIGFkZHJlc3MgdGhlIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGggcG9wdXBzLiBTb21lIG9m
CisgICAgICAgIHRoZW0ganVzdCBkZXRlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzLCBh
dXRvLWRpc21pc3MgdGhlbXNlbHZlcywKKyAgICAgICAgYW5kIGV4cGVjdCB0aGVpciB1bnBhcnRp
dGlvbmVkIGNvb2tpZXMgdG8gYmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBvcGVuZXIKKyAgICAgICAg
YWZ0ZXJ3YXJkcy4gV2Ugc2hvdWxkIGdyYW50IHRoZW0gYWNjZXNzIGlmIHRoZSBwb3B1cCdzIGRv
bWFpbiBoYXMgaGFkCisgICAgICAgIHVzZXIgaW50ZXJhY3Rpb24gX3ByZXZpb3VzbHlfLgorCisg
ICAgICAgIE5vdGUgdGhhdCB3ZSBzdGlsbCBuZWVkIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM1NzcKKyAgICAgICAgYmVjYXVzZSBpZiB0aGUgcG9wdXAncyBkb21h
aW4gaGFzIG5vdCByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uCisgICAgICAgIHByZXZpb3VzbHks
IHdlIHdpbGwgbm90IGdyYW50IGl0IHN0b3JhZ2UgYWNjZXNzIG9uIGp1c3QgdGhlIHdpbmRvdyBv
cGVuLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFn
ZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6Omhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNp
ZmljU3RvcmFnZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIGZyb20gKkdy
YW50ZWQqIHRvICpSZXF1ZXN0ZWQqIHNpbmNlIHRoZXJlIGlzIG5vdyBhIGNhc2UKKyAgICAgICAg
ICAgIHdoZXJlIGFjY2VzcyB3aWxsIG5vdCBiZSBncmFudGVkLCBpLmUuIHdoZW4gdGhlIHBvcHVw
IGRvbWFpbiBoYXMKKyAgICAgICAgICAgIG5vdCBoYWQgdXNlciBpbnRlcmFjdGlvbiBwcmV2aW91
c2x5LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKToKKyAgICAgICAg
ICAgIFJlbmFtZWQgKkdyYW50KiB0byAqUmVxdWVzdCouCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93
Q3JlYXRpb24pOgorICAgICAgICAgICAgTmV3IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIERPTVdpbmRv
dzo6Y3JlYXRlV2luZG93KCkuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgICAgICBOZXcgY29u
dmVuaWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICAgICBSZW5hbWVkICpHcmFudCogdG8gKlJlcXVlc3QqLgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgICAg
IE5vdyBjYWxscyBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3JlYXRpb24oKSBpZiBh
IHdpbmRvdworICAgICAgICAgICAgd2FzIGNyZWF0ZWQgYW5kIHRoZSBvcGVuZXIgaGFzIGEgZG9j
dW1lbnQgYW5kIGEgcGFnZSBJRC4KKwogMjAxOC0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBNdXRlZCBtZWRpYSBwbGF5YmFjayBjYW4gaW50
ZXJydXB0IG91dC1vZi1wcm9jZXNzIGF1ZGlvCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDIyOTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc2MjMsMTQgKzc2MjMsMTQgQEAgdm9pZCBEb2N1bWVudDo6c2V0SGFz
RnJhbWVTcGVjaWZpY1N0b3JhZwogICAgIG1fZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnNldEhh
c0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKHZhbHVlKTsKIH0KIAotYm9vbCBEb2N1bWVudDo6
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiBwcmltYXJ5RG9tYWlu
KQorYm9vbCBEb2N1bWVudDo6aGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKQogewotICAgIHJl
dHVybiBtX3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA9PSBw
cmltYXJ5RG9tYWluOworICAgIHJldHVybiBtX3ByaW1hcnlEb21haW5SZXF1ZXN0ZWRQYWdlU3Bl
Y2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiA9PSBwcmltYXJ5RG9tYWluOwog
fQogCi12b2lkIERvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vz
cyhTdHJpbmcmIHByaW1hcnlEb21haW4pCit2b2lkIERvY3VtZW50OjpzZXRIYXNSZXF1ZXN0ZWRQ
YWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcm
IHByaW1hcnlEb21haW4pCiB7Ci0gICAgbV9wcmltYXJ5RG9tYWluR3JhbnRlZFBhZ2VTcGVjaWZp
Y1N0b3JhZ2VBY2Nlc3MgPSBwcmltYXJ5RG9tYWluOworICAgIG1fcHJpbWFyeURvbWFpblJlcXVl
c3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlckludGVyYWN0aW9uID0gcHJpbWFy
eURvbWFpbjsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24g
MjI5NTgyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0MTYsOCArMTQxNiw4IEBAIHB1YmxpYzoKICAgICBKU0M6OlRocmVhZExvY2FsQ2FjaGUm
IHRocmVhZExvY2FsQ2FjaGUoKTsKIAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElU
SU9OSU5HKQotICAgIGJvb2wgaGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3Ry
aW5nJiBwcmltYXJ5RG9tYWluKTsKLSAgICB2b2lkIHNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNT
dG9yYWdlQWNjZXNzKFN0cmluZyYgcHJpbWFyeURvbWFpbik7CisgICAgYm9vbCBoYXNSZXF1ZXN0
ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJp
bmcmIHByaW1hcnlEb21haW4pOworICAgIHZvaWQgc2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9t
YWluKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxKU0M6OlRocmVhZExvY2FsQ2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsK
IAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBt
X3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyB7IH07CisgICAg
U3RyaW5nIG1fcHJpbWFyeURvbWFpblJlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uIHsgfTsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAyMjk1ODIp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDgsMTAgKzEwOCwxMCBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVy
OjpzZXROb3RpZmljYXRpCiAgICAgbV9ub3RpZmljYXRpb25DYWxsYmFjayA9IFdURk1vdmUobm90
aWZpY2F0aW9uQ2FsbGJhY2spOwogfQogCi12b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRH
cmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmIGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3Bl
bmVyUGFnZUlELCBjb25zdCBTdHJpbmcmIG9wZW5lckRvbWFpbik+JiYgY2FsbGJhY2spCit2b2lk
IFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVy
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIGNvbnN0IFN0cmluZyYgb3BlbmVy
RG9tYWluLCBib29sIGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSk+JiYgY2FsbGJhY2spCiB7Ci0g
ICAgQVNTRVJUKCFtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2spOwotICAg
IG1fZ3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOworICAgIEFTU0VSVCghbV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJh
Y2spOworICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7CiB9CiAKIFJlc291cmNlTG9hZE9ic2VydmVyOjpSZXNvdXJjZUxvYWRP
YnNlcnZlcigpCkBAIC0zMjIsMTQgKzMyMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OmxvZ1VzZXJJbnRlcmEKICAgICAgICAgaWYgKGF1dG8qIG9wZW5lckRvY3VtZW50ID0gb3BlbmVy
LT5kb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogb3BlbmVyRnJhbWUgPSBvcGVu
ZXJEb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIG9wZW5lclBh
Z2VJRCA9IG9wZW5lckZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKSkgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIG9wZW5lclVybCA9IG9wZW5lckRvY3VtZW50LT51cmwoKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcGVuZXJQcmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFp
bihvcGVuZXJVcmwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZG9tYWluICE9IG9wZW5lclBy
aW1hcnlEb21haW4KLSAgICAgICAgICAgICAgICAgICAgICAgICYmICFvcGVuZXJEb2N1bWVudC0+
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoZG9tYWluKQotICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgIWVxdWFsSWdub3JpbmdBU0NJSUNhc2Uob3BlbmVyVXJsLnN0cmluZygp
LCBibGFua1VSTCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVyRG9jdW1lbnQt
PnNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKGRvbWFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2so
ZG9tYWluLCBvcGVuZXJQYWdlSUQudmFsdWUoKSwgb3BlbmVyUHJpbWFyeURvbWFpbik7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcihkb21haW4sIG9wZW5lclBhZ2VJRC52YWx1ZSgpLCAqb3BlbmVyRG9jdW1l
bnQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMzYxLDYgKzM1NCwzMyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dVc2VySW50
ZXJhCiAjZW5kaWYKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3Jl
YXRpb24oY29uc3QgVVJMJiBwb3B1cFVybCwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1bWVu
dCYgb3BlbmVyRG9jdW1lbnQpCit7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCisgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihwcmltYXJ5RG9tYWlu
KHBvcHVwVXJsKSwgb3BlbmVyUGFnZUlELCBvcGVuZXJEb2N1bWVudCwgZmFsc2UpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocG9wdXBEb21haW4pOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJQ
YWdlSUQpOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJEb2N1bWVudCk7CisjZW5kaWYKK30KKwor
I2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQordm9pZCBSZXNvdXJjZUxv
YWRPYnNlcnZlcjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihjb25zdCBTdHJpbmcm
IGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1
bWVudCYgb3BlbmVyRG9jdW1lbnQsIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0dXJlKQorewor
ICAgIGF1dG8gb3BlbmVyVXJsID0gb3BlbmVyRG9jdW1lbnQudXJsKCk7CisgICAgYXV0byBvcGVu
ZXJQcmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFpbihvcGVuZXJVcmwpOworICAgIGlmIChkb21h
aW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MgIT0gb3BlbmVyUHJpbWFyeURvbWFpbgorICAgICAgICAm
JiAhb3BlbmVyRG9jdW1lbnQuaGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKQorICAgICAgICAm
JiAhZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShvcGVuZXJVcmwuc3RyaW5nKCksIGJsYW5rVVJMKCkp
KSB7CisgICAgICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKGRv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcywgb3BlbmVyUGFnZUlELCBvcGVuZXJQcmltYXJ5RG9t
YWluLCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOworICAgICAgICAvLyBSZW1lbWJlciB1c2Vy
IGludGVyYWN0aW9uLWJhc2VkIHJlcXVlc3RzIHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSBy
ZXBlYXRlZC4KKyAgICAgICAgaWYgKGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAg
ICAgIG9wZW5lckRvY3VtZW50LnNldEhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nl
c3NXaXRoVXNlckludGVyYWN0aW9uKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7CisgICAg
fQorfQorI2VuZGlmCisKIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIFJlc291cmNlTG9hZE9ic2Vy
dmVyOjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0cmlu
ZyYgcHJpbWFyeURvbWFpbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVzb3VyY2VTdGF0
aXN0aWNzTWFwLmVuc3VyZShwcmltYXJ5RG9tYWluLCBbJnByaW1hcnlEb21haW5dIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCShyZXZpc2lv
biAyMjk1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTEgKzU3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGxv
Z1N1YnJlc291cmNlTG9hZGluZyhjb25zdCBGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAg
ICAgdm9pZCBsb2dXZWJTb2NrZXRMb2FkaW5nKGNvbnN0IEZyYW1lKiwgY29uc3QgVVJMJik7CiAg
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0
IERvY3VtZW50Jik7CisgICAgdm9pZCBsb2dXaW5kb3dDcmVhdGlvbihjb25zdCBVUkwmIHBvcHVw
VXJsLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCk7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RhdGlzdGljc0Zvck9yaWdpbihjb25zdCBTdHJp
bmcmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2so
V1RGOjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYp
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVu
ZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIGNv
bnN0IFN0cmluZyYpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3Ry
aW5nJiwgdWludDY0X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wpPiYmKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgbm90aWZ5T2JzZXJ2ZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNs
ZWFyU3RhdGUoKTsKQEAgLTgwLDEwICs4MSwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1
bGVOb3RpZmljYXRpb25JZk5lZWRlZCgpOwogICAgIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzPiB0YWtlU3RhdGlzdGljcygpOwogCisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJU
SVRJT05JTkcpCisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGNvbnN0
IFN0cmluZyYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdl
SUQsIERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1
cmUpOworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cz4gbV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFdURjo6V2Fs
bFRpbWU+IG1fbGFzdFJlcG9ydGVkVXNlckludGVyYWN0aW9uTWFwOwogICAgIFdURjo6RnVuY3Rp
b248dm9pZCAoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpPiBtX25vdGlmaWNhdGlv
bkNhbGxiYWNrOwotICAgIFdURjo6RnVuY3Rpb248dm9pZChTdHJpbmcsIHVpbnQ2NF90LCBTdHJp
bmcpPiBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CisgICAgV1RGOjpG
dW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBib29s
KT4gbV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CiAgICAgVGltZXIg
bV9ub3RpZmljYXRpb25UaW1lcjsKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElP
TklORykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0X3QgbV9sb2dnaW5nQ291
bnRlciB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDIy
OTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAi
UmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJ
bmZvLmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSdW50
aW1lQXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
LmgiCiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCkBAIC0yMjc5LDYgKzIyODAsMTMgQEAg
UmVmUHRyPEZyYW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjbwogICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgY29tcGxldGVkVVJMLCByZWZlcnJlciwgVXNlUHJv
dG9jb2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJl
cXVlc3QgeyAqYWN0aXZlV2luZG93LmRvY3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIEFTQ0lJTGl0ZXJhbCgiX3NlbGYi
KSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVm
ZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBv
bGljeTo6QWxsb3csIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
VG9Qcm9wYWdhdGUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICAgICAgbmV3RnJhbWUt
PmxvYWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOworCisj
aWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgICAgIGlmIChhdXRv
IG9wZW5lckRvY3VtZW50ID0gb3BlbmVyRnJhbWUuZG9jdW1lbnQoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8gb3BlbmVyUGFnZUlEID0gb3BlbmVyRnJhbWUubG9hZGVyKCkuY2xpZW50KCkucGFn
ZUlEKCkpCisgICAgICAgICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxv
Z1dpbmRvd0NyZWF0aW9uKGNvbXBsZXRlZFVSTCwgb3BlbmVyUGFnZUlELnZhbHVlKCksICpvcGVu
ZXJEb2N1bWVudCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0gZWxzZSBpZiAoIXVybFN0cmlu
Zy5pc0VtcHR5KCkpIHsKICAgICAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBVc2VyR2Vz
dHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8g
OiBMb2NrSGlzdG9yeTo6WWVzOwogICAgICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxl
cigpLnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoKmFjdGl2ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJMLCByZWZlcnJlciwgbG9ja0hpc3Rvcnks
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjk1OTMp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2
IEBACisyMDE4LTAzLTEzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisg
ICAgICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29r
aWUgYWNjZXNzIGZvciBkb21haW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVu
IHRoZXJlJ3MgYW4gb3BlbmVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMx
NDY5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0
IHR1cm5zIG91dCB0aGUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM1NzcKKyAgICAgICAgd2Fzbid0IGVub3VnaCB0byBhZGRyZXNzIHRoZSBjb21wYXRp
YmlsaXR5IGlzc3VlcyB3aXRoIHBvcHVwcy4gU29tZSBvZgorICAgICAgICB0aGVtIGp1c3QgZGV0
ZWN0IHRoZWlyIHVucGFydGl0aW9uZWQgY29va2llcywgYXV0by1kaXNtaXNzIHRoZW1zZWx2ZXMs
CisgICAgICAgIGFuZCBleHBlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzIHRvIGJlIGF2
YWlsYWJsZSB1bmRlciB0aGUgb3BlbmVyCisgICAgICAgIGFmdGVyd2FyZHMuIFdlIHNob3VsZCBn
cmFudCB0aGVtIGFjY2VzcyBpZiB0aGUgcG9wdXAncyBkb21haW4gaGFzIGhhZAorICAgICAgICB1
c2VyIGludGVyYWN0aW9uIF9wcmV2aW91c2x5Xy4KKworICAgICAgICBOb3RlIHRoYXQgd2Ugc3Rp
bGwgbmVlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTc3Cisg
ICAgICAgIGJlY2F1c2UgaWYgdGhlIHBvcHVwJ3MgZG9tYWluIGhhcyBub3QgcmVjZWl2ZWQgdXNl
ciBpbnRlcmFjdGlvbgorICAgICAgICBwcmV2aW91c2x5LCB3ZSB3aWxsIG5vdCBncmFudCBpdCBz
dG9yYWdlIGFjY2VzcyBvbiBqdXN0IHRoZSB3aW5kb3cgb3Blbi4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5k
ZXJPcGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OmdyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKTogRGVsZXRlZC4KKyAgICAgICAgICAg
IFJlbmFtZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcigpCisgICAgICAgICAgICB0byBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoKQorICAgICAgICAgICAgc2lu
Y2UgdGhlcmUgaXMgbm93IGEgY2FzZSB3aGVyZSBhY2Nlc3Mgd2lsbCBub3QgYmUgZ3JhbnRlZCwg
aS5lLiB3aGVuCisgICAgICAgICAgICB0aGUgcG9wdXAgZG9tYWluIGhhcyBub3QgaGFkIHVzZXIg
aW50ZXJhY3Rpb24gcHJldmlvdXNseS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFt
aW5nLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJQ
cm9jZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFtaW5nLgorCiAy
MDE4LTAzLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFk
ZCBtaXNzaW5nIGFydHdvcmsgZm9yIGZ1bGxzY3JlZW4gbW9kZS4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDIx
ICszODUsMjggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcQogICAg
IH0pOwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9y
YWdlQWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0
aW9uLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5lckRvbWFpbikKK3ZvaWQg
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKFN0cmluZyYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3Bl
bmVyUGFnZUlELCBTdHJpbmcmJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJH
ZXN0dXJlKQogewotICAgIEFTU0VSVChkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24gIT0g
b3BlbmVyRG9tYWluKTsKKyAgICBBU1NFUlQoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzICE9
IG9wZW5lckRvbWFpbik7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBp
ZiAoZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uID09IG9wZW5lckRvbWFpbikKKyAgICBp
ZiAoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikKICAgICAgICAg
cmV0dXJuOwogCi0gICAgYXV0byYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlz
dGljID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihkb21haW5SZWNl
aXZpbmdVc2VySW50ZXJhY3Rpb24pOwotICAgIGlmICghc2hvdWxkUGFydGl0aW9uQ29va2llcyhk
b21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb25TdGF0aXN0aWMpICYmICFzaG91bGRCbG9ja0Nv
b2tpZXMoZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlzdGljKSkKKyAgICBhdXRv
JiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0
YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7Cisg
ICAgYXV0byBjb29raWVzQmxvY2tlZCA9IHNob3VsZEJsb2NrQ29va2llcyhkb21haW5Jbk5lZWRP
ZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMpOworCisgICAgLy8gVGhlcmUgYXJlIG5vIGNvb2tpZXMg
dG8gZ2V0IGFjY2VzcyB0byBpZiB0aGUgZG9tYWluIGhhcyBpdHMgY29va2llcyBibG9ja2VkIGFu
ZCBkaWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9uIG5vdy4KKyAgICBpZiAoY29va2llc0Jsb2Nr
ZWQgJiYgIWlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gVGhlIGRvbWFpbiBhbHJlYWR5IGhhcyBhY2Nlc3MgaWYgaXRzIGNvb2tpZXMgYXJlIG5laXRo
ZXIgYmxvY2tlZCBub3IgcGFydGl0aW9uZWQuCisgICAgaWYgKCFjb29raWVzQmxvY2tlZCAmJiAh
c2hvdWxkUGFydGl0aW9uQ29va2llcyhkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0
aWMpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIo
V1RGTW92ZShkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24pLCBXVEZNb3ZlKG9wZW5lckRv
bWFpbiksIHN0ZDo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBbXShib29sKSB7IH0pOworICAgIG1f
Z3JhbnRTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFj
Y2VzcyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgc3RkOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQs
IFtdKGJvb2wpIHsgfSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUkVMRUFTRV9M
T0dfSU5GT19JRihtX2RlYnVnTG9nZ2luZ0VuYWJsZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NE
ZWJ1ZywgIkdyYW50IHN0b3JhZ2UgYWNjZXNzIGZvciAlcyB1bmRlciBvcGVuZXIgJXMuIiwgZG9t
YWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi51
dGY4KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5h
YmxlZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiR3JhbnQgc3RvcmFnZSBhY2Nlc3Mg
Zm9yICV7cHVibGljfXMgdW5kZXIgb3BlbmVyICV7cHVibGljfXMsICV7cHVibGljfXMgdXNlciBp
bnRlcmFjdGlvbi4iLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudXRmOCgpLmRhdGEoKSwg
b3BlbmVyRG9tYWluLnV0ZjgoKS5kYXRhKCksIChpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUgPyAi
d2l0aCIgOiAid2l0aG91dCIpKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAko
cmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgcHVi
bGljOgogCiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwg
U3RyaW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQs
IFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZv
aWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0
b3BGcmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihTdHJpbmcmJiBkb21haW5SZWNlaXZpbmdVc2VySW50ZXJh
Y3Rpb24sIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgU3RyaW5nJiYgb3BlbmVyRG9tYWluKTsKKyAg
ICB2b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluSW5O
ZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5l
ckRvbWFpbiwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOwogICAgIHZvaWQgcmVxdWVz
dFN0b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJ
ZCk7CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5
JiwgSVBDOjpDb25uZWN0aW9uJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3Nh
Z2VzLmluCShyZXZpc2lvbiAyMjk1ODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTIxLDYgKzIxLDYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlIHsKLSAgICBHcmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihT
dHJpbmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQYWdl
SUQsIFN0cmluZyBvcGVuZXJEb21haW4pCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9w
ZW5lcihTdHJpbmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVu
ZXJQYWdlSUQsIFN0cmluZyBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0
dXJlKQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiBvcmlnaW5zKQogfQpJbmRleDogU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsOCArMjA2
LDggQEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSksIDApOwog
ICAgIH0pOwogCi0gICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldEdyYW50U3Rv
cmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2soW3RoaXNdIChjb25zdCBTdHJpbmcmIGRvbWFp
blJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBjb25zdCBT
dHJpbmcmIG9wZW5lckRvbWFpbikgewotICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkdyYW50U3Rv
cmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgb3Bl
bmVyUGFnZUlELCBvcGVuZXJEb21haW4pLCAwKTsKKyAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6
c2hhcmVkKCkuc2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFt0aGlz
XSAoY29uc3QgU3RyaW5nJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9w
ZW5lclBhZ2VJRCwgY29uc3QgU3RyaW5nJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRC
eVVzZXJHZXN0dXJlKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVxdWVzdFN0b3JhZ2VB
Y2Nlc3NVbmRlck9wZW5lcihkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIG9wZW5lclBhZ2VJ
RCwgb3BlbmVyRG9tYWluLCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpLCAwKTsKICAgICB9KTsK
ICAgICAKICAgICBHaWdhY2FnZTo6ZGlzYWJsZURpc2FibGluZ1ByaW1pdGl2ZUdpZ2FjYWdlSWZT
aG91bGRCZUVuYWJsZWQoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5MykKKysrIExheW91dFRl
c3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAzLTEz
ICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNl
IExvYWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBk
b21haW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3Bl
bmVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9y
YWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1h
Y2Nlc3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFn
ZS1hY2Nlc3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbDog
QWRkZWQuCisKIDIwMTgtMDMtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMu
aHRtbCBpcyBmbGFreQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFj
Y2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMg
dGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3Bl
bmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRl
ZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KK1Nob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJycuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRl
ci1vcGVuZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdl
LWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHBy
ZXZhbGVudCBkb21haW4gd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdl
IGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBmdW5jdGlvbiBzZXRFbmFibGVGZWF0dXJlKGVuYWJsZSkgeworICAgICAg
ICAgICAgaWYgKCFlbmFibGUpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZSk7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
ICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1lbnQub25sb2Fk
ID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
ZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBm
cm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAg
ICAgbmV3V2luLmNsb3NlKCk7CisgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90IHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2lu
ZG93cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tp
ZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQ
YXJ0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBsb2dnZWQgZm9yIHVz
ZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNj
ZXNzL3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5k
b3ciKTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3Bl
bmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
Z3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBm
cm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiBn
ZXRzIGltbWVkaWF0ZSBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRlZC4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICcnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXIt
b3BlbmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdl
LWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHBy
ZXZhbGVudCBkb21haW4gd2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gZ2V0cyBpbW1l
ZGlhdGUgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgaXRzIG9wZW5lci4iKTsKKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gc2V0RW5hYmxlRmVhdHVyZShlbmFi
bGUpIHsKKyAgICAgICAgICAgIGlmICghZW5hYmxlKQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKyAgICAgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGUpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChlbmFibGUp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChlbmFi
bGUpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVu
dC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIG5ld1dpbi5jbG9zZSgpOworICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9y
YWdlQWNjZXNzL3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhU
b0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tp
ZU5hbWU7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlcklu
dGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOworICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5kb3ci
KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUtYW5kLXJlcG9ydC1i
YWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0
LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGZ1bmN0aW9uIHNldENvb2tpZUFuZFBvc3RNZXNzYWdlKCkgeworICAgICAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gImZpcnN0UGFydHlDb29raWU9dmFsdWUiOworICAgICAgICAgICAg
d2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiUEFTUyBDb29raWUgY3JlYXRlZC4iLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0Q29va2llQW5kUG9zdE1lc3NhZ2UoKSI+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335752</attachid>
            <date>2018-03-13 18:00:46 -0700</date>
            <delta_ts>2018-03-13 18:31:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183620-20180313180045.patch</filename>
            <type>text/plain</type>
            <size>30920</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAzLTEzICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3Rh
dGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBkb21haW5zIHdp
dGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3BlbmVyIGRvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2
MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci5odG1sCisKKyAgICAgICAgSXQgdHVybnMgb3V0IHRoZSBmaXggaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzU3NworICAgICAgICB3YXNuJ3QgZW5vdWdo
IHRvIGFkZHJlc3MgdGhlIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGggcG9wdXBzLiBTb21lIG9m
CisgICAgICAgIHRoZW0ganVzdCBkZXRlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzLCBh
dXRvLWRpc21pc3MgdGhlbXNlbHZlcywKKyAgICAgICAgYW5kIGV4cGVjdCB0aGVpciB1bnBhcnRp
dGlvbmVkIGNvb2tpZXMgdG8gYmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBvcGVuZXIKKyAgICAgICAg
YWZ0ZXJ3YXJkcy4gV2Ugc2hvdWxkIGdyYW50IHRoZW0gYWNjZXNzIGlmIHRoZSBwb3B1cCdzIGRv
bWFpbiBoYXMgaGFkCisgICAgICAgIHVzZXIgaW50ZXJhY3Rpb24gX3ByZXZpb3VzbHlfLgorCisg
ICAgICAgIE5vdGUgdGhhdCB3ZSBzdGlsbCBuZWVkIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM1NzcKKyAgICAgICAgYmVjYXVzZSBpZiB0aGUgcG9wdXAncyBkb21h
aW4gaGFzIG5vdCByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uCisgICAgICAgIHByZXZpb3VzbHks
IHdlIHdpbGwgbm90IGdyYW50IGl0IHN0b3JhZ2UgYWNjZXNzIG9uIGp1c3QgdGhlIHdpbmRvdyBv
cGVuLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFn
ZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6Omhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNp
ZmljU3RvcmFnZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIGZyb20gKkdy
YW50ZWQqIHRvICpSZXF1ZXN0ZWQqIHNpbmNlIHRoZXJlIGlzIG5vdyBhIGNhc2UKKyAgICAgICAg
ICAgIHdoZXJlIGFjY2VzcyB3aWxsIG5vdCBiZSBncmFudGVkLCBpLmUuIHdoZW4gdGhlIHBvcHVw
IGRvbWFpbiBoYXMKKyAgICAgICAgICAgIG5vdCBoYWQgdXNlciBpbnRlcmFjdGlvbiBwcmV2aW91
c2x5LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKToKKyAgICAgICAg
ICAgIFJlbmFtZWQgKkdyYW50KiB0byAqUmVxdWVzdCouCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93
Q3JlYXRpb24pOgorICAgICAgICAgICAgTmV3IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIERPTVdpbmRv
dzo6Y3JlYXRlV2luZG93KCkuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgICAgICBOZXcgY29u
dmVuaWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICAgICBSZW5hbWVkICpHcmFudCogdG8gKlJlcXVlc3QqLgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgICAg
IE5vdyBjYWxscyBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3JlYXRpb24oKSBpZiBh
IHdpbmRvdworICAgICAgICAgICAgd2FzIGNyZWF0ZWQgYW5kIHRoZSBvcGVuZXIgaGFzIGEgZG9j
dW1lbnQgYW5kIGEgcGFnZSBJRC4KKwogMjAxOC0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBNdXRlZCBtZWRpYSBwbGF5YmFjayBjYW4gaW50
ZXJydXB0IG91dC1vZi1wcm9jZXNzIGF1ZGlvCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDIyOTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc2MjMsMTQgKzc2MjMsMTQgQEAgdm9pZCBEb2N1bWVudDo6c2V0SGFz
RnJhbWVTcGVjaWZpY1N0b3JhZwogICAgIG1fZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnNldEhh
c0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKHZhbHVlKTsKIH0KIAotYm9vbCBEb2N1bWVudDo6
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiBwcmltYXJ5RG9tYWlu
KQorYm9vbCBEb2N1bWVudDo6aGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKQogewotICAgIHJl
dHVybiBtX3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA9PSBw
cmltYXJ5RG9tYWluOworICAgIHJldHVybiBtX3ByaW1hcnlEb21haW5SZXF1ZXN0ZWRQYWdlU3Bl
Y2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiA9PSBwcmltYXJ5RG9tYWluOwog
fQogCi12b2lkIERvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vz
cyhTdHJpbmcmIHByaW1hcnlEb21haW4pCit2b2lkIERvY3VtZW50OjpzZXRIYXNSZXF1ZXN0ZWRQ
YWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcm
IHByaW1hcnlEb21haW4pCiB7Ci0gICAgbV9wcmltYXJ5RG9tYWluR3JhbnRlZFBhZ2VTcGVjaWZp
Y1N0b3JhZ2VBY2Nlc3MgPSBwcmltYXJ5RG9tYWluOworICAgIG1fcHJpbWFyeURvbWFpblJlcXVl
c3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlckludGVyYWN0aW9uID0gcHJpbWFy
eURvbWFpbjsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24g
MjI5NTgyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0MTYsOCArMTQxNiw4IEBAIHB1YmxpYzoKICAgICBKU0M6OlRocmVhZExvY2FsQ2FjaGUm
IHRocmVhZExvY2FsQ2FjaGUoKTsKIAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElU
SU9OSU5HKQotICAgIGJvb2wgaGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3Ry
aW5nJiBwcmltYXJ5RG9tYWluKTsKLSAgICB2b2lkIHNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNT
dG9yYWdlQWNjZXNzKFN0cmluZyYgcHJpbWFyeURvbWFpbik7CisgICAgYm9vbCBoYXNSZXF1ZXN0
ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJp
bmcmIHByaW1hcnlEb21haW4pOworICAgIHZvaWQgc2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9t
YWluKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxKU0M6OlRocmVhZExvY2FsQ2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsK
IAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBt
X3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyB7IH07CisgICAg
U3RyaW5nIG1fcHJpbWFyeURvbWFpblJlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uIHsgfTsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAyMjk1ODIp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDgsMTAgKzEwOCwxMCBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVy
OjpzZXROb3RpZmljYXRpCiAgICAgbV9ub3RpZmljYXRpb25DYWxsYmFjayA9IFdURk1vdmUobm90
aWZpY2F0aW9uQ2FsbGJhY2spOwogfQogCi12b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRH
cmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmIGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3Bl
bmVyUGFnZUlELCBjb25zdCBTdHJpbmcmIG9wZW5lckRvbWFpbik+JiYgY2FsbGJhY2spCit2b2lk
IFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVy
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIGNvbnN0IFN0cmluZyYgb3BlbmVy
RG9tYWluLCBib29sIGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSk+JiYgY2FsbGJhY2spCiB7Ci0g
ICAgQVNTRVJUKCFtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2spOwotICAg
IG1fZ3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOworICAgIEFTU0VSVCghbV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJh
Y2spOworICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7CiB9CiAKIFJlc291cmNlTG9hZE9ic2VydmVyOjpSZXNvdXJjZUxvYWRP
YnNlcnZlcigpCkBAIC0zMjIsMTQgKzMyMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OmxvZ1VzZXJJbnRlcmEKICAgICAgICAgaWYgKGF1dG8qIG9wZW5lckRvY3VtZW50ID0gb3BlbmVy
LT5kb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogb3BlbmVyRnJhbWUgPSBvcGVu
ZXJEb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIG9wZW5lclBh
Z2VJRCA9IG9wZW5lckZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKSkgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIG9wZW5lclVybCA9IG9wZW5lckRvY3VtZW50LT51cmwoKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcGVuZXJQcmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFp
bihvcGVuZXJVcmwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZG9tYWluICE9IG9wZW5lclBy
aW1hcnlEb21haW4KLSAgICAgICAgICAgICAgICAgICAgICAgICYmICFvcGVuZXJEb2N1bWVudC0+
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoZG9tYWluKQotICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgIWVxdWFsSWdub3JpbmdBU0NJSUNhc2Uob3BlbmVyVXJsLnN0cmluZygp
LCBibGFua1VSTCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVyRG9jdW1lbnQt
PnNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKGRvbWFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2so
ZG9tYWluLCBvcGVuZXJQYWdlSUQudmFsdWUoKSwgb3BlbmVyUHJpbWFyeURvbWFpbik7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcihkb21haW4sIG9wZW5lclBhZ2VJRC52YWx1ZSgpLCAqb3BlbmVyRG9jdW1l
bnQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMzYxLDYgKzM1NCwzMyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dVc2VySW50
ZXJhCiAjZW5kaWYKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3Jl
YXRpb24oY29uc3QgVVJMJiBwb3B1cFVybCwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1bWVu
dCYgb3BlbmVyRG9jdW1lbnQpCit7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCisgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihwcmltYXJ5RG9tYWlu
KHBvcHVwVXJsKSwgb3BlbmVyUGFnZUlELCBvcGVuZXJEb2N1bWVudCwgZmFsc2UpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocG9wdXBVcmwpOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJQYWdl
SUQpOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJEb2N1bWVudCk7CisjZW5kaWYKK30KKworI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQordm9pZCBSZXNvdXJjZUxvYWRP
YnNlcnZlcjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihjb25zdCBTdHJpbmcmIGRv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1bWVu
dCYgb3BlbmVyRG9jdW1lbnQsIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0dXJlKQoreworICAg
IGF1dG8gb3BlbmVyVXJsID0gb3BlbmVyRG9jdW1lbnQudXJsKCk7CisgICAgYXV0byBvcGVuZXJQ
cmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFpbihvcGVuZXJVcmwpOworICAgIGlmIChkb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MgIT0gb3BlbmVyUHJpbWFyeURvbWFpbgorICAgICAgICAmJiAh
b3BlbmVyRG9jdW1lbnQuaGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhV
c2VySW50ZXJhY3Rpb24oZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKQorICAgICAgICAmJiAh
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShvcGVuZXJVcmwuc3RyaW5nKCksIGJsYW5rVVJMKCkpKSB7
CisgICAgICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKGRvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2Vzcywgb3BlbmVyUGFnZUlELCBvcGVuZXJQcmltYXJ5RG9tYWlu
LCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOworICAgICAgICAvLyBSZW1lbWJlciB1c2VyIGlu
dGVyYWN0aW9uLWJhc2VkIHJlcXVlc3RzIHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSByZXBl
YXRlZC4KKyAgICAgICAgaWYgKGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAgICAg
IG9wZW5lckRvY3VtZW50LnNldEhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7CisgICAgfQor
fQorI2VuZGlmCisKIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIFJlc291cmNlTG9hZE9ic2VydmVy
OjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYg
cHJpbWFyeURvbWFpbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVzb3VyY2VTdGF0aXN0
aWNzTWFwLmVuc3VyZShwcmltYXJ5RG9tYWluLCBbJnByaW1hcnlEb21haW5dIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCShyZXZpc2lvbiAy
Mjk1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsMTEgKzU3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhjb25zdCBGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3
UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
dm9pZCBsb2dXZWJTb2NrZXRMb2FkaW5nKGNvbnN0IEZyYW1lKiwgY29uc3QgVVJMJik7CiAgICAg
dm9pZCBsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0IERv
Y3VtZW50Jik7CisgICAgdm9pZCBsb2dXaW5kb3dDcmVhdGlvbihjb25zdCBVUkwmIHBvcHVwVXJs
LCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RhdGlzdGljc0Zvck9yaWdpbihjb25zdCBTdHJpbmcm
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2soV1RG
OjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJD
YWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIGNvbnN0
IFN0cmluZyYpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5n
JiwgdWludDY0X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wpPiYmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbm90aWZ5T2JzZXJ2ZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFy
U3RhdGUoKTsKQEAgLTgwLDEwICs4MSwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVO
b3RpZmljYXRpb25JZk5lZWRlZCgpOwogICAgIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
PiB0YWtlU3RhdGlzdGljcygpOwogCisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGNvbnN0IFN0
cmluZyYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQs
IERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUp
OworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgUmVzb3VyY2VMb2FkU3RhdGlzdGljcz4g
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFdURjo6V2FsbFRp
bWU+IG1fbGFzdFJlcG9ydGVkVXNlckludGVyYWN0aW9uTWFwOwogICAgIFdURjo6RnVuY3Rpb248
dm9pZCAoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpPiBtX25vdGlmaWNhdGlvbkNh
bGxiYWNrOwotICAgIFdURjo6RnVuY3Rpb248dm9pZChTdHJpbmcsIHVpbnQ2NF90LCBTdHJpbmcp
PiBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CisgICAgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBib29sKT4g
bV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CiAgICAgVGltZXIgbV9u
b3RpZmljYXRpb25UaW1lcjsKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0X3QgbV9sb2dnaW5nQ291bnRl
ciB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDIyOTU4
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZv
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCkBAIC0yMjc5LDYgKzIyODAsMTMgQEAgUmVm
UHRyPEZyYW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjbwogICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgY29tcGxldGVkVVJMLCByZWZlcnJlciwgVXNlUHJvdG9j
b2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVl
c3QgeyAqYWN0aXZlV2luZG93LmRvY3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIEFTQ0lJTGl0ZXJhbCgiX3NlbGYiKSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Q
cm9wYWdhdGUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICAgICAgbmV3RnJhbWUtPmxv
YWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOworCisjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgICAgIGlmIChhdXRvIG9w
ZW5lckRvY3VtZW50ID0gb3BlbmVyRnJhbWUuZG9jdW1lbnQoKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gb3BlbmVyUGFnZUlEID0gb3BlbmVyRnJhbWUubG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkpCisgICAgICAgICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ1dp
bmRvd0NyZWF0aW9uKGNvbXBsZXRlZFVSTCwgb3BlbmVyUGFnZUlELnZhbHVlKCksICpvcGVuZXJE
b2N1bWVudCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0gZWxzZSBpZiAoIXVybFN0cmluZy5p
c0VtcHR5KCkpIHsKICAgICAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBVc2VyR2VzdHVy
ZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8gOiBM
b2NrSGlzdG9yeTo6WWVzOwogICAgICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigp
LnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoKmFjdGl2ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJMLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjk1OTMpCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE4LTAzLTEzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUg
YWNjZXNzIGZvciBkb21haW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRo
ZXJlJ3MgYW4gb3BlbmVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHR1
cm5zIG91dCB0aGUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM1NzcKKyAgICAgICAgd2Fzbid0IGVub3VnaCB0byBhZGRyZXNzIHRoZSBjb21wYXRpYmls
aXR5IGlzc3VlcyB3aXRoIHBvcHVwcy4gU29tZSBvZgorICAgICAgICB0aGVtIGp1c3QgZGV0ZWN0
IHRoZWlyIHVucGFydGl0aW9uZWQgY29va2llcywgYXV0by1kaXNtaXNzIHRoZW1zZWx2ZXMsCisg
ICAgICAgIGFuZCBleHBlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzIHRvIGJlIGF2YWls
YWJsZSB1bmRlciB0aGUgb3BlbmVyCisgICAgICAgIGFmdGVyd2FyZHMuIFdlIHNob3VsZCBncmFu
dCB0aGVtIGFjY2VzcyBpZiB0aGUgcG9wdXAncyBkb21haW4gaGFzIGhhZAorICAgICAgICB1c2Vy
IGludGVyYWN0aW9uIF9wcmV2aW91c2x5Xy4KKworICAgICAgICBOb3RlIHRoYXQgd2Ugc3RpbGwg
bmVlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTc3CisgICAg
ICAgIGJlY2F1c2UgaWYgdGhlIHBvcHVwJ3MgZG9tYWluIGhhcyBub3QgcmVjZWl2ZWQgdXNlciBp
bnRlcmFjdGlvbgorICAgICAgICBwcmV2aW91c2x5LCB3ZSB3aWxsIG5vdCBncmFudCBpdCBzdG9y
YWdlIGFjY2VzcyBvbiBqdXN0IHRoZSB3aW5kb3cgb3Blbi4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJP
cGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJl
bmFtZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NV
bmRlck9wZW5lcigpCisgICAgICAgICAgICB0byBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoKQorICAgICAgICAgICAgc2luY2Ug
dGhlcmUgaXMgbm93IGEgY2FzZSB3aGVyZSBhY2Nlc3Mgd2lsbCBub3QgYmUgZ3JhbnRlZCwgaS5l
LiB3aGVuCisgICAgICAgICAgICB0aGUgcG9wdXAgZG9tYWluIGhhcyBub3QgaGFkIHVzZXIgaW50
ZXJhY3Rpb24gcHJldmlvdXNseS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFtaW5n
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJQcm9j
ZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFtaW5nLgorCiAyMDE4
LTAzLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBt
aXNzaW5nIGFydHdvcmsgZm9yIGZ1bGxzY3JlZW4gbW9kZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDIxICsz
ODUsMjggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcQogICAgIH0p
OwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9u
LCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5lckRvbWFpbikKK3ZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3Bl
bmVyKFN0cmluZyYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVy
UGFnZUlELCBTdHJpbmcmJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0
dXJlKQogewotICAgIEFTU0VSVChkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24gIT0gb3Bl
bmVyRG9tYWluKTsKKyAgICBBU1NFUlQoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzICE9IG9w
ZW5lckRvbWFpbik7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAo
ZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uID09IG9wZW5lckRvbWFpbikKKyAgICBpZiAo
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlzdGlj
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihkb21haW5SZWNlaXZp
bmdVc2VySW50ZXJhY3Rpb24pOwotICAgIGlmICghc2hvdWxkUGFydGl0aW9uQ29va2llcyhkb21h
aW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb25TdGF0aXN0aWMpICYmICFzaG91bGRCbG9ja0Nvb2tp
ZXMoZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlzdGljKSkKKyAgICBhdXRvJiBk
b21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JQcmltYXJ5RG9tYWluKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7CisgICAg
YXV0byBjb29raWVzQmxvY2tlZCA9IHNob3VsZEJsb2NrQ29va2llcyhkb21haW5Jbk5lZWRPZlN0
b3JhZ2VBY2Nlc3NTdGF0aXN0aWMpOworCisgICAgLy8gVGhlcmUgYXJlIG5vIGNvb2tpZXMgdG8g
Z2V0IGFjY2VzcyB0byBpZiB0aGUgZG9tYWluIGhhcyBpdHMgY29va2llcyBibG9ja2VkIGFuZCBk
aWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9uIG5vdy4KKyAgICBpZiAoY29va2llc0Jsb2NrZWQg
JiYgIWlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
VGhlIGRvbWFpbiBhbHJlYWR5IGhhcyBhY2Nlc3MgaWYgaXRzIGNvb2tpZXMgYXJlIG5laXRoZXIg
YmxvY2tlZCBub3IgcGFydGl0aW9uZWQuCisgICAgaWYgKCFjb29raWVzQmxvY2tlZCAmJiAhc2hv
dWxkUGFydGl0aW9uQ29va2llcyhkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RG
TW92ZShkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24pLCBXVEZNb3ZlKG9wZW5lckRvbWFp
biksIHN0ZDo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBbXShib29sKSB7IH0pOworICAgIG1fZ3Jh
bnRTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vz
cyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgc3RkOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFtd
KGJvb2wpIHsgfSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUkVMRUFTRV9MT0df
SU5GT19JRihtX2RlYnVnTG9nZ2luZ0VuYWJsZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
ZywgIkdyYW50IHN0b3JhZ2UgYWNjZXNzIGZvciAlcyB1bmRlciBvcGVuZXIgJXMuIiwgZG9tYWlu
UmVjZWl2aW5nVXNlckludGVyYWN0aW9uLnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi51dGY4
KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5hYmxl
ZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiR3JhbnQgc3RvcmFnZSBhY2Nlc3MgZm9y
ICV7cHVibGljfXMgdW5kZXIgb3BlbmVyICV7cHVibGljfXMsICV7cHVibGljfXMgdXNlciBpbnRl
cmFjdGlvbi4iLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudXRmOCgpLmRhdGEoKSwgb3Bl
bmVyRG9tYWluLnV0ZjgoKS5kYXRhKCksIChpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUgPyAid2l0
aCIgOiAid2l0aG91dCIpKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkocmV2
aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3Ry
aW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BG
cmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lcihTdHJpbmcmJiBkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rp
b24sIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgU3RyaW5nJiYgb3BlbmVyRG9tYWluKTsKKyAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5lckRv
bWFpbiwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOwogICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5Jiwg
SVBDOjpDb25uZWN0aW9uJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAyMjk1ODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlIHsKLSAgICBHcmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihTdHJp
bmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQs
IFN0cmluZyBvcGVuZXJEb21haW4pCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5l
cihTdHJpbmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQ
YWdlSUQsIFN0cmluZyBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0dXJl
KQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzPiBvcmlnaW5zKQogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsOCArMjA2LDgg
QEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSksIDApOwogICAg
IH0pOwogCi0gICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldEdyYW50U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2soW3RoaXNdIChjb25zdCBTdHJpbmcmIGRvbWFpblJl
Y2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBjb25zdCBTdHJp
bmcmIG9wZW5lckRvbWFpbikgewotICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkdyYW50U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyKGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgb3BlbmVy
UGFnZUlELCBvcGVuZXJEb21haW4pLCAwKTsKKyAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hh
cmVkKCkuc2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFt0aGlzXSAo
Y29uc3QgU3RyaW5nJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5l
clBhZ2VJRCwgY29uc3QgU3RyaW5nJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVz
ZXJHZXN0dXJlKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcihkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIG9wZW5lclBhZ2VJRCwg
b3BlbmVyRG9tYWluLCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpLCAwKTsKICAgICB9KTsKICAg
ICAKICAgICBHaWdhY2FnZTo6ZGlzYWJsZURpc2FibGluZ1ByaW1pdGl2ZUdpZ2FjYWdlSWZTaG91
bGRCZUVuYWJsZWQoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5MykKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAzLTEzICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExv
YWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBkb21h
aW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3BlbmVy
IGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nl
c3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1h
Y2Nlc3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbDogQWRk
ZWQuCisKIDIwMTgtMDMtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAg
ICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMuaHRt
bCBpcyBmbGFreQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rl
bnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vz
cy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5l
ci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMgdGhh
dCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aG91dCB1
c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVy
LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2Vz
LCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRlZC4K
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0t
LS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0t
LS0KK1Nob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitEaWQgbm90IHJlY2Vp
dmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBjb29r
aWUgbmFtZWQgJycuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1v
cGVuZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkobm9uZXhpc3RlbnQp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFj
Y2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZh
bGVudCBkb21haW4gd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdlIGFj
Y2VzcyB1bmRlciBpdHMgb3BlbmVyLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsK
KworICAgICAgICBmdW5jdGlvbiBzZXRFbmFibGVGZWF0dXJlKGVuYWJsZSkgeworICAgICAgICAg
ICAgaWYgKCFlbmFibGUpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNzUmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnNl
dENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLnNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZSk7CisgICAgICAgIH0K
KworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVNZXNz
YWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAgICAg
ICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2FkSGFu
ZGxlcikgeworICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAgICAg
ICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1lbnQub25sb2FkID0g
b25Mb2FkSGFuZGxlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiByZWNl
aXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5p
bmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKGV2
ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAgIH0g
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBmcm9t
IGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAgICAg
bmV3V2luLmNsb3NlKCk7CisgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNlVXJs
ICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90IHJlY2VpdmUgZmly
c3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAgc2V0
RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93
cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0eU9y
aWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5hbWUg
PSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tpZXMg
PSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisKKyAg
ICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQYXJ0
eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQcmV2
YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgIHRlc3RGYWlsZWQo
Ikhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAgICAg
aWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFy
dHlPcmlnaW4pKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5kb3ci
KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVy
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAko
bm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3Jh
bnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBmcm9t
IGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiBnZXRz
IGltbWVkaWF0ZSBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRlZC4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFtZTog
JzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1Nob3VsZCByZWNl
aXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQYXJ0
eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICcnLgorQ2xpZW50LXNpZGUg
ZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3Bl
bmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFj
Y2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcyIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0
LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBk
ZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZh
bGVudCBkb21haW4gd2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gZ2V0cyBpbW1lZGlh
dGUgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgaXRzIG9wZW5lci4iKTsKKyAgICAgICAganNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gc2V0RW5hYmxlRmVhdHVyZShlbmFibGUp
IHsKKyAgICAgICAgICAgIGlmICghZW5hYmxlKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKyAgICAgICAgICAgIGludGVybmFs
cy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGUpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChlbmFibGUpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChlbmFibGUp
OworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2Ui
LCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRlc3Qo
KSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlKTsKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb3BlbklmcmFtZSh1
cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0gdXJs
OworICAgICAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICBlbGVt
ZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAgICAg
ZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVudC5v
cmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAgaWYg
KGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7Cisg
ICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZlZCBh
IG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7CisK
KyAgICAgICAgICAgIG5ld1dpbi5jbG9zZSgpOworICAgICAgICAgICAgb3BlbklmcmFtZSh0aGly
ZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxkIHJl
Y2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAg
ICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5P
cGVuV2luZG93cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdl
QWNjZXNzL3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhp
cmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNv
b2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dl
dENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5h
bWU7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2Uo
dGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRp
c3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgIHRl
c3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlckludGVy
YWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOworICAgICAgICBpZiAoIXRlc3RSdW5uZXIu
aXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQorICAg
ICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIgaW50
ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRl
KHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIuc3RhdGlz
dGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICBu
ZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNjZXNzL3Jl
c291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5kb3ciKTsK
KyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwv
aHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUtYW5kLXJlcG9ydC1iYWNr
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sCShub25leGlzdGVudCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNv
b2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0IEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAg
ICAgIGZ1bmN0aW9uIHNldENvb2tpZUFuZFBvc3RNZXNzYWdlKCkgeworICAgICAgICAgICAgZG9j
dW1lbnQuY29va2llID0gImZpcnN0UGFydHlDb29raWU9dmFsdWUiOworICAgICAgICAgICAgd2lu
ZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiUEFTUyBDb29raWUgY3JlYXRlZC4iLCAiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
IG9ubG9hZD0ic2V0Q29va2llQW5kUG9zdE1lc3NhZ2UoKSI+Cis8L2JvZHk+Cis8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>335754</attachid>
            <date>2018-03-13 18:31:59 -0700</date>
            <delta_ts>2018-03-13 22:18:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183620-20180313183158.patch</filename>
            <type>text/plain</type>
            <size>33130</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5MykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDUwIEBACisyMDE4LTAzLTEzICBKb2huIFdp
bGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExvYWQgU3Rh
dGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBkb21haW5zIHdp
dGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3BlbmVyIGRvY3Vt
ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODM2
MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci5odG1sCisKKyAgICAgICAgSXQgdHVybnMgb3V0IHRoZSBmaXggaW4gaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzU3NworICAgICAgICB3YXNuJ3QgZW5vdWdo
IHRvIGFkZHJlc3MgdGhlIGNvbXBhdGliaWxpdHkgaXNzdWVzIHdpdGggcG9wdXBzLiBTb21lIG9m
CisgICAgICAgIHRoZW0ganVzdCBkZXRlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzLCBh
dXRvLWRpc21pc3MgdGhlbXNlbHZlcywKKyAgICAgICAgYW5kIGV4cGVjdCB0aGVpciB1bnBhcnRp
dGlvbmVkIGNvb2tpZXMgdG8gYmUgYXZhaWxhYmxlIHVuZGVyIHRoZSBvcGVuZXIKKyAgICAgICAg
YWZ0ZXJ3YXJkcy4gV2Ugc2hvdWxkIGdyYW50IHRoZW0gYWNjZXNzIGlmIHRoZSBwb3B1cCdzIGRv
bWFpbiBoYXMgaGFkCisgICAgICAgIHVzZXIgaW50ZXJhY3Rpb24gX3ByZXZpb3VzbHlfLgorCisg
ICAgICAgIE5vdGUgdGhhdCB3ZSBzdGlsbCBuZWVkIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODM1NzcKKyAgICAgICAgYmVjYXVzZSBpZiB0aGUgcG9wdXAncyBkb21h
aW4gaGFzIG5vdCByZWNlaXZlZCB1c2VyIGludGVyYWN0aW9uCisgICAgICAgIHByZXZpb3VzbHks
IHdlIHdpbGwgbm90IGdyYW50IGl0IHN0b3JhZ2UgYWNjZXNzIG9uIGp1c3QgdGhlIHdpbmRvdyBv
cGVuLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRv
Y3VtZW50OjpoYXNSZXF1ZXN0ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0SGFzUmVxdWVzdGVkUGFn
ZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6Omhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNp
ZmljU3RvcmFnZUFjY2Vzcyk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVkIGZyb20gKkdy
YW50ZWQqIHRvICpSZXF1ZXN0ZWQqIHNpbmNlIHRoZXJlIGlzIG5vdyBhIGNhc2UKKyAgICAgICAg
ICAgIHdoZXJlIGFjY2VzcyB3aWxsIG5vdCBiZSBncmFudGVkLCBpLmUuIHdoZW4gdGhlIHBvcHVw
IGRvbWFpbiBoYXMKKyAgICAgICAgICAgIG5vdCBoYWQgdXNlciBpbnRlcmFjdGlvbiBwcmV2aW91
c2x5LgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIGxvYWRlci9SZXNvdXJj
ZUxvYWRPYnNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKToKKyAgICAgICAg
ICAgIFJlbmFtZWQgKkdyYW50KiB0byAqUmVxdWVzdCouCisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUxvYWRPYnNlcnZlcjo6bG9nVXNlckludGVyYWN0aW9uV2l0aFJlZHVjZWRUaW1lUmVzb2x1
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93
Q3JlYXRpb24pOgorICAgICAgICAgICAgTmV3IGZ1bmN0aW9uIGNhbGxlZCBmcm9tIERPTVdpbmRv
dzo6Y3JlYXRlV2luZG93KCkuCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcik6CisgICAgICAgICAgICBOZXcgY29u
dmVuaWVuY2UgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayk6IERlbGV0ZWQuCisg
ICAgICAgICAgICBSZW5hbWVkICpHcmFudCogdG8gKlJlcXVlc3QqLgorICAgICAgICAqIGxvYWRl
ci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oOgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y3JlYXRlV2luZG93KToKKyAgICAgICAgICAg
IE5vdyBjYWxscyBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3JlYXRpb24oKSBpZiBh
IHdpbmRvdworICAgICAgICAgICAgd2FzIGNyZWF0ZWQgYW5kIHRoZSBvcGVuZXIgaGFzIGEgZG9j
dW1lbnQgYW5kIGEgcGFnZSBJRC4KKwogMjAxOC0wMy0xMyAgSmVyIE5vYmxlICA8amVyLm5vYmxl
QGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBNdXRlZCBtZWRpYSBwbGF5YmFjayBjYW4gaW50
ZXJydXB0IG91dC1vZi1wcm9jZXNzIGF1ZGlvCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJ
KHJldmlzaW9uIDIyOTU4MikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTc2MjMsMTQgKzc2MjMsMTQgQEAgdm9pZCBEb2N1bWVudDo6c2V0SGFz
RnJhbWVTcGVjaWZpY1N0b3JhZwogICAgIG1fZnJhbWUtPmxvYWRlcigpLmNsaWVudCgpLnNldEhh
c0ZyYW1lU3BlY2lmaWNTdG9yYWdlQWNjZXNzKHZhbHVlKTsKIH0KIAotYm9vbCBEb2N1bWVudDo6
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3RyaW5nJiBwcmltYXJ5RG9tYWlu
KQorYm9vbCBEb2N1bWVudDo6aGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dp
dGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9tYWluKQogewotICAgIHJl
dHVybiBtX3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyA9PSBw
cmltYXJ5RG9tYWluOworICAgIHJldHVybiBtX3ByaW1hcnlEb21haW5SZXF1ZXN0ZWRQYWdlU3Bl
Y2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbiA9PSBwcmltYXJ5RG9tYWluOwog
fQogCi12b2lkIERvY3VtZW50OjpzZXRIYXNHcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vz
cyhTdHJpbmcmIHByaW1hcnlEb21haW4pCit2b2lkIERvY3VtZW50OjpzZXRIYXNSZXF1ZXN0ZWRQ
YWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJpbmcm
IHByaW1hcnlEb21haW4pCiB7Ci0gICAgbV9wcmltYXJ5RG9tYWluR3JhbnRlZFBhZ2VTcGVjaWZp
Y1N0b3JhZ2VBY2Nlc3MgPSBwcmltYXJ5RG9tYWluOworICAgIG1fcHJpbWFyeURvbWFpblJlcXVl
c3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NXaXRoVXNlckludGVyYWN0aW9uID0gcHJpbWFy
eURvbWFpbjsKIH0KIAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24g
MjI5NTgyKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHdvcmtpbmcgY29weSkK
QEAgLTE0MTYsOCArMTQxNiw4IEBAIHB1YmxpYzoKICAgICBKU0M6OlRocmVhZExvY2FsQ2FjaGUm
IHRocmVhZExvY2FsQ2FjaGUoKTsKIAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElU
SU9OSU5HKQotICAgIGJvb2wgaGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoU3Ry
aW5nJiBwcmltYXJ5RG9tYWluKTsKLSAgICB2b2lkIHNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNT
dG9yYWdlQWNjZXNzKFN0cmluZyYgcHJpbWFyeURvbWFpbik7CisgICAgYm9vbCBoYXNSZXF1ZXN0
ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzV2l0aFVzZXJJbnRlcmFjdGlvbihjb25zdCBTdHJp
bmcmIHByaW1hcnlEb21haW4pOworICAgIHZvaWQgc2V0SGFzUmVxdWVzdGVkUGFnZVNwZWNpZmlj
U3RvcmFnZUFjY2Vzc1dpdGhVc2VySW50ZXJhY3Rpb24oY29uc3QgU3RyaW5nJiBwcmltYXJ5RG9t
YWluKTsKICNlbmRpZgogCiBwcm90ZWN0ZWQ6CkBAIC0xOTA4LDcgKzE5MDgsNyBAQCBwcml2YXRl
OgogICAgIFJlZlB0cjxKU0M6OlRocmVhZExvY2FsQ2FjaGU+IG1fdGhyZWFkTG9jYWxDYWNoZTsK
IAogI2lmIEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQotICAgIFN0cmluZyBt
X3ByaW1hcnlEb21haW5HcmFudGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2VzcyB7IH07CisgICAg
U3RyaW5nIG1fcHJpbWFyeURvbWFpblJlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uIHsgfTsKICNlbmRpZgogfTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL1Jlc291cmNlTG9hZE9ic2VydmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCShyZXZpc2lvbiAyMjk1ODIp
CisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDgsMTAgKzEwOCwxMCBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVy
OjpzZXROb3RpZmljYXRpCiAgICAgbV9ub3RpZmljYXRpb25DYWxsYmFjayA9IFdURk1vdmUobm90
aWZpY2F0aW9uQ2FsbGJhY2spOwogfQogCi12b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRH
cmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFdURjo6RnVuY3Rpb248dm9pZChj
b25zdCBTdHJpbmcmIGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3Bl
bmVyUGFnZUlELCBjb25zdCBTdHJpbmcmIG9wZW5lckRvbWFpbik+JiYgY2FsbGJhY2spCit2b2lk
IFJlc291cmNlTG9hZE9ic2VydmVyOjpzZXRSZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVy
Q2FsbGJhY2soV1RGOjpGdW5jdGlvbjx2b2lkKGNvbnN0IFN0cmluZyYgZG9tYWluSW5OZWVkT2ZT
dG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIGNvbnN0IFN0cmluZyYgb3BlbmVy
RG9tYWluLCBib29sIGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSk+JiYgY2FsbGJhY2spCiB7Ci0g
ICAgQVNTRVJUKCFtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2spOwotICAg
IG1fZ3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spOworICAgIEFTU0VSVCghbV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJh
Y2spOworICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayk7CiB9CiAKIFJlc291cmNlTG9hZE9ic2VydmVyOjpSZXNvdXJjZUxvYWRP
YnNlcnZlcigpCkBAIC0zMjIsMTQgKzMyMiw3IEBAIHZvaWQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6
OmxvZ1VzZXJJbnRlcmEKICAgICAgICAgaWYgKGF1dG8qIG9wZW5lckRvY3VtZW50ID0gb3BlbmVy
LT5kb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0byogb3BlbmVyRnJhbWUgPSBvcGVu
ZXJEb2N1bWVudC0+ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIG9wZW5lclBh
Z2VJRCA9IG9wZW5lckZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKS5wYWdlSUQoKSkgewotICAgICAg
ICAgICAgICAgICAgICBhdXRvIG9wZW5lclVybCA9IG9wZW5lckRvY3VtZW50LT51cmwoKTsKLSAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcGVuZXJQcmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFp
bihvcGVuZXJVcmwpOwotICAgICAgICAgICAgICAgICAgICBpZiAoZG9tYWluICE9IG9wZW5lclBy
aW1hcnlEb21haW4KLSAgICAgICAgICAgICAgICAgICAgICAgICYmICFvcGVuZXJEb2N1bWVudC0+
aGFzR3JhbnRlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3MoZG9tYWluKQotICAgICAgICAgICAg
ICAgICAgICAgICAgJiYgIWVxdWFsSWdub3JpbmdBU0NJSUNhc2Uob3BlbmVyVXJsLnN0cmluZygp
LCBibGFua1VSTCgpKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgb3BlbmVyRG9jdW1lbnQt
PnNldEhhc0dyYW50ZWRQYWdlU3BlY2lmaWNTdG9yYWdlQWNjZXNzKGRvbWFpbik7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2so
ZG9tYWluLCBvcGVuZXJQYWdlSUQudmFsdWUoKSwgb3BlbmVyUHJpbWFyeURvbWFpbik7Ci0gICAg
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgcmVxdWVzdFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcihkb21haW4sIG9wZW5lclBhZ2VJRC52YWx1ZSgpLCAqb3BlbmVyRG9jdW1l
bnQsIHRydWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpA
QCAtMzYxLDYgKzM1NCwzMyBAQCB2b2lkIFJlc291cmNlTG9hZE9ic2VydmVyOjpsb2dVc2VySW50
ZXJhCiAjZW5kaWYKIH0KIAordm9pZCBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6bG9nV2luZG93Q3Jl
YXRpb24oY29uc3QgVVJMJiBwb3B1cFVybCwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1bWVu
dCYgb3BlbmVyRG9jdW1lbnQpCit7CisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCisgICAgcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihwcmltYXJ5RG9tYWlu
KHBvcHVwVXJsKSwgb3BlbmVyUGFnZUlELCBvcGVuZXJEb2N1bWVudCwgZmFsc2UpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0ocG9wdXBVcmwpOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJQYWdl
SUQpOworICAgIFVOVVNFRF9QQVJBTShvcGVuZXJEb2N1bWVudCk7CisjZW5kaWYKK30KKworI2lm
IEhBVkUoQ0ZORVRXT1JLX1NUT1JBR0VfUEFSVElUSU9OSU5HKQordm9pZCBSZXNvdXJjZUxvYWRP
YnNlcnZlcjo6cmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihjb25zdCBTdHJpbmcmIGRv
bWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBEb2N1bWVu
dCYgb3BlbmVyRG9jdW1lbnQsIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0dXJlKQoreworICAg
IGF1dG8gb3BlbmVyVXJsID0gb3BlbmVyRG9jdW1lbnQudXJsKCk7CisgICAgYXV0byBvcGVuZXJQ
cmltYXJ5RG9tYWluID0gcHJpbWFyeURvbWFpbihvcGVuZXJVcmwpOworICAgIGlmIChkb21haW5J
bk5lZWRPZlN0b3JhZ2VBY2Nlc3MgIT0gb3BlbmVyUHJpbWFyeURvbWFpbgorICAgICAgICAmJiAh
b3BlbmVyRG9jdW1lbnQuaGFzUmVxdWVzdGVkUGFnZVNwZWNpZmljU3RvcmFnZUFjY2Vzc1dpdGhV
c2VySW50ZXJhY3Rpb24oZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzKQorICAgICAgICAmJiAh
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShvcGVuZXJVcmwuc3RyaW5nKCksIGJsYW5rVVJMKCkpKSB7
CisgICAgICAgIG1fcmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKGRvbWFp
bkluTmVlZE9mU3RvcmFnZUFjY2Vzcywgb3BlbmVyUGFnZUlELCBvcGVuZXJQcmltYXJ5RG9tYWlu
LCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOworICAgICAgICAvLyBSZW1lbWJlciB1c2VyIGlu
dGVyYWN0aW9uLWJhc2VkIHJlcXVlc3RzIHNpbmNlIHRoZXkgZG9uJ3QgbmVlZCB0byBiZSByZXBl
YXRlZC4KKyAgICAgICAgaWYgKGlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAgICAg
IG9wZW5lckRvY3VtZW50LnNldEhhc1JlcXVlc3RlZFBhZ2VTcGVjaWZpY1N0b3JhZ2VBY2Nlc3NX
aXRoVXNlckludGVyYWN0aW9uKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7CisgICAgfQor
fQorI2VuZGlmCisKIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIFJlc291cmNlTG9hZE9ic2VydmVy
OjplbnN1cmVSZXNvdXJjZVN0YXRpc3RpY3NGb3JQcmltYXJ5RG9tYWluKGNvbnN0IFN0cmluZyYg
cHJpbWFyeURvbWFpbikKIHsKICAgICBhdXRvIGFkZFJlc3VsdCA9IG1fcmVzb3VyY2VTdGF0aXN0
aWNzTWFwLmVuc3VyZShwcmltYXJ5RG9tYWluLCBbJnByaW1hcnlEb21haW5dIHsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRPYnNlcnZlci5oCShyZXZpc2lvbiAy
Mjk1ODIpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaAko
d29ya2luZyBjb3B5KQpAQCAtNTcsMTEgKzU3LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGxvZ1N1
YnJlc291cmNlTG9hZGluZyhjb25zdCBGcmFtZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgbmV3
UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAg
dm9pZCBsb2dXZWJTb2NrZXRMb2FkaW5nKGNvbnN0IEZyYW1lKiwgY29uc3QgVVJMJik7CiAgICAg
dm9pZCBsb2dVc2VySW50ZXJhY3Rpb25XaXRoUmVkdWNlZFRpbWVSZXNvbHV0aW9uKGNvbnN0IERv
Y3VtZW50Jik7CisgICAgdm9pZCBsb2dXaW5kb3dDcmVhdGlvbihjb25zdCBVUkwmIHBvcHVwVXJs
LCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCk7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBTdHJpbmcgc3RhdGlzdGljc0Zvck9yaWdpbihjb25zdCBTdHJpbmcm
KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Tm90aWZpY2F0aW9uQ2FsbGJhY2soV1RG
OjpGdW5jdGlvbjx2b2lkIChWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJik+JiYpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0R3JhbnRTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXJD
YWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QsIGNvbnN0
IFN0cmluZyYpPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFJlcXVlc3RTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXJDYWxsYmFjayhXVEY6OkZ1bmN0aW9uPHZvaWQoY29uc3QgU3RyaW5n
JiwgdWludDY0X3QsIGNvbnN0IFN0cmluZyYsIGJvb2wpPiYmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbm90aWZ5T2JzZXJ2ZXIoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFy
U3RhdGUoKTsKQEAgLTgwLDEwICs4MSwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2NoZWR1bGVO
b3RpZmljYXRpb25JZk5lZWRlZCgpOwogICAgIFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
PiB0YWtlU3RhdGlzdGljcygpOwogCisjaWYgSEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJ
T05JTkcpCisgICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKGNvbnN0IFN0
cmluZyYgZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQs
IERvY3VtZW50JiBvcGVuZXJEb2N1bWVudCwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUp
OworI2VuZGlmCisKICAgICBIYXNoTWFwPFN0cmluZywgUmVzb3VyY2VMb2FkU3RhdGlzdGljcz4g
bV9yZXNvdXJjZVN0YXRpc3RpY3NNYXA7CiAgICAgSGFzaE1hcDxTdHJpbmcsIFdURjo6V2FsbFRp
bWU+IG1fbGFzdFJlcG9ydGVkVXNlckludGVyYWN0aW9uTWFwOwogICAgIFdURjo6RnVuY3Rpb248
dm9pZCAoVmVjdG9yPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+JiYpPiBtX25vdGlmaWNhdGlvbkNh
bGxiYWNrOwotICAgIFdURjo6RnVuY3Rpb248dm9pZChTdHJpbmcsIHVpbnQ2NF90LCBTdHJpbmcp
PiBtX2dyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CisgICAgV1RGOjpGdW5j
dGlvbjx2b2lkKGNvbnN0IFN0cmluZyYsIHVpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBib29sKT4g
bV9yZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2s7CiAgICAgVGltZXIgbV9u
b3RpZmljYXRpb25UaW1lcjsKICNpZiBIQVZFKENGTkVUV09SS19TVE9SQUdFX1BBUlRJVElPTklO
RykgJiYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECiAgICAgdWludDY0X3QgbV9sb2dnaW5nQ291bnRl
ciB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAJKHJldmlzaW9uIDIyOTU4
MikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODAsNiArODAsNyBAQAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCiAjaW5jbHVkZSAiUmVx
dWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2suaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRJbmZv
LmgiCisjaW5jbHVkZSAiUmVzb3VyY2VMb2FkT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSdW50aW1l
QXBwbGljYXRpb25DaGVja3MuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgi
CiAjaW5jbHVkZSAiU2NoZWR1bGVkQWN0aW9uLmgiCkBAIC0yMjc5LDYgKzIyODAsMTMgQEAgUmVm
UHRyPEZyYW1lPiBET01XaW5kb3c6OmNyZWF0ZVdpbmRvdyhjbwogICAgICAgICBSZXNvdXJjZVJl
cXVlc3QgcmVzb3VyY2VSZXF1ZXN0IHsgY29tcGxldGVkVVJMLCByZWZlcnJlciwgVXNlUHJvdG9j
b2xDYWNoZVBvbGljeSB9OwogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IGZyYW1lTG9hZFJlcXVl
c3QgeyAqYWN0aXZlV2luZG93LmRvY3VtZW50KCksIGFjdGl2ZVdpbmRvdy5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCByZXNvdXJjZVJlcXVlc3QsIEFTQ0lJTGl0ZXJhbCgiX3NlbGYiKSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIGFjdGl2ZURvY3VtZW50LT5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9Q
cm9wYWdhdGUoKSwgaW5pdGlhdGVkQnlNYWluRnJhbWUgfTsKICAgICAgICAgbmV3RnJhbWUtPmxv
YWRlcigpLmNoYW5nZUxvY2F0aW9uKFdURk1vdmUoZnJhbWVMb2FkUmVxdWVzdCkpOworCisjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCisgICAgICAgIGlmIChhdXRvIG9w
ZW5lckRvY3VtZW50ID0gb3BlbmVyRnJhbWUuZG9jdW1lbnQoKSkgeworICAgICAgICAgICAgaWYg
KGF1dG8gb3BlbmVyUGFnZUlEID0gb3BlbmVyRnJhbWUubG9hZGVyKCkuY2xpZW50KCkucGFnZUlE
KCkpCisgICAgICAgICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ1dp
bmRvd0NyZWF0aW9uKGNvbXBsZXRlZFVSTCwgb3BlbmVyUGFnZUlELnZhbHVlKCksICpvcGVuZXJE
b2N1bWVudCk7CisgICAgICAgIH0KKyNlbmRpZgogICAgIH0gZWxzZSBpZiAoIXVybFN0cmluZy5p
c0VtcHR5KCkpIHsKICAgICAgICAgTG9ja0hpc3RvcnkgbG9ja0hpc3RvcnkgPSBVc2VyR2VzdHVy
ZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgPyBMb2NrSGlzdG9yeTo6Tm8gOiBM
b2NrSGlzdG9yeTo6WWVzOwogICAgICAgICBuZXdGcmFtZS0+bmF2aWdhdGlvblNjaGVkdWxlcigp
LnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoKmFjdGl2ZURvY3VtZW50LCBhY3RpdmVEb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKSwgY29tcGxldGVkVVJMLCByZWZlcnJlciwgbG9ja0hpc3RvcnksIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjk1OTMpCisr
KyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBA
CisyMDE4LTAzLTEzICBKb2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlc291cmNlIExvYWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUg
YWNjZXNzIGZvciBkb21haW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRo
ZXJlJ3MgYW4gb3BlbmVyIGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEl0IHR1
cm5zIG91dCB0aGUgZml4IGluIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM1NzcKKyAgICAgICAgd2Fzbid0IGVub3VnaCB0byBhZGRyZXNzIHRoZSBjb21wYXRpYmls
aXR5IGlzc3VlcyB3aXRoIHBvcHVwcy4gU29tZSBvZgorICAgICAgICB0aGVtIGp1c3QgZGV0ZWN0
IHRoZWlyIHVucGFydGl0aW9uZWQgY29va2llcywgYXV0by1kaXNtaXNzIHRoZW1zZWx2ZXMsCisg
ICAgICAgIGFuZCBleHBlY3QgdGhlaXIgdW5wYXJ0aXRpb25lZCBjb29raWVzIHRvIGJlIGF2YWls
YWJsZSB1bmRlciB0aGUgb3BlbmVyCisgICAgICAgIGFmdGVyd2FyZHMuIFdlIHNob3VsZCBncmFu
dCB0aGVtIGFjY2VzcyBpZiB0aGUgcG9wdXAncyBkb21haW4gaGFzIGhhZAorICAgICAgICB1c2Vy
IGludGVyYWN0aW9uIF9wcmV2aW91c2x5Xy4KKworICAgICAgICBOb3RlIHRoYXQgd2Ugc3RpbGwg
bmVlZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzNTc3CisgICAg
ICAgIGJlY2F1c2UgaWYgdGhlIHBvcHVwJ3MgZG9tYWluIGhhcyBub3QgcmVjZWl2ZWQgdXNlciBp
bnRlcmFjdGlvbgorICAgICAgICBwcmV2aW91c2x5LCB3ZSB3aWxsIG5vdCBncmFudCBpdCBzdG9y
YWdlIGFjY2VzcyBvbiBqdXN0IHRoZSB3aW5kb3cgb3Blbi4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJP
cGVuZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OmdyYW50U3RvcmFnZUFjY2Vzc1VuZGVyT3BlbmVyKTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJl
bmFtZWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpncmFudFN0b3JhZ2VBY2Nlc3NV
bmRlck9wZW5lcigpCisgICAgICAgICAgICB0byBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OnJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoKQorICAgICAgICAgICAgc2luY2Ug
dGhlcmUgaXMgbm93IGEgY2FzZSB3aGVyZSBhY2Nlc3Mgd2lsbCBub3QgYmUgZ3JhbnRlZCwgaS5l
LiB3aGVuCisgICAgICAgICAgICB0aGUgcG9wdXAgZG9tYWluIGhhcyBub3QgaGFkIHVzZXIgaW50
ZXJhY3Rpb24gcHJldmlvdXNseS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFtaW5n
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJQcm9j
ZXNzOjpXZWJQcm9jZXNzKToKKyAgICAgICAgICAgICBTaW1pbGFyIHJlbmFtaW5nLgorCiAyMDE4
LTAzLTEzICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBt
aXNzaW5nIGFydHdvcmsgZm9yIGZ1bGxzY3JlZW4gbW9kZS4KSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzg1LDIxICsz
ODUsMjggQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnJlcQogICAgIH0p
OwogfQogCi12b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6Z3JhbnRTdG9yYWdl
QWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9u
LCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5lckRvbWFpbikKK3ZvaWQgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpyZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVyT3Bl
bmVyKFN0cmluZyYmIGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcywgdWludDY0X3Qgb3BlbmVy
UGFnZUlELCBTdHJpbmcmJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0
dXJlKQogewotICAgIEFTU0VSVChkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24gIT0gb3Bl
bmVyRG9tYWluKTsKKyAgICBBU1NFUlQoZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzICE9IG9w
ZW5lckRvbWFpbik7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKLSAgICBpZiAo
ZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uID09IG9wZW5lckRvbWFpbikKKyAgICBpZiAo
ZG9tYWluSW5OZWVkT2ZTdG9yYWdlQWNjZXNzID09IG9wZW5lckRvbWFpbikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgYXV0byYgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlzdGlj
ID0gZW5zdXJlUmVzb3VyY2VTdGF0aXN0aWNzRm9yUHJpbWFyeURvbWFpbihkb21haW5SZWNlaXZp
bmdVc2VySW50ZXJhY3Rpb24pOwotICAgIGlmICghc2hvdWxkUGFydGl0aW9uQ29va2llcyhkb21h
aW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb25TdGF0aXN0aWMpICYmICFzaG91bGRCbG9ja0Nvb2tp
ZXMoZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uU3RhdGlzdGljKSkKKyAgICBhdXRvJiBk
b21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMgPSBlbnN1cmVSZXNvdXJjZVN0YXRp
c3RpY3NGb3JQcmltYXJ5RG9tYWluKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vzcyk7CisgICAg
YXV0byBjb29raWVzQmxvY2tlZCA9IHNob3VsZEJsb2NrQ29va2llcyhkb21haW5Jbk5lZWRPZlN0
b3JhZ2VBY2Nlc3NTdGF0aXN0aWMpOworCisgICAgLy8gVGhlcmUgYXJlIG5vIGNvb2tpZXMgdG8g
Z2V0IGFjY2VzcyB0byBpZiB0aGUgZG9tYWluIGhhcyBpdHMgY29va2llcyBibG9ja2VkIGFuZCBk
aWQgbm90IGdldCB1c2VyIGludGVyYWN0aW9uIG5vdy4KKyAgICBpZiAoY29va2llc0Jsb2NrZWQg
JiYgIWlzVHJpZ2dlcmVkQnlVc2VyR2VzdHVyZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8g
VGhlIGRvbWFpbiBhbHJlYWR5IGhhcyBhY2Nlc3MgaWYgaXRzIGNvb2tpZXMgYXJlIG5laXRoZXIg
YmxvY2tlZCBub3IgcGFydGl0aW9uZWQuCisgICAgaWYgKCFjb29raWVzQmxvY2tlZCAmJiAhc2hv
dWxkUGFydGl0aW9uQ29va2llcyhkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3NTdGF0aXN0aWMp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2dyYW50U3RvcmFnZUFjY2Vzc0hhbmRsZXIoV1RG
TW92ZShkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rpb24pLCBXVEZNb3ZlKG9wZW5lckRvbWFp
biksIHN0ZDo6bnVsbG9wdCwgb3BlbmVyUGFnZUlELCBbXShib29sKSB7IH0pOworICAgIG1fZ3Jh
bnRTdG9yYWdlQWNjZXNzSGFuZGxlcihXVEZNb3ZlKGRvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2Vz
cyksIFdURk1vdmUob3BlbmVyRG9tYWluKSwgc3RkOjpudWxsb3B0LCBvcGVuZXJQYWdlSUQsIFtd
KGJvb2wpIHsgfSk7CiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECi0gICAgUkVMRUFTRV9MT0df
SU5GT19JRihtX2RlYnVnTG9nZ2luZ0VuYWJsZWQsIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1
ZywgIkdyYW50IHN0b3JhZ2UgYWNjZXNzIGZvciAlcyB1bmRlciBvcGVuZXIgJXMuIiwgZG9tYWlu
UmVjZWl2aW5nVXNlckludGVyYWN0aW9uLnV0ZjgoKS5kYXRhKCksIG9wZW5lckRvbWFpbi51dGY4
KCkuZGF0YSgpKTsKKyAgICBSRUxFQVNFX0xPR19JTkZPX0lGKG1fZGVidWdMb2dnaW5nRW5hYmxl
ZCwgUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnLCAiR3JhbnQgc3RvcmFnZSBhY2Nlc3MgZm9y
ICV7cHVibGljfXMgdW5kZXIgb3BlbmVyICV7cHVibGljfXMsICV7cHVibGljfXMgdXNlciBpbnRl
cmFjdGlvbi4iLCBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MudXRmOCgpLmRhdGEoKSwgb3Bl
bmVyRG9tYWluLnV0ZjgoKS5kYXRhKCksIChpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUgPyAid2l0
aCIgOiAid2l0aG91dCIpKTsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAkocmV2
aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGlj
OgogCiAgICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKFN0cmluZyYmIHN1YkZyYW1lSG9zdCwgU3Ry
aW5nJiYgdG9wRnJhbWVIb3N0LCB1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBwYWdlSUQsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZCAoYm9vbCk+JiYgY2FsbGJhY2spOwogICAgIHZvaWQg
cmVxdWVzdFN0b3JhZ2VBY2Nlc3MoU3RyaW5nJiYgc3ViRnJhbWVIb3N0LCBTdHJpbmcmJiB0b3BG
cmFtZUhvc3QsIHVpbnQ2NF90IGZyYW1lSUQsIHVpbnQ2NF90IHBhZ2VJRCwgV1RGOjpDb21wbGV0
aW9uSGFuZGxlcjx2b2lkIChib29sKT4mJiBjYWxsYmFjayk7Ci0gICAgdm9pZCBncmFudFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lcihTdHJpbmcmJiBkb21haW5SZWNlaXZpbmdVc2VySW50ZXJhY3Rp
b24sIHVpbnQ2NF90IG9wZW5lclBhZ2VJRCwgU3RyaW5nJiYgb3BlbmVyRG9tYWluKTsKKyAgICB2
b2lkIHJlcXVlc3RTdG9yYWdlQWNjZXNzVW5kZXJPcGVuZXIoU3RyaW5nJiYgZG9tYWluSW5OZWVk
T2ZTdG9yYWdlQWNjZXNzLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQsIFN0cmluZyYmIG9wZW5lckRv
bWFpbiwgYm9vbCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpOwogICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3NDYWxsYmFjayhib29sIHdhc0dyYW50ZWQsIHVpbnQ2NF90IGNvbnRleHRJZCk7
CiAKICAgICB2b2lkIHByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUHJvY2Vzc1Byb3h5Jiwg
SVBDOjpDb25uZWN0aW9uJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2Vz
LmluCShyZXZpc2lvbiAyMjk1ODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDYgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlIHsKLSAgICBHcmFudFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lcihTdHJp
bmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQYWdlSUQs
IFN0cmluZyBvcGVuZXJEb21haW4pCisgICAgUmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5l
cihTdHJpbmcgZG9tYWluUmVjZWl2aW5nVXNlckludGVyYWN0aW9uLCB1aW50NjRfdCBvcGVuZXJQ
YWdlSUQsIFN0cmluZyBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVzZXJHZXN0dXJl
KQogICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NVcGRhdGVkKFZlY3RvcjxXZWJDb3JlOjpSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzPiBvcmlnaW5zKQogfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjI5NTgyKQorKysgU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsOCArMjA2LDgg
QEAgV2ViUHJvY2Vzczo6V2ViUHJvY2VzcygpCiAgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVz
b3VyY2VMb2FkU3RhdGlzdGljc1VwZGF0ZWQoV1RGTW92ZShzdGF0aXN0aWNzKSksIDApOwogICAg
IH0pOwogCi0gICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLnNldEdyYW50U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyQ2FsbGJhY2soW3RoaXNdIChjb25zdCBTdHJpbmcmIGRvbWFpblJl
Y2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgdWludDY0X3Qgb3BlbmVyUGFnZUlELCBjb25zdCBTdHJp
bmcmIG9wZW5lckRvbWFpbikgewotICAgICAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkdyYW50U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyKGRvbWFpblJlY2VpdmluZ1VzZXJJbnRlcmFjdGlvbiwgb3BlbmVy
UGFnZUlELCBvcGVuZXJEb21haW4pLCAwKTsKKyAgICBSZXNvdXJjZUxvYWRPYnNlcnZlcjo6c2hh
cmVkKCkuc2V0UmVxdWVzdFN0b3JhZ2VBY2Nlc3NVbmRlck9wZW5lckNhbGxiYWNrKFt0aGlzXSAo
Y29uc3QgU3RyaW5nJiBkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIHVpbnQ2NF90IG9wZW5l
clBhZ2VJRCwgY29uc3QgU3RyaW5nJiBvcGVuZXJEb21haW4sIGJvb2wgaXNUcmlnZ2VyZWRCeVVz
ZXJHZXN0dXJlKSB7CisgICAgICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVxdWVzdFN0b3JhZ2VBY2Nl
c3NVbmRlck9wZW5lcihkb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MsIG9wZW5lclBhZ2VJRCwg
b3BlbmVyRG9tYWluLCBpc1RyaWdnZXJlZEJ5VXNlckdlc3R1cmUpLCAwKTsKICAgICB9KTsKICAg
ICAKICAgICBHaWdhY2FnZTo6ZGlzYWJsZURpc2FibGluZ1ByaW1pdGl2ZUdpZ2FjYWdlSWZTaG91
bGRCZUVuYWJsZWQoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyOTU5NikKKysrIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE4LTAzLTEzICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJlc291cmNlIExv
YWQgU3RhdGlzdGljczogSW1tZWRpYXRlbHkgZm9yd2FyZCBjb29raWUgYWNjZXNzIGZvciBkb21h
aW5zIHdpdGggcHJldmlvdXMgdXNlciBpbnRlcmFjdGlvbiB3aGVuIHRoZXJlJ3MgYW4gb3BlbmVy
IGRvY3VtZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODM2MjAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NDMxNDY5PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nl
c3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFn
ZUFjY2Vzcy9ncmFudC1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1h
Y2Nlc3MtdW5kZXItb3BlbmVyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc3Rv
cmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICAg
ICBOZXcgdGVzdHMgbWFya2VkIGFzIFsgUGFzcyBdLgorICAgICAgICAqIHBsYXRmb3JtL21hYy13
azIvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgICAgIE5ldyB0ZXN0cyBtYXJrZWQgYXMgWyBQ
YXNzIF0uCisKIDIwMTgtMDMtMTMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIExheW91dCBUZXN0IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3JlZ2lzdGVyLWNsb3NlZC13aW5kb3cuaHR0cHMu
aHRtbCBpcyBmbGFreQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNz
L2Rlbnktc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFj
Y2Vzcy11bmRlci1vcGVuZXItZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9w
ZW5lci1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxOCBAQAorVGVzdHMg
dGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHByZXZhbGVudCBkb21haW4gd2l0aG91
dCB1c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3Bl
bmVyLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRl
ZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisK
Ky0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0t
LS0tLS0KK1Nob3VsZCBub3QgcmVjZWl2ZSBmaXJzdC1wYXJ0eSBjb29raWUuCitEaWQgbm90IHJl
Y2VpdmUgY29va2llIG5hbWVkICdmaXJzdFBhcnR5Q29va2llJy4KK0RpZCBub3QgcmVjZWl2ZSBj
b29raWUgbmFtZWQgJycuCitDbGllbnQtc2lkZSBkb2N1bWVudC5jb29raWU6CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRl
ci1vcGVuZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3Jh
Z2VBY2Nlc3MvZGVueS1zdG9yYWdlLWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkobm9uZXhpc3Rl
bnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZGVueS1zdG9yYWdl
LWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHBy
ZXZhbGVudCBkb21haW4gd2l0aG91dCB1c2VyIGludGVyYWN0aW9uIGlzIGRlbmllZCBzdG9yYWdl
IGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICBmdW5jdGlvbiBzZXRFbmFibGVGZWF0dXJlKGVuYWJsZSkgeworICAgICAg
ICAgICAgaWYgKCFlbmFibGUpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5zdGF0aXN0aWNz
UmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpOworICAgICAgICAgICAgaW50ZXJuYWxzLnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAgICB0ZXN0UnVubmVy
LnNldENvb2tpZVN0b3JhZ2VQYXJ0aXRpb25pbmdFbmFibGVkKGVuYWJsZSk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFN0b3JhZ2VBY2Nlc3NBUElFbmFibGVkKGVuYWJsZSk7CisgICAgICAg
IH0KKworICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIHJlY2VpdmVN
ZXNzYWdlLCBmYWxzZSk7CisKKyAgICAgICAgZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKKyAgICAg
ICAgICAgIHNldEVuYWJsZUZlYXR1cmUoZmFsc2UpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvcGVuSWZyYW1lKHVybCwgb25Mb2Fk
SGFuZGxlcikgeworICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImlmcmFtZSIpOworICAgICAgICAgICAgZWxlbWVudC5zcmMgPSB1cmw7CisgICAgICAg
ICAgICBpZiAob25Mb2FkSGFuZGxlcikgeworICAgICAgICAgICAgICAgIGVsZW1lbnQub25sb2Fk
ID0gb25Mb2FkSGFuZGxlcjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZWxlbWVudCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBy
ZWNlaXZlTWVzc2FnZShldmVudCkgeworICAgICAgICAgICAgaWYgKGV2ZW50Lm9yaWdpbiA9PT0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIpIHsKKyAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0
YS5pbmRleE9mKCJQQVNTIikgIT09IC0xKQorICAgICAgICAgICAgICAgICAgICB0ZXN0UGFzc2Vk
KGV2ZW50LmRhdGEucmVwbGFjZSgiUEFTUyAiLCAiIikpOworICAgICAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChldmVudC5kYXRhKTsKKyAgICAgICAgICAg
IH0gZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoIlJlY2VpdmVkIGEgbWVzc2FnZSBm
cm9tIGFuIHVuZXhwZWN0ZWQgb3JpZ2luOiAiICsgZXZlbnQub3JpZ2luKTsKKworICAgICAgICAg
ICAgbmV3V2luLmNsb3NlKCk7CisgICAgICAgICAgICBvcGVuSWZyYW1lKHRoaXJkUGFydHlCYXNl
VXJsICsgc3ViUGF0aFRvR2V0Q29va2llcyArICImbWVzc2FnZT1TaG91bGQgbm90IHJlY2VpdmUg
Zmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisKKyAgICAgICAg
c2V0RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2lu
ZG93cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0gdGhpcmRQYXJ0
eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0eUNvb2tpZU5h
bWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhUb0dldENvb2tp
ZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tpZU5hbWU7CisK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3VyY2UodGhpcmRQ
YXJ0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0YXRpc3RpY3NQ
cmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAgIHRlc3RGYWls
ZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4iKTsKKyAgICAg
ICAgaWYgKHRlc3RSdW5uZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJk
UGFydHlPcmlnaW4pKQorICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBsb2dnZWQgZm9yIHVz
ZXIgaW50ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNv
bXBsZXRlKHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIu
c3RhdGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNj
ZXNzL3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5k
b3ciKTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9k
eT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3Bl
bmVyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0
b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4
dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3Mv
Z3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDE4IEBACitUZXN0cyB0aGF0IGEgY3Jvc3Mtb3JpZ2luIHdpbmRvdyBm
cm9tIGEgcHJldmFsZW50IGRvbWFpbiB3aXRoIG5vbi1yZWNlbnQgdXNlciBpbnRlcmFjdGlvbiBn
ZXRzIGltbWVkaWF0ZSBzdG9yYWdlIGFjY2VzcyB1bmRlciBpdHMgb3BlbmVyLgorCitPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBDb29raWUgY3JlYXRlZC4KK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCisKKy0tLS0tLS0tCitGcmFt
ZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1Nob3VsZCBy
ZWNlaXZlIGZpcnN0LXBhcnR5IGNvb2tpZS4KK1JlY2VpdmVkIGNvb2tpZSBuYW1lZCAnZmlyc3RQ
YXJ0eUNvb2tpZScuCitEaWQgbm90IHJlY2VpdmUgY29va2llIG5hbWVkICcnLgorQ2xpZW50LXNp
ZGUgZG9jdW1lbnQuY29va2llOiBmaXJzdFBhcnR5Q29va2llPXZhbHVlCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXIt
b3BlbmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdl
QWNjZXNzL2dyYW50LXN0b3JhZ2UtYWNjZXNzLXVuZGVyLW9wZW5lci5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9ncmFudC1zdG9yYWdl
LWFjY2Vzcy11bmRlci1vcGVuZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcyIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10
ZXN0LXJlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAg
ICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCBhIGNyb3NzLW9yaWdpbiB3aW5kb3cgZnJvbSBhIHBy
ZXZhbGVudCBkb21haW4gd2l0aCBub24tcmVjZW50IHVzZXIgaW50ZXJhY3Rpb24gZ2V0cyBpbW1l
ZGlhdGUgc3RvcmFnZSBhY2Nlc3MgdW5kZXIgaXRzIG9wZW5lci4iKTsKKyAgICAgICAganNUZXN0
SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gc2V0RW5hYmxlRmVhdHVyZShlbmFi
bGUpIHsKKyAgICAgICAgICAgIGlmICghZW5hYmxlKQorICAgICAgICAgICAgICAgIHRlc3RSdW5u
ZXIuc3RhdGlzdGljc1Jlc2V0VG9Db25zaXN0ZW50U3RhdGUoKTsKKyAgICAgICAgICAgIGludGVy
bmFscy5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChlbmFibGUpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5zZXRDb29raWVTdG9yYWdlUGFydGl0aW9uaW5nRW5hYmxlZChlbmFibGUp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRTdG9yYWdlQWNjZXNzQVBJRW5hYmxlZChlbmFi
bGUpOworICAgICAgICB9CisKKyAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3Nh
Z2UiLCByZWNlaXZlTWVzc2FnZSwgZmFsc2UpOworCisgICAgICAgIGZ1bmN0aW9uIGZpbmlzaFRl
c3QoKSB7CisgICAgICAgICAgICBzZXRFbmFibGVGZWF0dXJlKGZhbHNlKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb3BlbklmcmFt
ZSh1cmwsIG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICAgICAgICAgIGVsZW1lbnQuc3JjID0g
dXJsOworICAgICAgICAgICAgaWYgKG9uTG9hZEhhbmRsZXIpIHsKKyAgICAgICAgICAgICAgICBl
bGVtZW50Lm9ubG9hZCA9IG9uTG9hZEhhbmRsZXI7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGVsZW1lbnQpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gcmVjZWl2ZU1lc3NhZ2UoZXZlbnQpIHsKKyAgICAgICAgICAgIGlmIChldmVu
dC5vcmlnaW4gPT09ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiKSB7CisgICAgICAgICAgICAgICAg
aWYgKGV2ZW50LmRhdGEuaW5kZXhPZigiUEFTUyIpICE9PSAtMSkKKyAgICAgICAgICAgICAgICAg
ICAgdGVzdFBhc3NlZChldmVudC5kYXRhLnJlcGxhY2UoIlBBU1MgIiwgIiIpKTsKKyAgICAgICAg
ICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoZXZlbnQuZGF0YSk7
CisgICAgICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJSZWNlaXZl
ZCBhIG1lc3NhZ2UgZnJvbSBhbiB1bmV4cGVjdGVkIG9yaWdpbjogIiArIGV2ZW50Lm9yaWdpbik7
CisKKyAgICAgICAgICAgIG5ld1dpbi5jbG9zZSgpOworICAgICAgICAgICAgb3BlbklmcmFtZSh0
aGlyZFBhcnR5QmFzZVVybCArIHN1YlBhdGhUb0dldENvb2tpZXMgKyAiJm1lc3NhZ2U9U2hvdWxk
IHJlY2VpdmUgZmlyc3QtcGFydHkgY29va2llLiIsIGZpbmlzaFRlc3QpOworICAgICAgICB9CisK
KyAgICAgICAgc2V0RW5hYmxlRmVhdHVyZSh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cygpOworCisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlPcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICAgICAgY29uc3QgcmVzb3VyY2VQYXRoID0gIi9zdG9y
YWdlQWNjZXNzL3Jlc291cmNlcyI7CisgICAgICAgIGNvbnN0IHRoaXJkUGFydHlCYXNlVXJsID0g
dGhpcmRQYXJ0eU9yaWdpbiArIHJlc291cmNlUGF0aDsKKyAgICAgICAgY29uc3QgZmlyc3RQYXJ0
eUNvb2tpZU5hbWUgPSAiZmlyc3RQYXJ0eUNvb2tpZSI7CisgICAgICAgIGNvbnN0IHN1YlBhdGhU
b0dldENvb2tpZXMgPSAiL2dldC1jb29raWVzLnBocD9uYW1lMT0iICsgZmlyc3RQYXJ0eUNvb2tp
ZU5hbWU7CisKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzUHJldmFsZW50UmVzb3Vy
Y2UodGhpcmRQYXJ0eU9yaWdpbiwgdHJ1ZSk7CisgICAgICAgIGlmICghdGVzdFJ1bm5lci5pc1N0
YXRpc3RpY3NQcmV2YWxlbnRSZXNvdXJjZSh0aGlyZFBhcnR5T3JpZ2luKSkKKyAgICAgICAgICAg
IHRlc3RGYWlsZWQoIkhvc3QgZGlkIG5vdCBnZXQgc2V0IGFzIHByZXZhbGVudCByZXNvdXJjZS4i
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzSGFzSGFkTm9uUmVjZW50VXNlcklu
dGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4sIHRydWUpOworICAgICAgICBpZiAoIXRlc3RSdW5u
ZXIuaXNTdGF0aXN0aWNzSGFzSGFkVXNlckludGVyYWN0aW9uKHRoaXJkUGFydHlPcmlnaW4pKQor
ICAgICAgICAgICAgdGVzdEZhaWxlZCgiSG9zdCBkaWQgbm90IGdldCBsb2dnZWQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIik7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBs
ZXRlKHRydWUpOworCisgICAgICAgIHZhciBuZXdXaW47CisgICAgICAgIHRlc3RSdW5uZXIuc3Rh
dGlzdGljc1VwZGF0ZUNvb2tpZVBhcnRpdGlvbmluZyhmdW5jdGlvbiAoKSB7CisgICAgICAgICAg
ICBuZXdXaW4gPSB3aW5kb3cub3Blbih0aGlyZFBhcnR5T3JpZ2luICsgIi9zdG9yYWdlQWNjZXNz
L3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sIiwgInRlc3RXaW5kb3ci
KTsKKyAgICAgICAgfSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4K
KzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVzb3VyY2VzL3NldC1jb29raWUtYW5kLXJlcG9ydC1i
YWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9yYWdlQWNj
ZXNzL3Jlc291cmNlcy9zZXQtY29va2llLWFuZC1yZXBvcnQtYmFjay5odG1sCShub25leGlzdGVu
dCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9yZXNvdXJjZXMvc2V0
LWNvb2tpZS1hbmQtcmVwb3J0LWJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGZ1bmN0aW9uIHNldENvb2tpZUFuZFBvc3RNZXNzYWdlKCkgeworICAgICAgICAgICAg
ZG9jdW1lbnQuY29va2llID0gImZpcnN0UGFydHlDb29raWU9dmFsdWUiOworICAgICAgICAgICAg
d2luZG93Lm9wZW5lci5wb3N0TWVzc2FnZSgiUEFTUyBDb29raWUgY3JlYXRlZC4iLCAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwIik7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5IG9ubG9hZD0ic2V0Q29va2llQW5kUG9zdE1lc3NhZ2UoKSI+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDIyOTU4MikKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0zMDA3LDYgKzMw
MDcsOCBAQCBodHRwL3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItCiBodHRwL3Rl
c3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvY2xlYXItaW4tbWVtb3J5LWFuZC1wZXJzaXN0ZW50
LXN0b3JlLW9uZS1ob3VyLmh0bWwgWyBQYXNzIF0KIGh0dHAvdGVzdHMvcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy9zdHJpcC1yZWZlcnJlci10by1vcmlnaW4tZm9yLXByZXZhbGVudC1zdWJyZXNvdXJj
ZS1yZWRpcmVjdHMuaHRtbCBbIFBhc3MgXQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzL3N0cmlwLXJlZmVycmVyLXRvLW9yaWdpbi1mb3ItcHJldmFsZW50LXN1YnJlc291cmNlLXJl
cXVlc3RzLmh0bWwgWyBQYXNzIF0KK2h0dHAvdGVzdHMvc3RvcmFnZUFjY2Vzcy9kZW55LXN0b3Jh
Z2UtYWNjZXNzLXVuZGVyLW9wZW5lci5odG1sIFsgUGFzcyBdCitodHRwL3Rlc3RzL3N0b3JhZ2VB
Y2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLmh0bWwgWyBQYXNzIF0KIAog
IyBTa2lwcGVkIGluIGdlbmVyYWwgZXhwZWN0YXRpb25zIHNpbmNlIHRoZXkgb25seSB3b3JrIG9u
IGlPUyBhbmQgTWFjLCBXSzIuCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3N0cmlwLXJlZmVycmVyLXRv
LW9yaWdpbi1mb3ItdGhpcmQtcGFydHktcmVkaXJlY3RzLWluLXByaXZhdGUtbW9kZS5odG1sIFsg
UGFzcyBdCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1Rlc3RFeHBlY3RhdGlv
bnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9UZXN0RXhwZWN0
YXRpb25zCShyZXZpc2lvbiAyMjk1ODIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sy
L1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTc2MCw2ICs3NjAsOCBAQCBodHRw
L3Rlc3RzL3Jlc291cmNlTG9hZFN0YXRpc3RpY3MvdXNlci1pCiBbIEhpZ2hTaWVycmErIF0gaHR0
cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2hhcy1zdG9yYWdlLWFjY2Vzcy1mcm9tLXByZXZhbGVudC1k
b21haW4td2l0aC1yZWNlbnQtdXNlci1pbnRlcmFjdGlvbi5odG1sIFsgUGFzcyBdCiBbIEhpZ2hT
aWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL3JlcXVlc3QtYW5kLWdyYW50LWFjY2Vz
cy10aGVuLWRldGFjaC1zaG91bGQtbm90LWhhdmUtYWNjZXNzLmh0bWwgWyBQYXNzIF0KIFsgSGln
aFNpZXJyYSsgXSBodHRwL3Rlc3RzL3N0b3JhZ2VBY2Nlc3MvcmVxdWVzdC1hbmQtZ3JhbnQtYWNj
ZXNzLXRoZW4tbmF2aWdhdGUtc2hvdWxkLW5vdC1oYXZlLWFjY2Vzcy5odG1sIFsgUGFzcyBdCitb
IEhpZ2hTaWVycmErIF0gaHR0cC90ZXN0cy9zdG9yYWdlQWNjZXNzL2Rlbnktc3RvcmFnZS1hY2Nl
c3MtdW5kZXItb3BlbmVyLmh0bWwgWyBQYXNzIF0KK1sgSGlnaFNpZXJyYSsgXSBodHRwL3Rlc3Rz
L3N0b3JhZ2VBY2Nlc3MvZ3JhbnQtc3RvcmFnZS1hY2Nlc3MtdW5kZXItb3BlbmVyLmh0bWwgWyBQ
YXNzIF0KIAogIyBBcyBvZiBodHRwczovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjI3NzYy
IHRoZSB0aW1lc3RhbXBSZXNvbHV0aW9uIGlzIGp1c3QgNSBzZWNvbmRzIHdoaWNoIG1ha2VzIHRo
aXMgdGVzdCBmbGFreQogaHR0cC90ZXN0cy9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzL3VzZXItaW50
ZXJhY3Rpb24tb25seS1yZXBvcnRlZC1vbmNlLXdpdGhpbi1zaG9ydC1wZXJpb2Qtb2YtdGltZS5o
dG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>