<?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>76267</bug_id>
          
          <creation_ts>2012-01-13 05:05:54 -0800</creation_ts>
          <short_desc>REGRESSION(r104905): This patch broke tests in the GTK 64bit Debug bot (Requested by msanchez on #webkit).</short_desc>
          <delta_ts>2012-01-13 05:42:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>76069</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>mario</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>535594</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 05:05:54 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/104905 broke the build:
This patch broke tests in the GTK 64bit Debug bot (Requested by msanchez on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535595</commentid>
    <comment_count>1</comment_count>
      <attachid>122413</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 05:06:24 -0800</bug_when>
    <thetext>Created attachment 122413
ROLLOUT of r104905

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535598</commentid>
    <comment_count>2</comment_count>
      <attachid>122413</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-13 05:19:25 -0800</bug_when>
    <thetext>Comment on attachment 122413
ROLLOUT of r104905

Rejecting attachment 122413 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
ILED at 75.
Hunk #5 FAILED at 85.
4 out of 5 hunks FAILED -- saving rejects to file Source/WebCore/html/HTMLDetailsElement.cpp.rej
patching file Source/WebKit/gtk/tests/testatk.c
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/fast/dom/shadow/shadow-contents-select-expected.html
patching file LayoutTests/fast/dom/shadow/shadow-contents-select.html

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/11152539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535610</commentid>
    <comment_count>3</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2012-01-13 05:42:58 -0800</bug_when>
    <thetext>I don&apos;t know what was wrong with the sheriffbot (looks like it created a bad rollout patch), so I manually created the rollout patch and pushed it.

Committed: http://trac.webkit.org/changeset/104922</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122413</attachid>
            <date>2012-01-13 05:06:24 -0800</date>
            <delta_ts>2012-01-13 05:19:25 -0800</delta_ts>
            <desc>ROLLOUT of r104905</desc>
            <filename>bug-76267-20120113130719.patch</filename>
            <type>text/plain</type>
            <size>48514</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0OTE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWU0NTg3YTFlM2U2MjYx
M2NlODFjMGM0ZWEwMjEyODI2MGIzNGI1NC4uYWJjODM1ZDk4YjkyZjEzY2JkNjdkZDIwODJmODA4
OThkMWE3ZGQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDEyLTAxLTEzICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTA0OTA1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMDQ5MDUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTc2MjY3CisKKyAgICAgICAgVGhpcyBwYXRjaCBicm9rZSB0ZXN0cyBpbiB0aGUg
R1RLIDY0Yml0IERlYnVnIGJvdCAoUmVxdWVzdGVkCisgICAgICAgIGJ5IG1zYW5jaGV6IG9uICN3
ZWJraXQpLgorCisgICAgICAgICogZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246Om5vdGlmeUFjY2Vzc2liaWxpdHlGb3JT
ZWxlY3Rpb25DaGFuZ2UpOgorCisyMDEyLTAxLTEzICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFr
QGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Q29udGVudEVsZW1lbnQgc2hvdWxkIGJlIGFi
bGUgdG8gdXNlIHF1ZXJ5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzUzMDIKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIHNlbGVjdG9yIHRvIHF1ZXJ5IGVsZW1lbnRz
IGluIFNoYWRvd0NvbnRlbnRFbGVtZW50LgorICAgICAgICBUaGlzIGNhbiBiZSB1c2VkIGluc3Rl
YWQgb2YgU2hhZG93Q29udGVudEVsZW1lbnQ6OnNob3VsZEluY2x1ZGUgaW4gbW9yZSBzb3BoaXN0
aWNhdGVkIHdheXMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29u
dGVudHMtc2VsZWN0LWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctY29udGVudHMtc2VsZWN0Lmh0bWwKKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06CisgICAgICAgICogVGFyZ2V0LnByaToK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2o6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIGRvbS9ET01BbGxJbk9uZS5jcHA6CisgICAgICAgICogZG9tL1NlbGVjdG9yUXVl
cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRh
TGlzdCk6CisgICAgICAgICAgRXh0cmFjdGVkIGZyb20gU2VsZWN0b3JRdWVyeXRvIHNoYXJlIGNv
ZGVzIHdpdGggU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuCisgICAgICAgIChXZWJDb3JlOjpT
ZWxlY3RvckRhdGFMaXN0Ojppbml0aWFsaXplKToKKyAgICAgICAgKFdlYkNvcmU6OlNlbGVjdG9y
RGF0YUxpc3Q6Om1hdGNoZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6
cXVlcnlBbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JEYXRhTGlzdDo6cXVlcnlGaXJz
dCk6CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpjYW5Vc2VJZExvb2t1cCk6
CisgICAgICAgIChXZWJDb3JlOjpTZWxlY3RvckRhdGFMaXN0OjpleGVjdXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNlbGVjdG9yUXVlcnk6OlNlbGVjdG9yUXVlcnkpOgorICAgICAgICAoV2ViQ29y
ZTo6U2VsZWN0b3JRdWVyeTo6cXVlcnlBbGwpOgorICAgICAgICAoV2ViQ29yZTo6U2VsZWN0b3JR
dWVyeTo6cXVlcnlGaXJzdCk6CisgICAgICAgICogZG9tL1NlbGVjdG9yUXVlcnkuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNlbGVjdG9yRGF0YUxpc3Q6OnNpemUpOgorICAgICAgICAqIGRvbS9TaGFk
b3dDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dDb250ZW50RWxl
bWVudDo6c2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0NvbnRlbnRFbGVtZW50Ojpz
ZXRTZWxlY3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oOgorICAgICAg
ICAqIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA6IEFkZGVkLgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnk6OlNoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5Ojpt
YXRjaGVzKToKKyAgICAgICAgICBSZXR1cm5zIHRydWUgaWYgTm9kZSBpcyBtYXRjaGVkIGJ5IHRo
ZSBxdWVyeS4KKyAgICAgICAgKiBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaDogQ29w
aWVkIGZyb20gU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmguCisgICAg
ICAgICogZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpzZWxlY3QpOgorICAgICAgICAqIGRvbS9TaGFkb3dJ
bmNsdXNpb25TZWxlY3Rvci5oOgorICAgICAgICAqIGh0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmlu
OgorICAgICAgICAqIGh0bWwvSFRNTERldGFpbHNFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnN1bW1hcnlRdWVyeVNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkRldGFpbHNDb250
ZW50RWxlbWVudDo6RGV0YWlsc0NvbnRlbnRFbGVtZW50KTogUmUtaW1wbGVtZW50ZWQgdXNpbmcg
cXVlcnkuCisgICAgICAgIChXZWJDb3JlOjpEZXRhaWxzU3VtbWFyeUVsZW1lbnQ6OkRldGFpbHNT
dW1tYXJ5RWxlbWVudCk6IGRpdHRvLgorCiAyMDEyLTAxLTEzICBJbHlhIFRpa2hvbm92c2t5ICA8
bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBEZXRhaWxlZCBo
ZWFwIHNuYXBzaG90LiBfY2FsY3VsYXRlRmxhZ3MgaXMgdG9vIHNsb3cgb24gYSBsYXJnZSBoZWFw
IHNuYXBzaG90LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDE2ZjE0MmY2NGU0YmY3MjQxMGJiZmRjOGRl
MGJiZjFlMzZjYTFlMjAuLjZmNTIyZWYwNjRlYTgwNTE1ZjgzYzgyMjc3MTU4ZGY3M2YyNDYyMjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wMS0xMyAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjEwNDkwNS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTA0OTA1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD03NjI2NworCisgICAgICAgIFRoaXMgcGF0Y2ggYnJva2UgdGVzdHMgaW4gdGhlIEdUSyA2
NGJpdCBEZWJ1ZyBib3QgKFJlcXVlc3RlZAorICAgICAgICBieSBtc2FuY2hleiBvbiAjd2Via2l0
KS4KKworICAgICAgICAqIHRlc3RzL3Rlc3RhdGsuYzoKKyAgICAgICAgKHRlc3RXZWJraXRBdGtD
YXJldE9mZnNldHMpOgorICAgICAgICAodGVzdFdlYmtpdEF0a1RleHRTZWxlY3Rpb25zKToKKwog
MjAxMi0wMS0xMyAgTWFyaW8gU2FuY2hleiBQcmFkYSAgPG1zYW5jaGV6QGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dUS10gQVRLIHRleHQtY2FyZXQtbW92ZWQgYW5kIHRleHQtc2VsZWN0aW9uLWNo
YW5nZWQgZXZlbnRzIG5vdCBiZWluZyBlbWl0dGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDU5
ZmNlZTI0NjgwNDc5OTUxNTY1NWIwN2VhNTFjMzdlZDE2NDUyZDkuLjYwYjU3OGNmMDIwYTU0NTBl
ZGI4ZDNlNWE3NDgxNmRkYTQwZDFlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC01OTQsNiAr
NTk0LDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGRvbS9TZWN1cml0eUNvbnRleHQuY3Bw
CiAgICAgZG9tL1NlbGVjdG9yUXVlcnkuY3BwCiAgICAgZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmNwcAorICAgIGRvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAKICAgICBkb20vU2hh
ZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCiAgICAgZG9tL1NoYWRvd1Jvb3QuY3BwCiAgICAgZG9t
L1NwYWNlU3BsaXRTdHJpbmcuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1
NWJkNjM0NjBiOWRhZjkzOWYwMDcxYzIzY2NmZjkxYjFmNGE3ZGQyLi5iMzMwZmYyMmViMjQ0YjRm
ZTlhOGE2NTZkMDVkMDE5OWRmYzc2NWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVt
YWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0K
QEAgLTE2NDUsNiArMTY0NSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL1dlYkNv
cmUvZG9tL1NlbGVjdG9yUXVlcnkuaCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRl
bnRFbGVtZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50
LmggXAorCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAg
XAorCVNvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIFwKIAlT
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBcCiAJU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd1Jvb3QuY3BwIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5w
cmkgYi9Tb3VyY2UvV2ViQ29yZS9UYXJnZXQucHJpCmluZGV4IGRmYWZkNDA2NTIxZTFlOGYyOWJl
NThhOTVjNjY5ODljMzMxNTY0N2YuLjM2Njk1NDUxNmRmMzUxNjZmNTM1ZGI4MzU0ZjgzMDUzOGQy
YWJlYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1RhcmdldC5wcmkKKysrIGIvU291cmNl
L1dlYkNvcmUvVGFyZ2V0LnByaQpAQCAtNTYwLDYgKzU2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IGRvbS9TZWN1cml0eUNvbnRleHQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JRdWVyeS5jcHAgXAog
ICAgIGRvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAgXAorICAgIGRvbS9TaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeS5jcHAgXAogICAgIGRvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAg
XAogICAgIGRvbS9TaGFkb3dSb290LmNwcCBcCiAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3Bw
IFwKQEAgLTE2NjAsNiArMTY2MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIGRvbS9TY3JpcHRFeGVj
dXRpb25Db250ZXh0LmggXAogICAgIGRvbS9TZWxlY3RvclF1ZXJ5LmggXAogICAgIGRvbS9TaGFk
b3dDb250ZW50RWxlbWVudC5oIFwKKyAgICBkb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
aCBcCiAgICAgZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmggXAogICAgIGRvbS9TaGFkb3dS
b290LmggXAogICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmggXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IGZmMjczYjNmYzUwMzZjYzczOGNmNjc3ODQ4NDViNDM3YTY2MWQyN2UuLjBlODhhMzVkOGQ0NzYy
OGQ2NDc0MDU4OGYwNTE4ZjE3ZmRjMzc0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTEwNDcsNiAr
MTA0Nyw3IEBACiAgICAgICAgICAgICAnZG9tL1NjcmlwdFJ1bm5lci5oJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Um9vdC5oJywKICAgICAgICAgICAgICdkb20vU2hhZG93Q29udGVudEVsZW1l
bnQuaCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgnLAog
ICAgICAgICAgICAgJ2RvbS9TcGFjZVNwbGl0U3RyaW5nLmgnLAogICAgICAgICAgICAgJ2RvbS9T
dHlsZWRFbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9UZXh0LmgnLApAQCAtNTQ1OSw2ICs1
NDYwLDggQEAKICAgICAgICAgICAgICdkb20vU2VsZWN0b3JRdWVyeS5oJywKICAgICAgICAgICAg
ICdkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwJywKICAgICAgICAgICAgICdkb20vU2hhZG93
Q29udGVudEVsZW1lbnQuaCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3Rv
clF1ZXJ5LmNwcCcsCisgICAgICAgICAgICAnZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmgnLAogICAgICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAnLAogICAg
ICAgICAgICAgJ2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oJywKICAgICAgICAgICAgICdk
b20vU2hhZG93Um9vdC5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvagppbmRleCBhZTc4NzA5MjVhYWFhNWE1OTUyYTdlZDJjZGRkYjM5ZWFmMDI2MWYx
Li5hMmU5ZmQyOWViNDRhMjdiZjQ5NGQzZjczYjY2Zjg5OGMyMzZmMWE4IDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNTExMDYsNiArNTExMDYs
MTQgQEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
ZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJ
CQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1
ZXJ5LmgiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAiCiAJCQkJPgogCQkJCTxGaWxlQ29uZmln
dXJhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDM5ZjZjYzM2NWU3MmYwZWMzYzRhMzhjOTcyY2VmZGJkYmZkZTI0MzkuLjI0
Nzk2MjMxZjA4ODdiOTVjMzQ1OWNlZDRhYmFlMGY0ZThiMmJlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1NjIsNiArMTU2
Miw4IEBACiAJCTUzQzgyOThFMTNEOEQ5MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTNDODI5OEMx
M0Q4RDkyNzAwREUyREVCIC8qIFJlbmRlckZsZXhpYmxlQm94LmggKi87IH07CiAJCTU1MEEwQkM5
MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1MEEwQkM3MDg1RjYwMzkwMDczNTNENiAvKiBR
dWFsaWZpZWROYW1lLmNwcCAqLzsgfTsKIAkJNTUwQTBCQ0EwODVGNjAzOTAwNzM1M0Q2IC8qIFF1
YWxpZmllZE5hbWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTcwREJBODExNEI1ODA0
OTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3MERCN0E4MTRCNTY5NkEwMERBRUZB
MCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHAgKi87IH07CisJCTU3MERCQTgyMTRC
NTgwNEIwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTcwREI3QTkxNEI1Njk2QTAwREFF
RkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggKi87IH07CiAJCTU5MDVBREJGMTMw
MkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU5MDVBREJEMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxU
cmVlVmlld2VyLmNwcCAqLzsgfTsKIAkJNTkwNUFEQzAxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRy
ZWVWaWV3ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDU5MDVBREJFMTMwMkYzQ0UwMEYxMTZERiAvKiBYTUxUcmVlVmlld2VyLmggKi87IH07CiAJCTU5
MEUxQjQ5MTFFNEVGNEIwMDY5Rjc4NCAvKiBEZXZpY2VPcmllbnRhdGlvbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTkwRTFCNDgxMUU0RUY0QjAwNjlG
Nzg0IC8qIERldmljZU9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTgzNzUsNiArODM3Nyw4IEBACiAJCTUzQzgyOThDMTNEOEQ5
MjcwMERFMkRFQiAvKiBSZW5kZXJGbGV4aWJsZUJveC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJGbGV4aWJsZUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1NTBBMEJDNzA4NUY2MDM5MDA3MzUzRDYgLyogUXVhbGlmaWVkTmFtZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBRdWFsaWZp
ZWROYW1lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCTU1MEEwQkM4MDg1RjYwMzkwMDczNTNENiAvKiBRdWFsaWZpZWROYW1lLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdp
ZHRoID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFF1YWxp
ZmllZE5hbWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CisJCTU3MERCN0E4MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2Vs
ZWN0b3JRdWVyeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFk
b3dDb250ZW50U2VsZWN0b3JRdWVyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTU3MERCN0E5MTRCNTY5NkEwMERBRUZBMCAvKiBTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFkb3dDb250ZW50U2VsZWN0b3JR
dWVyeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1OTA1QURCRDEzMDJGM0NFMDBG
MTE2REYgLyogWE1MVHJlZVZpZXdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBYTUxUcmVlVmlld2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTkwNUFEQkUxMzAyRjNDRTAwRjExNkRGIC8qIFhNTFRyZWVWaWV3ZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWE1MVHJlZVZpZXdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1OTBFMUI0ODExRTRFRjRCMDA2OUY3ODQgLyogRGV2aWNlT3JpZW50YXRpb24u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV2aWNlT3JpZW50YXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNTEwLDYgKzIwNTE0LDggQEAKIAkJCQlF
NDUzMjJBQTE0MENFMjY3MDA1QTBGOTIgLyogU2VsZWN0b3JRdWVyeS5oICovLAogCQkJCUE3NjZD
RjhCMTM4MTBFMEMwMDExQTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgKi8sCiAJCQkJ
QTc0QzJEM0IxMzgxMUUwRDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmggKi8sCisJ
CQkJNTcwREI3QTgxNEI1Njk2QTAwREFFRkEwIC8qIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5
LmNwcCAqLywKKwkJCQk1NzBEQjdBOTE0QjU2OTZBMDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNl
bGVjdG9yUXVlcnkuaCAqLywKIAkJCQlBNzFDMzBCNjEzODEyNjVFMDBEQkMzNTEgLyogU2hhZG93
SW5jbHVzaW9uU2VsZWN0b3IuY3BwICovLAogCQkJCUE3MUMzMEI3MTM4MTI2NUUwMERCQzM1MSAv
KiBTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oICovLAogCQkJCUE2RDE2OTYxMTM0NkI0OUIwMDBF
Qjc3MCAvKiBTaGFkb3dSb290LmNwcCAqLywKQEAgLTIzMzY2LDYgKzIzMzcyLDcgQEAKIAkJCQk0
OTg3NzBFOTEyNDJDNTM1MDAyMjI2QkEgLyogU2hhZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
RjNERDQ1MDEyRjVFQTFCMDAwRDkxOTAgLyogU2hhZG93Qmx1ci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTc0QzJEM0MxMzgxMUUwRDAwRjgzNTcyIC8qIFNoYWRvd0NvbnRlbnRFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKKwkJCQk1NzBEQkE4MjE0QjU4MDRCMDBEQUVGQTAgLyogU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNUVCOEM0MEU4MjAzMUIwMEIy
NTk2NSAvKiBTaGFkb3dEYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzFDMzBCOTEzODEyNjVF
MDBEQkMzNTEgLyogU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE2RDE2OTY0MTM0NkI0QzEwMDBFQjc3MCAvKiBTaGFkb3dSb290LmggaW4gSGVhZGVycyAqLywK
QEAgLTI2NDAwLDYgKzI2NDA3LDcgQEAKIAkJCQk0OTg3NzBFODEyNDJDNTM1MDAyMjI2QkEgLyog
U2hhZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGM0RENDRGMTJGNUVBMUIwMDBEOTE5MCAv
KiBTaGFkb3dCbHVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NjZDRjhDMTM4MTBFMEMwMDEx
QTBCMyAvKiBTaGFkb3dDb250ZW50RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1NzBE
QkE4MTE0QjU4MDQ5MDBEQUVGQTAgLyogU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM1RUI4QzMwRTgyMDMxQjAwQjI1OTY1IC8qIFNoYWRvd0RhdGEu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTcxQzMwQjgxMzgxMjY1RTAwREJDMzUxIC8qIFNoYWRv
d0luY2x1c2lvblNlbGVjdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE2RDE2OTYyMTM0NkI0
OUIwMDBFQjc3MCAvKiBTaGFkb3dSb290LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
T01BbGxJbk9uZS5jcHAKaW5kZXggNTUwOTQ2NTNmNWYyMzk0NmZkNDQzZTQ4OWYxMzczMzM4MTRm
YjY2Mi4uNTViNjA1MjhhYWEyOTNjZDY2NWM0YzkyMjdiYTg4NDc4ODVmNmEzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRE9NQWxsSW5PbmUuY3BwCkBAIC0xMTMsNiArMTEzLDcgQEAKICNpbmNsdWRlICJTZWN1
cml0eUNvbnRleHQuY3BwIgogI2luY2x1ZGUgIlNlbGVjdG9yUXVlcnkuY3BwIgogI2luY2x1ZGUg
IlNoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCIKKyNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0
b3JRdWVyeS5jcHAiCiAjaW5jbHVkZSAiU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwIgogI2lu
Y2x1ZGUgIlNoYWRvd1Jvb3QuY3BwIgogI2luY2x1ZGUgIlNwYWNlU3BsaXRTdHJpbmcuY3BwIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuY3BwCmluZGV4IDA4MjY2ZWYzMTM2YTkxYTI4Y2Y2
MjIzZDRhNTVhZmQxMjg0MmZhZDIuLmE4ODlmOWYyYmNhNTBiNGEzN2IyYzAzZDY1YWRkZTA2ZDY5
MzQyNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxlY3RvclF1ZXJ5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5jcHAKQEAgLTMzLDI3ICszMyw0
NyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNlbGVjdG9yUXVlcnk6OlNlbGVjdG9yUXVl
cnkoTm9kZSogcm9vdE5vZGUsIGNvbnN0IENTU1NlbGVjdG9yTGlzdCYgc2VsZWN0b3JMaXN0KQot
ICAgIDogbV9yb290Tm9kZShyb290Tm9kZSkKLSAgICAsIG1fc2VsZWN0b3JDaGVja2VyKHJvb3RO
b2RlLT5kb2N1bWVudCgpLCAhcm9vdE5vZGUtPmRvY3VtZW50KCktPmluUXVpcmtzTW9kZSgpKQor
U2VsZWN0b3JEYXRhTGlzdDo6U2VsZWN0b3JEYXRhTGlzdCgpCiB7Ci0gICAgbV9zZWxlY3RvckNo
ZWNrZXIuc2V0Q29sbGVjdGluZ1J1bGVzT25seSh0cnVlKTsKK30KKworU2VsZWN0b3JEYXRhTGlz
dDo6U2VsZWN0b3JEYXRhTGlzdChjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkK
K3sKKyAgICBpbml0aWFsaXplKHNlbGVjdG9yTGlzdCk7Cit9CisKK3ZvaWQgU2VsZWN0b3JEYXRh
TGlzdDo6aW5pdGlhbGl6ZShjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVjdG9yTGlzdCkKK3sK
KyAgICBBU1NFUlQobV9zZWxlY3RvcnMuaXNFbXB0eSgpKTsKIAogICAgIGZvciAoQ1NTU2VsZWN0
b3IqIHNlbGVjdG9yID0gc2VsZWN0b3JMaXN0LmZpcnN0KCk7IHNlbGVjdG9yOyBzZWxlY3RvciA9
IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzZWxlY3RvcikpCiAgICAgICAgIG1fc2VsZWN0b3JzLmFw
cGVuZChTZWxlY3RvckRhdGEoc2VsZWN0b3IsIFNlbGVjdG9yQ2hlY2tlcjo6aXNGYXN0Q2hlY2th
YmxlU2VsZWN0b3Ioc2VsZWN0b3IpKSk7CiB9Ci0gICAgCi1QYXNzUmVmUHRyPE5vZGVMaXN0PiBT
ZWxlY3RvclF1ZXJ5OjpxdWVyeUFsbCgpIGNvbnN0CisKK2Jvb2wgU2VsZWN0b3JEYXRhTGlzdDo6
bWF0Y2hlcyhjb25zdCBTZWxlY3RvckNoZWNrZXImIHNlbGVjdG9yQ2hlY2tlciwgRWxlbWVudCog
dGFyZ2V0RWxlbWVudCkgY29uc3QKK3sKKyAgICBBU1NFUlQodGFyZ2V0RWxlbWVudCk7CisKKyAg
ICB1bnNpZ25lZCBzZWxlY3RvckNvdW50ID0gbV9zZWxlY3RvcnMuc2l6ZSgpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBzZWxlY3RvckNvdW50OyArK2kpIHsKKyAgICAgICAgaWYgKHNl
bGVjdG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKG1fc2VsZWN0b3JzW2ldLnNlbGVjdG9yLCB0YXJn
ZXRFbGVtZW50LCBtX3NlbGVjdG9yc1tpXS5pc0Zhc3RDaGVja2FibGUpKQorICAgICAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCitQYXNzUmVmUHRy
PE5vZGVMaXN0PiBTZWxlY3RvckRhdGFMaXN0OjpxdWVyeUFsbChjb25zdCBTZWxlY3RvckNoZWNr
ZXImIHNlbGVjdG9yQ2hlY2tlciwgTm9kZSogcm9vdE5vZGUpIGNvbnN0CiB7CiAgICAgVmVjdG9y
PFJlZlB0cjxOb2RlPiA+IHJlc3VsdDsKLSAgICBleGVjdXRlPGZhbHNlPihyZXN1bHQpOworICAg
IGV4ZWN1dGU8ZmFsc2U+KHNlbGVjdG9yQ2hlY2tlciwgcm9vdE5vZGUsIHJlc3VsdCk7CiAgICAg
cmV0dXJuIFN0YXRpY05vZGVMaXN0OjphZG9wdChyZXN1bHQpOwogfQogCi1QYXNzUmVmUHRyPEVs
ZW1lbnQ+IFNlbGVjdG9yUXVlcnk6OnF1ZXJ5Rmlyc3QoKSBjb25zdCAKLXsgCitQYXNzUmVmUHRy
PEVsZW1lbnQ+IFNlbGVjdG9yRGF0YUxpc3Q6OnF1ZXJ5Rmlyc3QoY29uc3QgU2VsZWN0b3JDaGVj
a2VyJiBzZWxlY3RvckNoZWNrZXIsIE5vZGUqIHJvb3ROb2RlKSBjb25zdAorewogICAgIFZlY3Rv
cjxSZWZQdHI8Tm9kZT4gPiByZXN1bHQ7Ci0gICAgZXhlY3V0ZTx0cnVlPihyZXN1bHQpOworICAg
IGV4ZWN1dGU8dHJ1ZT4oc2VsZWN0b3JDaGVja2VyLCByb290Tm9kZSwgcmVzdWx0KTsKICAgICBp
ZiAocmVzdWx0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgQVNTRVJUKHJlc3Vs
dC5zaXplKCkgPT0gMSk7CkBAIC02MSw3ICs4MSw3IEBAIFBhc3NSZWZQdHI8RWxlbWVudD4gU2Vs
ZWN0b3JRdWVyeTo6cXVlcnlGaXJzdCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihyZXN1bHQuZmlyc3QoKS5nZXQoKSk7CiB9CiAKLWJvb2wgU2VsZWN0b3JRdWVyeTo6
Y2FuVXNlSWRMb29rdXAoKSBjb25zdAorYm9vbCBTZWxlY3RvckRhdGFMaXN0OjpjYW5Vc2VJZExv
b2t1cChOb2RlKiByb290Tm9kZSkgY29uc3QKIHsKICAgICAvLyBXZSBuZWVkIHRvIHJldHVybiB0
aGUgbWF0Y2hlcyBpbiBkb2N1bWVudCBvcmRlci4gVG8gdXNlIGlkIGxvb2t1cCB3aGlsZSB0aGVy
ZSBpcyBwb3NzaWJsaXR5IG9mIG11bHRpcGxlIG1hdGNoZXMKICAgICAvLyB3ZSB3b3VsZCBuZWVk
IHRvIHNvcnQgdGhlIHJlc3VsdHMuIEZvciBub3csIGp1c3QgdHJhdmVyc2UgdGhlIGRvY3VtZW50
IGluIHRoYXQgY2FzZS4KQEAgLTY5LDM3ICs4OSwzNyBAQCBib29sIFNlbGVjdG9yUXVlcnk6OmNh
blVzZUlkTG9va3VwKCkgY29uc3QKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX3Nl
bGVjdG9yc1swXS5zZWxlY3Rvci0+bV9tYXRjaCAhPSBDU1NTZWxlY3Rvcjo6SWQpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBpZiAoIW1fcm9vdE5vZGUtPmluRG9jdW1lbnQoKSkKKyAgICBp
ZiAoIXJvb3ROb2RlLT5pbkRvY3VtZW50KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBp
ZiAobV9yb290Tm9kZS0+ZG9jdW1lbnQoKS0+aW5RdWlya3NNb2RlKCkpCisgICAgaWYgKHJvb3RO
b2RlLT5kb2N1bWVudCgpLT5pblF1aXJrc01vZGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIGlmIChtX3Jvb3ROb2RlLT5kb2N1bWVudCgpLT5jb250YWluc011bHRpcGxlRWxlbWVudHNX
aXRoSWQobV9zZWxlY3RvcnNbMF0uc2VsZWN0b3ItPnZhbHVlKCkpKQorICAgIGlmIChyb290Tm9k
ZS0+ZG9jdW1lbnQoKS0+Y29udGFpbnNNdWx0aXBsZUVsZW1lbnRzV2l0aElkKG1fc2VsZWN0b3Jz
WzBdLnNlbGVjdG9yLT52YWx1ZSgpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVy
biB0cnVlOwogfQogCiB0ZW1wbGF0ZSA8Ym9vbCBmaXJzdE1hdGNoT25seT4KLXZvaWQgU2VsZWN0
b3JRdWVyeTo6ZXhlY3V0ZShWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG1hdGNoZWRFbGVtZW50cykg
Y29uc3QKK3ZvaWQgU2VsZWN0b3JEYXRhTGlzdDo6ZXhlY3V0ZShjb25zdCBTZWxlY3RvckNoZWNr
ZXImIHNlbGVjdG9yQ2hlY2tlciwgTm9kZSogcm9vdE5vZGUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4g
PiYgbWF0Y2hlZEVsZW1lbnRzKSBjb25zdAogewotICAgIGlmIChjYW5Vc2VJZExvb2t1cCgpKSB7
CisgICAgaWYgKGNhblVzZUlkTG9va3VwKHJvb3ROb2RlKSkgewogICAgICAgICBBU1NFUlQobV9z
ZWxlY3RvcnMuc2l6ZSgpID09IDEpOwogICAgICAgICBDU1NTZWxlY3Rvciogc2VsZWN0b3IgPSBt
X3NlbGVjdG9yc1swXS5zZWxlY3RvcjsKLSAgICAgICAgRWxlbWVudCogZWxlbWVudCA9IG1fcm9v
dE5vZGUtPmRvY3VtZW50KCktPmdldEVsZW1lbnRCeUlkKHNlbGVjdG9yLT52YWx1ZSgpKTsKLSAg
ICAgICAgaWYgKCFlbGVtZW50IHx8ICEobV9yb290Tm9kZS0+aXNEb2N1bWVudE5vZGUoKSB8fCBl
bGVtZW50LT5pc0Rlc2NlbmRhbnRPZihtX3Jvb3ROb2RlKSkpCisgICAgICAgIEVsZW1lbnQqIGVs
ZW1lbnQgPSByb290Tm9kZS0+ZG9jdW1lbnQoKS0+Z2V0RWxlbWVudEJ5SWQoc2VsZWN0b3ItPnZh
bHVlKCkpOworICAgICAgICBpZiAoIWVsZW1lbnQgfHwgIShyb290Tm9kZS0+aXNEb2N1bWVudE5v
ZGUoKSB8fCBlbGVtZW50LT5pc0Rlc2NlbmRhbnRPZihyb290Tm9kZSkpKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICBpZiAobV9zZWxlY3RvckNoZWNrZXIuY2hlY2tTZWxlY3RvcihzZWxl
Y3RvciwgZWxlbWVudCwgbV9zZWxlY3RvcnNbMF0uaXNGYXN0Q2hlY2thYmxlKSkKKyAgICAgICAg
aWYgKHNlbGVjdG9yQ2hlY2tlci5jaGVja1NlbGVjdG9yKG1fc2VsZWN0b3JzWzBdLnNlbGVjdG9y
LCBlbGVtZW50LCBtX3NlbGVjdG9yc1swXS5pc0Zhc3RDaGVja2FibGUpKQogICAgICAgICAgICAg
bWF0Y2hlZEVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
LSAgICAKKwogICAgIHVuc2lnbmVkIHNlbGVjdG9yQ291bnQgPSBtX3NlbGVjdG9ycy5zaXplKCk7
Ci0gICAgCi0gICAgTm9kZSogbiA9IG1fcm9vdE5vZGUtPmZpcnN0Q2hpbGQoKTsKKworICAgIE5v
ZGUqIG4gPSByb290Tm9kZS0+Zmlyc3RDaGlsZCgpOwogICAgIHdoaWxlIChuKSB7CiAgICAgICAg
IGlmIChuLT5pc0VsZW1lbnROb2RlKCkpIHsKICAgICAgICAgICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obik7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgc2VsZWN0b3JDb3VudDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG1fc2Vs
ZWN0b3JDaGVja2VyLmNoZWNrU2VsZWN0b3IobV9zZWxlY3RvcnNbaV0uc2VsZWN0b3IsIGVsZW1l
bnQsIG1fc2VsZWN0b3JzW2ldLmlzRmFzdENoZWNrYWJsZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAoc2VsZWN0b3JDaGVja2VyLmNoZWNrU2VsZWN0b3IobV9zZWxlY3RvcnNbaV0uc2VsZWN0b3Is
IGVsZW1lbnQsIG1fc2VsZWN0b3JzW2ldLmlzRmFzdENoZWNrYWJsZSkpIHsKICAgICAgICAgICAg
ICAgICAgICAgbWF0Y2hlZEVsZW1lbnRzLmFwcGVuZChlbGVtZW50KTsKICAgICAgICAgICAgICAg
ICAgICAgaWYgKGZpcnN0TWF0Y2hPbmx5KQogICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
OwpAQCAtMTEzLDExICsxMzMsMjkgQEAgdm9pZCBTZWxlY3RvclF1ZXJ5OjpleGVjdXRlKFZlY3Rv
cjxSZWZQdHI8Tm9kZT4gPiYgbWF0Y2hlZEVsZW1lbnRzKSBjb25zdAogICAgICAgICB9CiAgICAg
ICAgIHdoaWxlICghbi0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAgbiA9IG4tPnBhcmVu
dE5vZGUoKTsKLSAgICAgICAgICAgIGlmIChuID09IG1fcm9vdE5vZGUpCisgICAgICAgICAgICBp
ZiAobiA9PSByb290Tm9kZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICAgICAgbiA9IG4tPm5leHRTaWJsaW5nKCk7CiAgICAgfQogfQogCitTZWxlY3RvclF1ZXJ5OjpT
ZWxlY3RvclF1ZXJ5KE5vZGUqIHJvb3ROb2RlLCBjb25zdCBDU1NTZWxlY3Rvckxpc3QmIHNlbGVj
dG9yTGlzdCkKKyAgICA6IG1fcm9vdE5vZGUocm9vdE5vZGUpCisgICAgLCBtX3NlbGVjdG9yQ2hl
Y2tlcihyb290Tm9kZS0+ZG9jdW1lbnQoKSwgIXJvb3ROb2RlLT5kb2N1bWVudCgpLT5pblF1aXJr
c01vZGUoKSkKKyAgICAsIG1fc2VsZWN0b3JzKHNlbGVjdG9yTGlzdCkKK3sKKyAgICBtX3NlbGVj
dG9yQ2hlY2tlci5zZXRDb2xsZWN0aW5nUnVsZXNPbmx5KHRydWUpOworfQorCitQYXNzUmVmUHRy
PE5vZGVMaXN0PiBTZWxlY3RvclF1ZXJ5OjpxdWVyeUFsbCgpIGNvbnN0Cit7CisgICAgcmV0dXJu
IG1fc2VsZWN0b3JzLnF1ZXJ5QWxsKG1fc2VsZWN0b3JDaGVja2VyLCBtX3Jvb3ROb2RlKTsKK30K
KworUGFzc1JlZlB0cjxFbGVtZW50PiBTZWxlY3RvclF1ZXJ5OjpxdWVyeUZpcnN0KCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zZWxlY3RvcnMucXVlcnlGaXJzdChtX3NlbGVjdG9yQ2hlY2tlciwg
bV9yb290Tm9kZSk7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TZWxl
Y3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2VsZWN0b3JRdWVyeS5oCmluZGV4IGI5
Njk4MjM3ODQzYmJjNWVlZjlhYjU3MTRjMmQ2NGVmMWI4ODE5NzIuLjBmMTA2NzhhZGQ4MjFjODMw
Y2M2NWU3NzIzYzRhMWY5MzFhNjQ3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
ZWxlY3RvclF1ZXJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NlbGVjdG9yUXVlcnkuaApA
QCAtMzcsMjggKzM3LDQ0IEBAIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBDU1NTZWxlY3RvcjsKIGNs
YXNzIENTU1NlbGVjdG9yTGlzdDsKIAotY2xhc3MgU2VsZWN0b3JRdWVyeSB7Ci0gICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoU2VsZWN0b3JRdWVyeSk7CitjbGFzcyBTZWxlY3RvckRhdGFMaXN0IHsK
IHB1YmxpYzoKLSAgICBTZWxlY3RvclF1ZXJ5KE5vZGUqIHJvb3ROb2RlLCBjb25zdCBDU1NTZWxl
Y3Rvckxpc3QmKTsKLSAgICAKLSAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBxdWVyeUFsbCgpIGNv
bnN0OwotICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcXVlcnlGaXJzdCgpIGNvbnN0OworICAgIFNl
bGVjdG9yRGF0YUxpc3QoKTsKKyAgICBleHBsaWNpdCBTZWxlY3RvckRhdGFMaXN0KGNvbnN0IENT
U1NlbGVjdG9yTGlzdCYpOwogCi1wcml2YXRlOgotICAgIGJvb2wgY2FuVXNlSWRMb29rdXAoKSBj
b25zdDsKKyAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgQ1NTU2VsZWN0b3JMaXN0Jik7CiAKLSAg
ICB0ZW1wbGF0ZSA8Ym9vbCBmaXJzdE1hdGNoT25seT4KLSAgICB2b2lkIGV4ZWN1dGUoVmVjdG9y
PFJlZlB0cjxOb2RlPiA+JikgY29uc3Q7Ci0gICAgCisgICAgaW50IHNpemUoKSBjb25zdCB7IHJl
dHVybiBtX3NlbGVjdG9ycy5zaXplKCk7IH0KKworICAgIGJvb2wgbWF0Y2hlcyhjb25zdCBTZWxl
Y3RvckNoZWNrZXImLCBFbGVtZW50KikgY29uc3Q7CisgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4g
cXVlcnlBbGwoY29uc3QgU2VsZWN0b3JDaGVja2VyJiwgTm9kZSogcm9vdE5vZGUpIGNvbnN0Owor
ICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcXVlcnlGaXJzdChjb25zdCBTZWxlY3RvckNoZWNrZXIm
LCBOb2RlKiByb290Tm9kZSkgY29uc3Q7CisKK3ByaXZhdGU6CiAgICAgc3RydWN0IFNlbGVjdG9y
RGF0YSB7CiAgICAgICAgIFNlbGVjdG9yRGF0YShDU1NTZWxlY3Rvciogc2VsZWN0b3IsIGJvb2wg
aXNGYXN0Q2hlY2thYmxlKSA6IHNlbGVjdG9yKHNlbGVjdG9yKSwgaXNGYXN0Q2hlY2thYmxlKGlz
RmFzdENoZWNrYWJsZSkgeyB9CiAgICAgICAgIENTU1NlbGVjdG9yKiBzZWxlY3RvcjsKICAgICAg
ICAgYm9vbCBpc0Zhc3RDaGVja2FibGU7CiAgICAgfTsKLSAgICBOb2RlKiBtX3Jvb3ROb2RlOwor
CisgICAgYm9vbCBjYW5Vc2VJZExvb2t1cChOb2RlKiByb290Tm9kZSkgY29uc3Q7CisgICAgdGVt
cGxhdGUgPGJvb2wgZmlyc3RNYXRjaE9ubHk+CisgICAgdm9pZCBleGVjdXRlKGNvbnN0IFNlbGVj
dG9yQ2hlY2tlciYsIE5vZGUqIHJvb3ROb2RlLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKSBjb25z
dDsKKwogICAgIFZlY3RvcjxTZWxlY3RvckRhdGE+IG1fc2VsZWN0b3JzOworfTsKKworY2xhc3Mg
U2VsZWN0b3JRdWVyeSB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU2VsZWN0b3JRdWVyeSk7
CitwdWJsaWM6CisgICAgU2VsZWN0b3JRdWVyeShOb2RlKiByb290Tm9kZSwgY29uc3QgQ1NTU2Vs
ZWN0b3JMaXN0Jik7CisKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiBxdWVyeUFsbCgpIGNvbnN0
OworICAgIFBhc3NSZWZQdHI8RWxlbWVudD4gcXVlcnlGaXJzdCgpIGNvbnN0OworcHJpdmF0ZToK
KyAgICBOb2RlKiBtX3Jvb3ROb2RlOwogICAgIFNlbGVjdG9yQ2hlY2tlciBtX3NlbGVjdG9yQ2hl
Y2tlcjsKKyAgICBTZWxlY3RvckRhdGFMaXN0IG1fc2VsZWN0b3JzOwogfTsKIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKaW5kZXggZWNlZTZkMGM3ZWU3
NmZkZDcyNWUyZmRjZjg3MmRkMmJiOTNjOTdiYi4uNjNiY2YwMWUzMGYwOThiNjEyZWE5NzQ2ZDIw
MzNiYzc1NzU3OWUyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRl
bnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1l
bnQuY3BwCkBAIC0yOCwxMSArMjgsMTYgQEAKICNpbmNsdWRlICJTaGFkb3dDb250ZW50RWxlbWVu
dC5oIgogCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5o
IgorI2luY2x1ZGUgIlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgiCiAjaW5jbHVkZSAiU2hh
ZG93SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3VzaW5nIEhU
TUxOYW1lczo6c2VsZWN0QXR0cjsKKwogUGFzc1JlZlB0cjxTaGFkb3dDb250ZW50RWxlbWVudD4g
U2hhZG93Q29udGVudEVsZW1lbnQ6OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChRdWFsaWZpZWROYW1lLCB0YWdOYW1lLCAobnVsbEF0b20sICJ3
ZWJraXRTaGFkb3dDb250ZW50IiwgSFRNTE5hbWVzOjpkaXZUYWcubmFtZXNwYWNlVVJJKCkpKTsK
QEAgLTc2LDEwICs4MSwxNCBAQCB2b2lkIFNoYWRvd0NvbnRlbnRFbGVtZW50OjpkZXRhY2goKQog
ICAgIFN0eWxlZEVsZW1lbnQ6OmRldGFjaCgpOwogfQogCi1ib29sIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OjpzaG91bGRJbmNsdWRlKE5vZGUqKQorY29uc3QgQXRvbWljU3RyaW5nJiBTaGFkb3dDb250
ZW50RWxlbWVudDo6c2VsZWN0KCkgY29uc3QKIHsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gZ2V0QXR0cmlidXRlKHNlbGVjdEF0dHIpOwogfQogCit2b2lkIFNoYWRvd0NvbnRlbnRFbGVt
ZW50OjpzZXRTZWxlY3QoY29uc3QgQXRvbWljU3RyaW5nJiBzZWxlY3RWYWx1ZSkKK3sKKyAgICBz
ZXRBdHRyaWJ1dGUoc2VsZWN0QXR0ciwgc2VsZWN0VmFsdWUpOworfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oCmluZGV4IDdiMzY2NjIxYjdiOTYzYTQzMGZj
MTQzMDliZDQ2NWVhZWRmYTA0YTQuLmFjZTQ3YWRjMTEzZmZhMzgzY2QyOThlODE0Y2E0YjdkOWI4
ZGNmZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5oCkBAIC0z
Niw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgU2hhZG93Q29udGVu
dFNlbGVjdG9yUXVlcnk7CiBjbGFzcyBTaGFkb3dJbmNsdXNpb25MaXN0OwogCiAvLyBOT1RFOiBD
dXJyZW50IGltcGxlbWVudGF0aW9uIGRvZXNuJ3Qgc3VwcG9ydCBkeW5hbWljIGluc2VydGlvbi9k
ZWxldGlvbiBvZiBTaGFkb3dDb250ZW50RWxlbWVudC4KQEAgLTQ1LDEwICs0NiwxOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhZG93Q29udGVudEVsZW1lbnQ+IGNyZWF0ZShE
b2N1bWVudCopOwogCiAgICAgdmlydHVhbCB+U2hhZG93Q29udGVudEVsZW1lbnQoKTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW5jbHVkZShOb2RlKik7CiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aCgpOwogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKIAorICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgc2VsZWN0KCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ3VycmVudGx5IHRoaXMgY29uc3Ry
dWN0b3IgYWNjZXB0cyB3aWRlciBxdWVyeSB0aGFuIHNoYWRvdyBkb20gc3BlYy4KKyAgICAvLyBG
b3IgZXhhbXBsZSwgYSBzZWxlY3RvciBxdWVyeSBzaG91bGQgbm90IGluY2x1ZGUgY29udGV4dHVh
bCBzZWxlY3RvcnMuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NTk0NgorICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2UgZG9uJ3Qgc3VwcG9ydCBz
ZXR0aW5nIHNlbGVjdCB2YWx1ZSBkeW5hbWljYWxseS4KKyAgICAvLyBTZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjYxCisgICAgdm9pZCBzZXRTZWxlY3QoY29u
c3QgQXRvbWljU3RyaW5nJik7CisKICAgICBjb25zdCBTaGFkb3dJbmNsdXNpb25MaXN0KiBpbmNs
dXNpb25zKCkgY29uc3QgeyByZXR1cm4gbV9pbmNsdXNpb25zLmdldCgpOyB9CiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50U2VsZWN0b3JR
dWVyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnku
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjFhMDYxZTc4NjdiMjViZTVmZWFmMWNiZjRmNzQ0OGQyMzliNzQyY2MK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnkuY3BwCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwor
ICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3
cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBU
SEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaCIKKworI2luY2x1ZGUgIkNTU1BhcnNl
ci5oIgorI2luY2x1ZGUgIkNTU1NlbGVjdG9yTGlzdC5oIgorI2luY2x1ZGUgIlNoYWRvd0NvbnRl
bnRFbGVtZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworU2hhZG93Q29udGVudFNlbGVj
dG9yUXVlcnk6OlNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5KFNoYWRvd0NvbnRlbnRFbGVtZW50
KiBlbGVtZW50KQorICAgIDogbV9jb250ZW50RWxlbWVudChlbGVtZW50KQorICAgICwgbV9zZWxl
Y3RvckNoZWNrZXIoZWxlbWVudC0+ZG9jdW1lbnQoKSwgIWVsZW1lbnQtPmRvY3VtZW50KCktPmlu
UXVpcmtzTW9kZSgpKQoreworICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldENvbGxlY3RpbmdSdWxl
c09ubHkodHJ1ZSk7CisKKyAgICBpZiAoZWxlbWVudC0+c2VsZWN0KCkuaXNOdWxsKCkgfHwgZWxl
bWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBDU1NQYXJz
ZXIgcGFyc2VyKHRydWUpOworICAgIHBhcnNlci5wYXJzZVNlbGVjdG9yKGVsZW1lbnQtPnNlbGVj
dCgpLCBlbGVtZW50LT5kb2N1bWVudCgpLCBtX3NlbGVjdG9yTGlzdCk7CisKKyAgICBtX3NlbGVj
dG9ycy5pbml0aWFsaXplKG1fc2VsZWN0b3JMaXN0KTsKK30KKworYm9vbCBTaGFkb3dDb250ZW50
U2VsZWN0b3JRdWVyeTo6bWF0Y2hlcyhOb2RlKiBub2RlKSBjb25zdAoreworICAgIEFTU0VSVChu
b2RlKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEFTU0VS
VChub2RlLT5wYXJlbnROb2RlKCkgPT0gbV9jb250ZW50RWxlbWVudC0+c2hhZG93VHJlZVJvb3RO
b2RlKCktPnNoYWRvd0hvc3QoKSk7CisKKyAgICBpZiAobV9jb250ZW50RWxlbWVudC0+c2VsZWN0
KCkuaXNOdWxsKCkgfHwgbV9jb250ZW50RWxlbWVudC0+c2VsZWN0KCkuaXNFbXB0eSgpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbm9kZS0+aXNFbGVtZW50Tm9kZSgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gbV9zZWxlY3RvcnMubWF0Y2hlcyhtX3Nl
bGVjdG9yQ2hlY2tlciwgdG9FbGVtZW50KG5vZGUpKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNTY4NzNi
MzQzMGMzYTJjMjQ3YTE4MGFlNGRhM2RiMTA0ZjA3MzBhCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5LmgKQEAgLTAsMCArMSw2
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoK
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2ds
ZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0
d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09O
VFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAor
ICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnlfaAorI2RlZmluZSBTaGFkb3dD
b250ZW50U2VsZWN0b3JRdWVyeV9oCisKKyNpbmNsdWRlICJDU1NTZWxlY3Rvckxpc3QuaCIKKyNp
bmNsdWRlICJTZWxlY3RvckNoZWNrZXIuaCIKKyNpbmNsdWRlICJTZWxlY3RvclF1ZXJ5LmgiCisj
aW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgU2hh
ZG93Q29udGVudEVsZW1lbnQ7CisKK2NsYXNzIFNoYWRvd0NvbnRlbnRTZWxlY3RvclF1ZXJ5IHsK
KyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeSk7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkoU2hhZG93Q29u
dGVudEVsZW1lbnQqKTsKKworICAgIGJvb2wgbWF0Y2hlcyhOb2RlKikgY29uc3Q7CisKK3ByaXZh
dGU6CisgICAgU2hhZG93Q29udGVudEVsZW1lbnQqIG1fY29udGVudEVsZW1lbnQ7CisgICAgU2Vs
ZWN0b3JEYXRhTGlzdCBtX3NlbGVjdG9yczsKKyAgICBDU1NTZWxlY3Rvckxpc3QgbV9zZWxlY3Rv
ckxpc3Q7CisgICAgU2VsZWN0b3JDaGVja2VyIG1fc2VsZWN0b3JDaGVja2VyOworfTsKKworfQor
CisKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVz
aW9uU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVj
dG9yLmNwcAppbmRleCA5ODQxZjU1NjQ4ODdjODk2MzQ1Mzc0OWYyMzcxNjZjYTJlNDVlMTA1Li41
N2U5ZDQyYmU1MWI1ZTQ1MmM0ZDQwNTRlMjBiYTRjN2I4NTU0OGExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vU2hhZG93SW5jbHVzaW9uU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
ICNpbmNsdWRlICJTaGFkb3dJbmNsdXNpb25TZWxlY3Rvci5oIgogCiAjaW5jbHVkZSAiU2hhZG93
Q29udGVudEVsZW1lbnQuaCIKKyNpbmNsdWRlICJTaGFkb3dDb250ZW50U2VsZWN0b3JRdWVyeS5o
IgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKIAogCkBAIC0xMTEsMTEgKzExMiwxMiBAQCB2b2lk
IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yOjpzZWxlY3QoU2hhZG93Q29udGVudEVsZW1lbnQqIGNv
bnRlbnRFbGVtZW50LCBTaGFkbwogewogICAgIEFTU0VSVChpbmNsdXNpb25zLT5pc0VtcHR5KCkp
OwogCisgICAgU2hhZG93Q29udGVudFNlbGVjdG9yUXVlcnkgcXVlcnkoY29udGVudEVsZW1lbnQp
OwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9jYW5kaWRhdGVzLnNpemUoKTsgKytpKSB7
CiAgICAgICAgIE5vZGUqIGNoaWxkID0gbV9jYW5kaWRhdGVzW2ldLmdldCgpOwogICAgICAgICBp
ZiAoIWNoaWxkKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmICghY29udGVudEVs
ZW1lbnQtPnNob3VsZEluY2x1ZGUoY2hpbGQpKQorICAgICAgICBpZiAoIXF1ZXJ5Lm1hdGNoZXMo
Y2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgUmVmUHRyPFNoYWRvd0lu
Y2x1c2lvbj4gaW5jbHVzaW9uID0gU2hhZG93SW5jbHVzaW9uOjpjcmVhdGUoY29udGVudEVsZW1l
bnQsIGNoaWxkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dJbmNsdXNp
b25TZWxlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9y
LmgKaW5kZXggZjFhZGFlZTNmNTQzYTgxYzNmZWZiZmM0NmUwMWIxZmQ3ZjNiMGU4Zi4uZDFhODcx
NzQ0MWIxOWMyZDZhZmEwZThmMzQwNzU4NDEwMjE4YjRlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL1NoYWRvd0luY2x1c2lvblNlbGVjdG9yLmgKQEAgLTEzNyw3ICsxMzcsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBkaWRTZWxlY3QoKTsKICAgICBib29sIGhhc0NhbmRpZGF0ZXMoKSBjb25zdCB7
IHJldHVybiAhbV9jYW5kaWRhdGVzLmlzRW1wdHkoKTsgfQogCi0KIHByaXZhdGU6CiAgICAgdm9p
ZCByZW1vdmVGcm9tU2V0KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKICAgICB2b2lkIGFkZFRvU2V0
KFNoYWRvd0luY2x1c2lvbkxpc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvZ3RrL0ZyYW1lU2VsZWN0aW9uR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvZ3Rr
L0ZyYW1lU2VsZWN0aW9uR3RrLmNwcAppbmRleCAzODViMWU3Yjk0NmFlM2FiZDRjYmQ5NmE4MGE1
YWVkMzdkOGEwNGY3Li5hNjM3ODcwMjNmNWE3OWViN2FlMmE4NjgzZDZmMDNlMTJmYzQ0MjU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2d0ay9GcmFtZVNlbGVjdGlvbkd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9ndGsvRnJhbWVTZWxlY3Rpb25HdGsuY3Bw
CkBAIC04NCwxMCArODQsOCBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpub3RpZnlBY2Nlc3NpYmls
aXR5Rm9yU2VsZWN0aW9uQ2hhbmdlKCkKICAgICBpZiAoIW1fc2VsZWN0aW9uLnN0YXJ0KCkuaXNO
b3ROdWxsKCkgfHwgIW1fc2VsZWN0aW9uLmVuZCgpLmlzTm90TnVsbCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBSZW5kZXJPYmplY3QqIGZvY3VzZWROb2RlID0gbV9zZWxlY3Rpb24uZW5kKCku
ZGVwcmVjYXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsKLSAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBh
Y2Nlc3NpYmlsaXR5T2JqZWN0ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+YXhPYmplY3RDYWNoZSgp
LT5nZXRPckNyZWF0ZShmb2N1c2VkTm9kZSk7Ci0KLSAgICAvLyBOZWVkIHRvIGNoZWNrIHRoaXMg
YXMgZ2V0T3JDcmVhdGUgY291bGQgcmV0dXJuIDAsCisgICAgLy8gTG9vayBmb3IgdGhlIGFjY2Vz
c2liaWxpdHkgb2JqZWN0IGZvciB0aGUgRnJhbWUuCisgICAgQWNjZXNzaWJpbGl0eU9iamVjdCog
YWNjZXNzaWJpbGl0eU9iamVjdCA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmF4T2JqZWN0Q2FjaGUo
KS0+cm9vdE9iamVjdEZvckZyYW1lKG1fZnJhbWUpOwogICAgIGlmICghYWNjZXNzaWJpbGl0eU9i
amVjdCkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBdHRyaWJ1dGVOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0
ZU5hbWVzLmluCmluZGV4IGE2ZGRhOTRiOWM3YWMzNWZmMDhhNGNmNjNjMjkyYWY3YjRiNzQ5NDgu
LjYwZDk2ZDUzZDgyYmU4MWFhMmJiMDUxYzMxOGRiZTViNjg5YjIxMjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEF0dHJpYnV0ZU5hbWVzLmluCkBAIC0yNzksNiArMjc5LDcgQEAgc2NvcGVk
CiBzY3JvbGxhbW91bnQKIHNjcm9sbGRlbGF5CiBzY3JvbGxpbmcKK3NlbGVjdAogc2VsZWN0ZWQK
IHNoYXBlCiBzaXplCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxz
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEZXRhaWxzRWxlbWVudC5jcHAK
aW5kZXggZmFkOWFmODA0NDE0NTcwYzFlNzZjYTI4YzVlYjViMTYyN2M3MDIyMC4uYWFhMDVlMTQ1
NzRkNDA3OWZjZTA4ZTE1NjZjZTBiYmRkNjRmNzM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRGV0YWlsc0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERldGFpbHNFbGVtZW50LmNwcApAQCAtMzYsNiArMzYsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitzdGF0aWMgY29uc3QgQXRvbWlj
U3RyaW5nJiBzdW1tYXJ5UXVlcnlTZWxlY3RvcigpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChBdG9taWNTdHJpbmcsIHNlbGVjdG9yLCAoInN1bW1hcnk6Zmlyc3Qtb2YtdHlwZSIpKTsKKyAg
ICByZXR1cm4gc2VsZWN0b3I7Cit9OworCiBjbGFzcyBEZXRhaWxzQ29udGVudEVsZW1lbnQgOiBw
dWJsaWMgU2hhZG93Q29udGVudEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVm
UHRyPERldGFpbHNDb250ZW50RWxlbWVudD4gY3JlYXRlKERvY3VtZW50Kik7CkBAIC00NSw4ICs1
MSw2IEBAIHByaXZhdGU6CiAgICAgICAgIDogU2hhZG93Q29udGVudEVsZW1lbnQoSFRNTE5hbWVz
OjpkaXZUYWcsIGRvY3VtZW50KQogICAgIHsKICAgICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkSW5jbHVkZShOb2RlKik7CiB9OwogCiBQYXNzUmVmUHRyPERldGFpbHNDb250ZW50RWxlbWVu
dD4gRGV0YWlsc0NvbnRlbnRFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAt
NTQsMTMgKzU4LDYgQEAgUGFzc1JlZlB0cjxEZXRhaWxzQ29udGVudEVsZW1lbnQ+IERldGFpbHND
b250ZW50RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50KiBkb2N1bWUKICAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IERldGFpbHNDb250ZW50RWxlbWVudChkb2N1bWVudCkpOwogfQogCi1ib29sIERldGFp
bHNDb250ZW50RWxlbWVudDo6c2hvdWxkSW5jbHVkZShOb2RlKiBub2RlKQotewotICAgIEhUTUxE
ZXRhaWxzRWxlbWVudCogZGV0YWlscyA9IHN0YXRpY19jYXN0PEhUTUxEZXRhaWxzRWxlbWVudCo+
KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKLSAgICByZXR1cm4gZGV0YWlscy0+bWFpblN1bW1hcnko
KSAhPSBub2RlOwotfQotCi0KIGNsYXNzIERldGFpbHNTdW1tYXJ5RWxlbWVudCA6IHB1YmxpYyBT
aGFkb3dDb250ZW50RWxlbWVudCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8RGV0
YWlsc1N1bW1hcnlFbGVtZW50PiBjcmVhdGUoRG9jdW1lbnQqKTsKQEAgLTY5LDkgKzY2LDggQEAg
cHJpdmF0ZToKICAgICBEZXRhaWxzU3VtbWFyeUVsZW1lbnQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgICAgICA6IFNoYWRvd0NvbnRlbnRFbGVtZW50KEhUTUxOYW1lczo6ZGl2VGFnLCBkb2N1bWVu
dCkKICAgICB7CisgICAgICAgIHNldFNlbGVjdChzdW1tYXJ5UXVlcnlTZWxlY3RvcigpKTsKICAg
ICB9Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5jbHVkZShOb2RlKik7CiB9OwogCiBQYXNz
UmVmUHRyPERldGFpbHNTdW1tYXJ5RWxlbWVudD4gRGV0YWlsc1N1bW1hcnlFbGVtZW50OjpjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KQpAQCAtNzksMTMgKzc1LDYgQEAgUGFzc1JlZlB0cjxEZXRh
aWxzU3VtbWFyeUVsZW1lbnQ+IERldGFpbHNTdW1tYXJ5RWxlbWVudDo6Y3JlYXRlKERvY3VtZW50
KiBkb2N1bWUKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IERldGFpbHNTdW1tYXJ5RWxlbWVudChk
b2N1bWVudCkpOwogfQogCi1ib29sIERldGFpbHNTdW1tYXJ5RWxlbWVudDo6c2hvdWxkSW5jbHVk
ZShOb2RlKiBub2RlKQotewotICAgIEhUTUxEZXRhaWxzRWxlbWVudCogZGV0YWlscyA9IHN0YXRp
Y19jYXN0PEhUTUxEZXRhaWxzRWxlbWVudCo+KHNoYWRvd0FuY2VzdG9yTm9kZSgpKTsKLSAgICBy
ZXR1cm4gZGV0YWlscy0+bWFpblN1bW1hcnkoKSA9PSBub2RlOwotfQotCi0KIFBhc3NSZWZQdHI8
SFRNTERldGFpbHNFbGVtZW50PiBIVE1MRGV0YWlsc0VsZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFs
aWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7CiAgICAgUmVmUHRyPEhU
TUxEZXRhaWxzRWxlbWVudD4gcmVzdWx0ID0gYWRvcHRSZWYobmV3IEhUTUxEZXRhaWxzRWxlbWVu
dCh0YWdOYW1lLCBkb2N1bWVudCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvdGVz
dHMvdGVzdGF0ay5jIGIvU291cmNlL1dlYktpdC9ndGsvdGVzdHMvdGVzdGF0ay5jCmluZGV4IGI0
OGI1NTc5OWUwODVkN2Q1YmQ5YmU1NmIzNzIxODYzZGQ3OGRkZGYuLmExMTU1MmZjMzE5OTNiZTI3
Yjc1MmY0MjA5NTEwMjZhMTExNmMxNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL3Rl
c3RzL3Rlc3RhdGsuYworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay90ZXN0cy90ZXN0YXRrLmMKQEAg
LTI1NCwxNyArMjU0LDYgQEAgc3RhdGljIHZvaWQgcnVuR2V0VGV4dFRlc3RzKEF0a1RleHQqIHRl
eHRPYmplY3QpCiAgICAgfQogfQogCi1zdGF0aWMgZ2NoYXIqIHRleHRDYXJldE1vdmVkUmVzdWx0
ID0gMDsKLQotc3RhdGljIHZvaWQgdGV4dENhcmV0TW92ZWRDYWxsYmFjayhBdGtUZXh0KiB0ZXh0
LCBnaW50IHBvcywgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBnX2Fzc2VydChBVEtfSVNfVEVYVCh0
ZXh0KSk7Ci0KLSAgICBnX2ZyZWUodGV4dENhcmV0TW92ZWRSZXN1bHQpOwotICAgIEF0a1JvbGUg
cm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUoQVRLX09CSkVDVCh0ZXh0KSk7Ci0gICAgdGV4dENh
cmV0TW92ZWRSZXN1bHQgPSBnX3N0cmR1cF9wcmludGYoInwlc3wlZHwiLCBhdGtfcm9sZV9nZXRf
bmFtZShyb2xlKSwgcG9zKTsKLX0KLQogc3RhdGljIHZvaWQgdGVzdFdlYmtpdEF0a0NhcmV0T2Zm
c2V0cygpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyh3
ZWJraXRfd2ViX3ZpZXdfbmV3KCkpOwpAQCAtMjc4LDggKzI2Nyw2IEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJraXRBdGtDYXJldE9mZnNldHMoKQogCiAgICAgQXRrT2JqZWN0KiBoZWFkZXIgPSBhdGtf
b2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMCk7CiAgICAgZ19hc3NlcnQoQVRL
X0lTX1RFWFQoaGVhZGVyKSk7Ci0gICAgZ19zaWduYWxfY29ubmVjdChoZWFkZXIsICJ0ZXh0LWNh
cmV0LW1vdmVkIiwgR19DQUxMQkFDSyh0ZXh0Q2FyZXRNb3ZlZENhbGxiYWNrKSwgMCk7Ci0KICAg
ICBnY2hhciogdGV4dCA9IGF0a190ZXh0X2dldF90ZXh0KEFUS19URVhUKGhlYWRlciksIDAsIC0x
KTsKICAgICBnX2Fzc2VydF9jbXBzdHIodGV4dCwgPT0sICJBIHRleHQgaGVhZGVyIik7CiAgICAg
Z19mcmVlICh0ZXh0KTsKQEAgLTI4OSwxMiArMjc2LDkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYmtp
dEF0a0NhcmV0T2Zmc2V0cygpCiAgICAgZ19hc3NlcnRfY21waW50KHJlc3VsdCwgPT0sIFRSVUUp
OwogICAgIGdpbnQgb2Zmc2V0ID0gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldChBVEtfVEVYVCho
ZWFkZXIpKTsKICAgICBnX2Fzc2VydF9jbXBpbnQob2Zmc2V0LCA9PSwgNSk7Ci0gICAgZ19hc3Nl
cnRfY21wc3RyKHRleHRDYXJldE1vdmVkUmVzdWx0LCA9PSwgInxoZWFkaW5nfDV8Iik7CiAKICAg
ICBBdGtPYmplY3QqIHBhcmFncmFwaCA9IGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQo
b2JqZWN0LCAxKTsKICAgICBnX2Fzc2VydChBVEtfSVNfVEVYVChwYXJhZ3JhcGgpKTsKLSAgICBn
X3NpZ25hbF9jb25uZWN0KHBhcmFncmFwaCwgInRleHQtY2FyZXQtbW92ZWQiLCBHX0NBTExCQUNL
KHRleHRDYXJldE1vdmVkQ2FsbGJhY2spLCAwKTsKLQogICAgIHRleHQgPSBhdGtfdGV4dF9nZXRf
dGV4dChBVEtfVEVYVChwYXJhZ3JhcGgpLCAwLCAtMSk7CiAgICAgZ19hc3NlcnRfY21wc3RyKHRl
eHQsID09LCAiQSBwYXJhZ3JhcGggd2l0aCBhIGxpbmsgaW4gdGhlIG1pZGRsZSIpOwogICAgIGdf
ZnJlZSAodGV4dCk7CkBAIC0zMDQsMzIgKzI4OCwxNiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0
QXRrQ2FyZXRPZmZzZXRzKCkKICAgICBnX2Fzc2VydF9jbXBpbnQocmVzdWx0LCA9PSwgVFJVRSk7
CiAgICAgb2Zmc2V0ID0gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldChBVEtfVEVYVChwYXJhZ3Jh
cGgpKTsKICAgICBnX2Fzc2VydF9jbXBpbnQob2Zmc2V0LCA9PSwgNSk7Ci0gICAgZ19hc3NlcnRf
Y21wc3RyKHRleHRDYXJldE1vdmVkUmVzdWx0LCA9PSwgInxwYXJhZ3JhcGh8NXwiKTsKIAogICAg
IHJlc3VsdCA9IGF0a190ZXh0X3NldF9jYXJldF9vZmZzZXQoQVRLX1RFWFQocGFyYWdyYXBoKSwg
MjApOwogICAgIGdfYXNzZXJ0X2NtcGludChyZXN1bHQsID09LCBUUlVFKTsKICAgICBvZmZzZXQg
PSBhdGtfdGV4dF9nZXRfY2FyZXRfb2Zmc2V0KEFUS19URVhUKHBhcmFncmFwaCkpOwogICAgIGdf
YXNzZXJ0X2NtcGludChvZmZzZXQsID09LCAyMCk7Ci0gICAgZ19hc3NlcnRfY21wc3RyKHRleHRD
YXJldE1vdmVkUmVzdWx0LCA9PSwgInxwYXJhZ3JhcGh8MjB8Iik7CiAKICAgICByZXN1bHQgPSBh
dGtfdGV4dF9zZXRfY2FyZXRfb2Zmc2V0KEFUS19URVhUKHBhcmFncmFwaCksIDMwKTsKICAgICBn
X2Fzc2VydF9jbXBpbnQocmVzdWx0LCA9PSwgVFJVRSk7CiAgICAgb2Zmc2V0ID0gYXRrX3RleHRf
Z2V0X2NhcmV0X29mZnNldChBVEtfVEVYVChwYXJhZ3JhcGgpKTsKICAgICBnX2Fzc2VydF9jbXBp
bnQob2Zmc2V0LCA9PSwgMzApOwotICAgIGdfYXNzZXJ0X2NtcHN0cih0ZXh0Q2FyZXRNb3ZlZFJl
c3VsdCwgPT0sICJ8cGFyYWdyYXBofDMwfCIpOwotCi0gICAgQXRrT2JqZWN0KiBsaW5rID0gYXRr
X29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChwYXJhZ3JhcGgsIDApOwotICAgIGdfYXNzZXJ0
KEFUS19JU19URVhUKGxpbmspKTsKLSAgICB0ZXh0ID0gYXRrX3RleHRfZ2V0X3RleHQoQVRLX1RF
WFQobGluayksIDAsIC0xKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodGV4dCwgPT0sICJ3aXRoIGEg
bGluayIpOwotICAgIGdfZnJlZSAodGV4dCk7Ci0KLSAgICByZXN1bHQgPSBhdGtfdGV4dF9zZXRf
Y2FyZXRfb2Zmc2V0KEFUS19URVhUKGxpbmspLCA1KTsKLSAgICBnX2Fzc2VydF9jbXBpbnQocmVz
dWx0LCA9PSwgVFJVRSk7Ci0gICAgb2Zmc2V0ID0gYXRrX3RleHRfZ2V0X2NhcmV0X29mZnNldChB
VEtfVEVYVChsaW5rKSk7Ci0gICAgZ19hc3NlcnRfY21waW50KG9mZnNldCwgPT0sIDUpOwotICAg
IC8qIFBvc2l0aW9ucyBpbnNpZGUgbGlua3MgYXJlIHJlcG9ydGVkIHJlbGF0aXZlIHRvIHRoZSBw
YXJhZ3JhcGguICovCi0gICAgZ19hc3NlcnRfY21wc3RyKHRleHRDYXJldE1vdmVkUmVzdWx0LCA9
PSwgInxwYXJhZ3JhcGh8MTd8Iik7CiAKICAgICBBdGtPYmplY3QqIGxpc3QgPSBhdGtfb2JqZWN0
X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMik7CiAgICAgZ19hc3NlcnQoQVRLX09CSkVD
VChsaXN0KSk7CkBAIC0zODcsMTEgKzM1NSw4IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtD
YXJldE9mZnNldHMoKQogICAgIG9mZnNldCA9IGF0a190ZXh0X2dldF9jYXJldF9vZmZzZXQoQVRL
X1RFWFQodGV4dEVudHJ5KSk7CiAgICAgZ19hc3NlcnRfY21waW50KG9mZnNldCwgPT0sIDUpOwog
Ci0gICAgZ19mcmVlKHRleHRDYXJldE1vdmVkUmVzdWx0KTsKLQogICAgIGdfb2JqZWN0X3VucmVm
KGhlYWRlcik7CiAgICAgZ19vYmplY3RfdW5yZWYocGFyYWdyYXBoKTsKLSAgICBnX29iamVjdF91
bnJlZihsaW5rKTsKICAgICBnX29iamVjdF91bnJlZihsaXN0KTsKICAgICBnX29iamVjdF91bnJl
ZihsaXN0SXRlbSk7CiAgICAgZ19vYmplY3RfdW5yZWYocGFuZWwpOwpAQCAtMTEyMiwyMCArMTA4
Nyw2IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJraXRBdGtUZXh0QXR0cmlidXRlcygpCiAgICAgYXRr
X2F0dHJpYnV0ZV9zZXRfZnJlZShzZXQzKTsKIH0KIAotc3RhdGljIGdjaGFyKiB0ZXh0U2VsZWN0
aW9uQ2hhbmdlZFJlc3VsdCA9IDA7Ci0KLXN0YXRpYyB2b2lkIHRleHRTZWxlY3Rpb25DaGFuZ2Vk
Q2FsbGJhY2soQXRrVGV4dCogdGV4dCwgZ3BvaW50ZXIgZGF0YSkKLXsKLSAgICBnX2Fzc2VydChB
VEtfSVNfVEVYVCh0ZXh0KSk7Ci0KLSAgICBnX2ZyZWUodGV4dFNlbGVjdGlvbkNoYW5nZWRSZXN1
bHQpOwotICAgIEF0a1JvbGUgcm9sZSA9IGF0a19vYmplY3RfZ2V0X3JvbGUoQVRLX09CSkVDVCh0
ZXh0KSk7Ci0gICAgaW50IHN0YXJ0T2Zmc2V0ID0gMDsKLSAgICBpbnQgZW5kT2Zmc2V0ID0gMDsK
LSAgICBhdGtfdGV4dF9nZXRfc2VsZWN0aW9uKEFUS19URVhUKHRleHQpLCAwLCAmc3RhcnRPZmZz
ZXQsICZlbmRPZmZzZXQpOwotICAgIHRleHRTZWxlY3Rpb25DaGFuZ2VkUmVzdWx0ID0gZ19zdHJk
dXBfcHJpbnRmKCJ8JXN8JWR8JWR8IiwgYXRrX3JvbGVfZ2V0X25hbWUocm9sZSksIHN0YXJ0T2Zm
c2V0LCBlbmRPZmZzZXQpOwotfQotCiBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrVGV4dFNlbGVj
dGlvbnMoKQogewogICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVco
d2Via2l0X3dlYl92aWV3X25ldygpKTsKQEAgLTExNDksMTEgKzExMDAsOSBAQCBzdGF0aWMgdm9p
ZCB0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMoKQogCiAgICAgQXRrVGV4dCogcGFyYWdyYXBo
MSA9IEFUS19URVhUKGF0a19vYmplY3RfcmVmX2FjY2Vzc2libGVfY2hpbGQob2JqZWN0LCAwKSk7
CiAgICAgZ19hc3NlcnQoQVRLX0lTX1RFWFQocGFyYWdyYXBoMSkpOwotICAgIGdfc2lnbmFsX2Nv
bm5lY3QocGFyYWdyYXBoMSwgInRleHQtc2VsZWN0aW9uLWNoYW5nZWQiLCBHX0NBTExCQUNLKHRl
eHRTZWxlY3Rpb25DaGFuZ2VkQ2FsbGJhY2spLCAwKTsKIAogICAgIEF0a1RleHQqIHBhcmFncmFw
aDIgPSBBVEtfVEVYVChhdGtfb2JqZWN0X3JlZl9hY2Nlc3NpYmxlX2NoaWxkKG9iamVjdCwgMSkp
OwogICAgIGdfYXNzZXJ0KEFUS19JU19URVhUKHBhcmFncmFwaDIpKTsKLSAgICBnX3NpZ25hbF9j
b25uZWN0KHBhcmFncmFwaDIsICJ0ZXh0LXNlbGVjdGlvbi1jaGFuZ2VkIiwgR19DQUxMQkFDSyh0
ZXh0U2VsZWN0aW9uQ2hhbmdlZENhbGxiYWNrKSwgMCk7CiAKICAgICBBdGtUZXh0KiBsaW5rID0g
QVRLX1RFWFQoYXRrX29iamVjdF9yZWZfYWNjZXNzaWJsZV9jaGlsZChBVEtfT0JKRUNUKHBhcmFn
cmFwaDIpLCAwKSk7CiAgICAgZ19hc3NlcnQoQVRLX0lTX1RFWFQobGluaykpOwpAQCAtMTE4OSwx
MyArMTEzOCwxMSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMoKQog
ICAgIHJlc3VsdCA9IGF0a190ZXh0X3NldF9zZWxlY3Rpb24ocGFyYWdyYXBoMSwgMCwgNSwgMjUp
OwogICAgIGdfYXNzZXJ0KHJlc3VsdCk7CiAgICAgZ19hc3NlcnRfY21waW50KGF0a190ZXh0X2dl
dF9uX3NlbGVjdGlvbnMocGFyYWdyYXBoMSksID09LCAxKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIo
dGV4dFNlbGVjdGlvbkNoYW5nZWRSZXN1bHQsID09LCAifHBhcmFncmFwaHw1fDI1fCIpOwogICAg
IHNlbGVjdGVkVGV4dCA9IGF0a190ZXh0X2dldF9zZWxlY3Rpb24ocGFyYWdyYXBoMSwgMCwgJnN0
YXJ0T2Zmc2V0LCAmZW5kT2Zmc2V0KTsKICAgICBnX2Fzc2VydF9jbXBpbnQoc3RhcnRPZmZzZXQs
ID09LCA1KTsKICAgICBnX2Fzc2VydF9jbXBpbnQoZW5kT2Zmc2V0LCA9PSwgMjUpOwogICAgIGdf
YXNzZXJ0X2NtcHN0cihzZWxlY3RlZFRleHQsID09LCAiYWdyYXBoIHdpdGggcGxhaW4gdGUiKTsK
ICAgICBnX2ZyZWUgKHNlbGVjdGVkVGV4dCk7Ci0KICAgICAvKiBUcnkgcmVtb3ZpbmcgdGhlIHNl
bGVjdGlvbiBmcm9tIG90aGVyIEF0a1RleHQgb2JqZWN0IChzaG91bGQgZmFpbCkuICovCiAgICAg
cmVzdWx0ID0gYXRrX3RleHRfcmVtb3ZlX3NlbGVjdGlvbihwYXJhZ3JhcGgyLCAwKTsKICAgICBn
X2Fzc2VydCghcmVzdWx0KTsKQEAgLTEyMzgsNyArMTE4NSw2IEBAIHN0YXRpYyB2b2lkIHRlc3RX
ZWJraXRBdGtUZXh0U2VsZWN0aW9ucygpCiAgICAgcmVzdWx0ID0gYXRrX3RleHRfc2V0X3NlbGVj
dGlvbihwYXJhZ3JhcGgyLCAwLCAyNywgMzcpOwogICAgIGdfYXNzZXJ0KHJlc3VsdCk7CiAgICAg
Z19hc3NlcnRfY21waW50KGF0a190ZXh0X2dldF9uX3NlbGVjdGlvbnMocGFyYWdyYXBoMiksID09
LCAxKTsKLSAgICBnX2Fzc2VydF9jbXBzdHIodGV4dFNlbGVjdGlvbkNoYW5nZWRSZXN1bHQsID09
LCAifHBhcmFncmFwaHwyN3wzN3wiKTsKICAgICBzZWxlY3RlZFRleHQgPSBhdGtfdGV4dF9nZXRf
c2VsZWN0aW9uKHBhcmFncmFwaDIsIDAsICZzdGFydE9mZnNldCwgJmVuZE9mZnNldCk7CiAgICAg
Z19hc3NlcnRfY21waW50KHN0YXJ0T2Zmc2V0LCA9PSwgMjcpOwogICAgIGdfYXNzZXJ0X2NtcGlu
dChlbmRPZmZzZXQsID09LCAzNyk7CkBAIC0xMjg4LDggKzEyMzQsNiBAQCBzdGF0aWMgdm9pZCB0
ZXN0V2Via2l0QXRrVGV4dFNlbGVjdGlvbnMoKQogICAgIGdfYXNzZXJ0X2NtcHN0cihzZWxlY3Rl
ZFRleHQsID09LCAiQSBsaXN0Iik7CiAgICAgZ19mcmVlIChzZWxlY3RlZFRleHQpOwogCi0gICAg
Z19mcmVlKHRleHRTZWxlY3Rpb25DaGFuZ2VkUmVzdWx0KTsKLQogICAgIGdfb2JqZWN0X3VucmVm
KHBhcmFncmFwaDEpOwogICAgIGdfb2JqZWN0X3VucmVmKHBhcmFncmFwaDIpOwogICAgIGdfb2Jq
ZWN0X3VucmVmKGxpc3QpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFiMWI4ZjIxNDU0Zjk3ODAwN2ZjNjlhZTU4NmY1Y2M2
Zjc5NjMyZDYuLjAyNjgzZjVjZDc4NTE0OTc5NGM2MDZmZGQzMDVmNWFlYzVhOWQ2YmIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNSBAQAorMjAxMi0wMS0xMyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bn
b29nbGUuY29tPgorCisgICAgICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50IHNob3VsZCBiZSBhYmxl
IHRvIHVzZSBxdWVyeS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc1MzAyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgSGFqaW1lIE1vcml0YS4KKworICAg
ICAgICBUZXN0cyBmb3IgU2hhZG93Q29udGVudEVsZW1lbnQgcXVlcnkuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC1leHBlY3RlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1s
OiBBZGRlZC4KKwogMjAxMi0wMS0xMyAgUmVuYXRhIEhvZG92YW4gIDxyZW5pQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVXBkYXRlIFNub3ctTGVvcGFyZCBTVkcgcGl4ZWwgdGVzdCBiYXNlbGluZSBh
ZnRlciByMTA0ODgxLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1jb250ZW50cy1zZWxlY3QtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0LWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDM3OTY1YmEyYzkyN2JjMjQ4Njk1ODQ1M2MxY2M2NzUyOTczZTVlMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtc2VsZWN0LWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw0MSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5n
IFJlbmRlckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9
Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorPCEtLSB0
ZXN0U2VsZWN0SXNOdWxsIC0tPgorPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVu
dDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RTZWxlY3RJc0lkIC0t
PgorPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3Js
ZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RTZWxlY3RJc0lkQnV0Tm90TWF0Y2hlZCAtLT4KKzxk
aXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVz
dFNlbGVjdElzSWRCdXROb3RDaGlsZCAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFu
PldvcmxkLjwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdFNlbGVjdElzTXVsdGlJZCAtLT4KKzxkaXY+
PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bh
bj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RTZWxlY3RJc1R5cGUgLS0+Cis8
ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxkLjwv
c3Bhbj48L2Rpdj4KKzwhLS0gdGVzdFNlbGVjdElzVHlwZVdpdGhBdHRyaWJ1dGUgLS0+Cis8ZGl2
PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bh
bj48L2Rpdj4KKzwhLS0gdGVzdFNlbGVjdElzVHlwZVdpdGhGaXJzdE9mVHlwZSAtLT4KKzxkaXY+
PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFu
PjwvZGl2PgorPCEtLSB0ZXN0U2VsZWN0SXNUeXBlV2l0aEZpcnN0T2ZUeXBlMiAtLT4KKzxkaXY+
PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFu
PjwvZGl2PgorPCEtLSB0ZXN0U2VsZWN0SXNUeXBlV2l0aExhc3RPZlR5cGUgLS0+Cis8ZGl2Pjxz
cGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48
L2Rpdj4KKzwhLS0gdGVzdFNlbGVjdElzRGV0YWlscyAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9z
cGFuPjxkZXRhaWxzPmNvbnRlbnQ8L2RldGFpbHM+PHNwYW4+V29ybGQuPC9zcGFuPjwvZGl2Pgor
PCEtLSB0ZXN0U2VsZWN0SXNEZXRhaWxzMiAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxk
ZXRhaWxzPjxzdW1tYXJ5PmNvbnRlbnQ8L3N1bW1hcnk+PC9kZXRhaWxzPjxzcGFuPldvcmxkLjwv
c3Bhbj48L2Rpdj4KKzwhLS0gdGVzdFNlbGVjdFdoZW5EeW5hbWljYWxseUNoaWxkcmVuQ2hhbmdl
ZCAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmNvbnRlbnQ8L3NwYW4+PHNwYW4+
V29ybGQuPC9zcGFuPjwvZGl2PgorPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLXNlbGVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1zZWxlY3QuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZDgxZDQ1NmNhZTQ1OGZlNThkOWViOTIxNTM1MDk5Y2VjMTQ1NGEyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250
ZW50cy1zZWxlY3QuaHRtbApAQCAtMCwwICsxLDE3NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRl
cmx5aW5nIFJlbmRlckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRp
dmU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGFwcGVuZFNoYWRvdyh0YXJnZXQs
IHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFy
Z2V0KTsKKworICAgIHZhciBjaGlsZDAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7
CisgICAgY2hpbGQwLmlubmVySFRNTCA9ICJIZWxsbywiOworICAgIHJvb3QuYXBwZW5kQ2hpbGQo
Y2hpbGQwKTsKKworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRl
bnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2VsZWN0Jywg
c2VsZWN0KTsKKyAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOworCisgICAgdmFyIGNoaWxk
MSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDEuaW5uZXJIVE1M
ID0gIldvcmxkLiI7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDEpOworfQorCitmdW5jdGlv
biB0ZXN0U2VsZWN0SXNOdWxsKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3Nw
YW4+IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIiKTsKKworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5j
dGlvbiB0ZXN0U2VsZWN0SXNJZCgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nZm9vJz5j
b250ZW50PC9zcGFuPjxzcGFuIGlkPSdhenVueWFuJz5wZXJvcGVybzwvc3Bhbj4iOworCisgICAg
YXBwZW5kU2hhZG93KHRhcmdldCwgIiNmb28iKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0
U2VsZWN0SXNJZEJ1dE5vdE1hdGNoZWQoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J2Zv
byc+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0nYXp1bnlhbic+cGVyb3Blcm88L3NwYW4+IjsKKwor
ICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjZm9vYmFyIik7CisKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rp
b24gdGVzdFNlbGVjdElzSWRCdXROb3RDaGlsZCgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3Bhbj48
c3BhbiBpZD0nZm9vJz5jb250ZW50PC9zcGFuPjxzcGFuIGlkPSdhenVueWFuJz5wZXJvcGVybzwv
c3Bhbj48L3NwYW4+IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjZm9vIik7CisKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKK30KKworZnVuY3Rpb24gdGVzdFNlbGVjdElzTXVsdGlJZCgpIHsKKyAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9
ICI8c3BhbiBpZD0nZm9vJz5jb250ZW50PC9zcGFuPjxzcGFuIGlkPSdhenVueWFuJz5wZXJvcGVy
bzwvc3Bhbj48c3BhbiBpZD0nZm9vJz5jb250ZW50PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAiI2ZvbyIpOworCisgICAgLy8gQWxsIG1hdGNoZWQgZWxlbWVudHMgd2lsbCBi
ZSBzZWxlY3RlZC4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBw
ZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24gdGVzdFNlbGVjdElzVHlwZSgpIHsKKyAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0
LmlubmVySFRNTCA9ICI8ZGl2PmF6dW55YW48L2Rpdj48c3Bhbj5jb250ZW50PC9zcGFuPjxkaXY+
cGVyb3Blcm88L2Rpdj4iOworCisgICAgYXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW4iKTsKKwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJn
ZXQpOworfQorCitmdW5jdGlvbiB0ZXN0U2VsZWN0SXNUeXBlV2l0aEF0dHJpYnV0ZSgpIHsKKyAg
ICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0
LmlubmVySFRNTCA9ICI8c3Bhbj5henVueWFuPC9zcGFuPjxzcGFuIHRpdGxlPSdjb250ZW50Jz5j
b250ZW50PC9zcGFuPjxzcGFuPnBlcm9wZXJvPC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3co
dGFyZ2V0LCAic3Bhblt0aXRsZT0nY29udGVudCddIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24g
dGVzdFNlbGVjdElzVHlwZVdpdGhGaXJzdE9mVHlwZSgpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8ZGl2
PmF6dW55YW48L2Rpdj48c3Bhbj5jb250ZW50PC9zcGFuPjxzcGFuPnBlcm9wZXJvPC9zcGFuPiI7
CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAic3BhbjpmaXJzdC1vZi10eXBlIik7CisKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0
KTsKK30KKworZnVuY3Rpb24gdGVzdFNlbGVjdElzVHlwZVdpdGhGaXJzdE9mVHlwZTIoKSB7Cisg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdl
dC5pbm5lckhUTUwgPSAiPGRpdj48c3Bhbj5henVueWFuPC9zcGFuPjwvZGl2PjxzcGFuPmNvbnRl
bnQ8L3NwYW4+PHNwYW4+cGVyb3Blcm88L3NwYW4+IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJn
ZXQsICJzcGFuOmZpcnN0LW9mLXR5cGUiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0U2Vs
ZWN0SXNUeXBlV2l0aExhc3RPZlR5cGUoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+YXp1bnlh
bjwvc3Bhbj48c3Bhbj5jb250ZW50PC9zcGFuPjxkaXY+cGVyb3Blcm88L2Rpdj4iOworCisgICAg
YXBwZW5kU2hhZG93KHRhcmdldCwgInNwYW46bGFzdC1vZi10eXBlIik7CisKKyAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKwor
ZnVuY3Rpb24gdGVzdFNlbGVjdElzRGV0YWlscygpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8ZGV0YWls
cz5jb250ZW50PC9kZXRhaWxzPiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiZGV0YWls
cyIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RTZWxlY3RJc0RldGFpbHMyKCkgeworICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQu
aW5uZXJIVE1MID0gIjxkZXRhaWxzPjxzdW1tYXJ5PmNvbnRlbnQ8L3N1bW1hcnk+PC9kZXRhaWxz
PiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiZGV0YWlscyIpOworCisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisK
K2Z1bmN0aW9uIHRlc3RTZWxlY3RXaGVuRHluYW1pY2FsbHlDaGlsZHJlbkNoYW5nZWQoKSB7Cisg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdl
dC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj48c3BhbiBpZD0ndG9iZXJlbW92ZWQn
PmFudW55YW4gcGVyb3Blcm88L3NwYW4+IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICJz
cGFuIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5k
Q2hpbGQodGFyZ2V0KTsKKworICAgIHZhciBlbGVtID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J3RvYmVyZW1vdmVkJyk7CisgICAgZWxlbS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGVsZW0pOwor
fQorCit2YXIgdGVzdEZ1bmNzID0gWworICAgIHRlc3RTZWxlY3RJc051bGwsCisgICAgdGVzdFNl
bGVjdElzSWQsCisgICAgdGVzdFNlbGVjdElzSWRCdXROb3RNYXRjaGVkLAorICAgIHRlc3RTZWxl
Y3RJc0lkQnV0Tm90Q2hpbGQsCisgICAgdGVzdFNlbGVjdElzTXVsdGlJZCwKKyAgICB0ZXN0U2Vs
ZWN0SXNUeXBlLAorICAgIHRlc3RTZWxlY3RJc1R5cGVXaXRoQXR0cmlidXRlLAorICAgIHRlc3RT
ZWxlY3RJc1R5cGVXaXRoRmlyc3RPZlR5cGUsCisgICAgdGVzdFNlbGVjdElzVHlwZVdpdGhGaXJz
dE9mVHlwZTIsCisgICAgdGVzdFNlbGVjdElzVHlwZVdpdGhMYXN0T2ZUeXBlLAorICAgIHRlc3RT
ZWxlY3RJc0RldGFpbHMsCisgICAgdGVzdFNlbGVjdElzRGV0YWlsczIsCisgICAgdGVzdFNlbGVj
dFdoZW5EeW5hbWljYWxseUNoaWxkcmVuQ2hhbmdlZCwKK10KKworZnVuY3Rpb24gZG9UZXN0KCkg
eworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdEZ1bmNzLmxlbmd0aDsgKytpKSB7CisgICAg
ICAgdGVzdEZ1bmNzW2ldKCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9ImRvVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="123185"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>