<?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>85773</bug_id>
          
          <creation_ts>2012-05-06 22:39:36 -0700</creation_ts>
          <short_desc>REGRESSION(r116235): broke a lot of tests on all chromium debug bots (Requested by caseq_ on #webkit).</short_desc>
          <delta_ts>2012-05-07 01:45:38 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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>85598</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>darin</cc>
    
    <cc>koivisto</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>617393</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 22:39:36 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/116235 broke the build:
broke a lot of tests on all chromium debug bots (Requested by caseq_ 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>617397</commentid>
    <comment_count>1</comment_count>
      <attachid>140480</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-06 22:40:36 -0700</bug_when>
    <thetext>Created attachment 140480
ROLLOUT of r116235

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>617441</commentid>
    <comment_count>2</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-07 01:02:29 -0700</bug_when>
    <thetext>This is about scoped style sheet feature that some chromium bots have enabled. Should be easy fix.

STDERR: ASSERTION FAILED: root-&gt;m_clients.size() == 1
STDERR: /Volumes/data/b/build/slave/webkit-mac-latest-dbg/build/src/third_party/WebKit/Source/WebCore/WebCore.gyp/../css/CSSStyleSheet.cpp(409) : WebCore::Node *WebCore::StyleSheetInternal::singleOwnerNode() const
STDERR: 1   0x20ccbca3 WebCore::StyleSheetInternal::singleOwnerNode() const
STDERR: 2   0x20db1a09 WebCore::StyleResolver::determineScope(WebCore::StyleSheetInternal const*)
STDERR: 3   0x20db0f50 WebCore::StyleResolver::appendAuthorStylesheets(unsigned int, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::StyleSheet&gt;, 0ul&gt; const&amp;)
STDERR: 4   0x1e7e5738 WebCore::Document::updateActiveStylesheets(WebCore::StyleResolverUpdateFlag)
STDERR: 5   0x1e7e1d3e WebCore::Document::styleResolverChanged(WebCore::StyleResolverUpdateFlag)
STDERR: 6   0x1e7ece46 WebCore::Document::removePendingSheet()
STDERR: 7   0x2027c423 WebCore::HTMLLinkElement::removePendingSheet()
STDERR: 8   0x2027e542 WebCore::HTMLLinkElement::sheetLoaded()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617445</commentid>
    <comment_count>3</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-07 01:13:32 -0700</bug_when>
    <thetext>Landed a quick fix in

http://trac.webkit.org/changeset/116281</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>617460</commentid>
    <comment_count>4</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2012-05-07 01:45:38 -0700</bug_when>
    <thetext>Uh, apparently the rollout had landed in

http://trac.webkit.org/changeset/116276

without any comment here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>140480</attachid>
            <date>2012-05-06 22:40:36 -0700</date>
            <delta_ts>2012-05-07 01:00:22 -0700</delta_ts>
            <desc>ROLLOUT of r116235</desc>
            <filename>bug-85773-20120507054426.patch</filename>
            <type>text/plain</type>
            <size>70029</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA0NjI3YmZhNWUxMzA1
NjgzOWFkODM1YTcxOGM1YTZhZjlkOWIwMS4uYjM2OWZiN2VjOTRmYTU2M2YyNTQ2ZjU2NzNhNTEx
NzFjNWNiYWM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDEyLTA1LTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTE2MjM1LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMTYyMzUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg1NzczCisKKyAgICAgICAgYnJva2UgYSBsb3Qgb2YgdGVzdHMgb24gYWxsIGNo
cm9taXVtIGRlYnVnIGJvdHMgKFJlcXVlc3RlZCBieQorICAgICAgICBjYXNlcV8gb24gI3dlYmtp
dCkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTUy5tbToKKyAgICAgICAgKiBjc3Mv
Q1NTRm9udEZhY2VSdWxlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VSdWxlLmg6Cisg
ICAgICAgIChDU1NGb250RmFjZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NJbXBvcnRSdWxlLmNw
cDoKKyAgICAgICAgKiBjc3MvQ1NTTWVkaWFSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U01lZGlhUnVsZTo6aW5zZXJ0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NNZWRpYVJ1bGU6
OmRlbGV0ZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NNZWRpYVJ1bGUuaDoKKyAgICAgICAgKENT
U01lZGlhUnVsZSk6CisgICAgICAgICogY3NzL0NTU1BhZ2VSdWxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhZ2VSdWxlOjpzZXRTZWxlY3RvclRleHQpOgorICAgICAgICAqIGNzcy9DU1NQ
YWdlUnVsZS5oOgorICAgICAgICAoQ1NTUGFnZVJ1bGUpOgorICAgICAgICAqIGNzcy9DU1NSdWxl
LmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTUnVsZS5oOgorICAgICAgICAoQ1NTUnVsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NSdWxlOjpwYXJzZXJDb250ZXh0KToKKyAgICAgICAgKiBjc3MvQ1NT
U3R5bGVSdWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlUnVsZTo6c2V0U2VsZWN0
b3JUZXh0KToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVSdWxlLmg6CisgICAgICAgICogY3NzL0NT
U1N0eWxlU2hlZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldEludGVybmFsOjpT
dHlsZVNoZWV0SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVTaGVldEludGVybmFs
Ojppc0NhY2hlYWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0SW50ZXJuYWw6OmNy
ZWF0ZUNoaWxkUnVsZUNTU09NV3JhcHBlcik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVNoZWV0
SW50ZXJuYWw6OndyYXBwZXJJbnNlcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hl
ZXRJbnRlcm5hbDo6d3JhcHBlckRlbGV0ZVJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVT
aGVldEludGVybmFsOjpzdHlsZVNoZWV0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQ6OnNldERpc2FibGVkKToKKyAgICAgICAgKFdl
YkNvcmU6OkNTU1N0eWxlU2hlZXQ6Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVT
aGVldDo6aW5zZXJ0UnVsZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVNoZWV0OjpkZWxl
dGVSdWxlKToKKyAgICAgICAgKiBjc3MvQ1NTU3R5bGVTaGVldC5oOgorICAgICAgICAoU3R5bGVT
aGVldEludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlU2hlZXRJbnRlcm5hbDo6aGFz
Q2hhcnNldFJ1bGUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVTaGVldDo6c3R5bGVTaGVl
dENoYW5nZWQpOgorICAgICAgICAoQ1NTU3R5bGVTaGVldCk6CisgICAgICAgICogY3NzL01lZGlh
TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6OnNldE1lZGlhVGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlOjpNZWRpYUxpc3Q6OmRlbGV0ZU1lZGl1bSk6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYUxpc3Q6OmFwcGVuZE1lZGl1bSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUxp
c3Q6Om5vdGlmeUNoYW5nZWQpOgorICAgICAgICAqIGNzcy9NZWRpYUxpc3QuaDoKKyAgICAgICAg
KE1lZGlhTGlzdCk6CisgICAgICAgICogY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246
OnNldENzc1RleHQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlTZXRDU1NTdHlsZURlY2xh
cmF0aW9uOjpzZXRQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0
eWxlRGVjbGFyYXRpb246OnJlbW92ZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OlByb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0UHJvcGVydHlJbnRlcm5hbCk6CisgICAgICAg
IChXZWJDb3JlOjpQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11dGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUnVsZUNTU1N0eWxlRGVj
bGFyYXRpb246OnNldE5lZWRzU3R5bGVSZWNhbGMpOgorICAgICAgICAoV2ViQ29yZTo6SW5saW5l
Q1NTU3R5bGVEZWNsYXJhdGlvbjo6c2V0TmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgICogY3Nz
L1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6UHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpzZXROZWVkc1N0eWxlUmVjYWxjKToKKyAgICAg
ICAgKFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbik6CisgICAgICAgIChTdHlsZVJ1bGVD
U1NTdHlsZURlY2xhcmF0aW9uKToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHA6
CisgICAgICAgICogY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6c2V0TmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjppbnNlcnRSdWxlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYktpdENTU0tleWZyYW1lc1J1bGU6OmRlbGV0ZVJ1bGUpOgorICAgICAgICAqIGNzcy9XZWJL
aXRDU1NLZXlmcmFtZXNSdWxlLmg6CisgICAgICAgIChXZWJLaXRDU1NLZXlmcmFtZXNSdWxlKToK
KyAgICAgICAgKiBjc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHA6CisgICAgICAgICogY3NzL1dl
YktpdENTU1JlZ2lvblJ1bGUuaDoKKyAgICAgICAgKFdlYktpdENTU1JlZ2lvblJ1bGUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JTdHlsZVNoZWV0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Okluc3BlY3RvclN0eWxlU2hlZXQ6OnJlcGFyc2VTdHlsZVNoZWV0KToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkQ1NTU3R5bGVTaGVldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpD
YWNoZWRDU1NTdHlsZVNoZWV0Ojp+Q2FjaGVkQ1NTU3R5bGVTaGVldCk6CisgICAgICAgIChXZWJD
b3JlOjpDYWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95RGVjb2RlZERhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6cmVzdG9yZVBhcnNlZFN0eWxlU2hlZXQpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkQ1NTU3R5bGVTaGVldDo6c2F2ZVBhcnNlZFN0eWxlU2hl
ZXQpOgorCiAyMDEyLTA1LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQ1NQIHZpb2xhdGlvbiByZXBvcnRzIHNob3VsZCBoYXZlIGFsbCB0aGUgZmllbGRzIHJl
cXVpcmVkIGJ5IHRoZSBzcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUNTUy5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCmlu
ZGV4IDdhZjU2NDU4YTgyY2Q4YWMxZmJmZjZmMzI0ZGQzZDlmNzJkM2QwMmIuLjY2MGMyYTAxN2Zh
ODBjZGMyYTEwNTNjMjIxYzVhMDdhNjY0YTVlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NQ1NTLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ1NTLm1tCkBAIC0yOCw3ICsyOCw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKIAogI2lt
cG9ydCAiQ1NTUnVsZS5oIgotI2ltcG9ydCAiQ1NTU3R5bGVTaGVldC5oIgogI2ltcG9ydCAiQ1NT
VmFsdWUuaCIKICNpbXBvcnQgIkRPTUNTU0NoYXJzZXRSdWxlLmgiCiAjaW1wb3J0ICJET01DU1NG
b250RmFjZVJ1bGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFj
ZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5jcHAKaW5kZXgg
OGJiOTRkYjYzOGZhZTUwOGMwNTZlY2QxYjdhNmRjNmY3OTY0YjE2MC4uN2I2MTFiYjU2YzRmOGEz
ODZjN2YwNTU5MGM0MWM5YjM2YWUwZjAzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0ZvbnRGYWNlUnVsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
UnVsZS5jcHAKQEAgLTU1LDEyICs1NSw0IEBAIFN0cmluZyBDU1NGb250RmFjZVJ1bGU6OmNzc1Rl
eHQoKSBjb25zdAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQgQ1NTRm9udEZhY2VSdWxl
OjpyZWF0dGFjaChTdHlsZVJ1bGVGb250RmFjZSogcnVsZSkKLXsKLSAgICBBU1NFUlQocnVsZSk7
Ci0gICAgbV9mb250RmFjZVJ1bGUgPSBydWxlOwotICAgIGlmIChtX3Byb3BlcnRpZXNDU1NPTVdy
YXBwZXIpCi0gICAgICAgIG1fcHJvcGVydGllc0NTU09NV3JhcHBlci0+cmVhdHRhY2gobV9mb250
RmFjZVJ1bGUtPnByb3BlcnRpZXMoKSk7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVJ1bGUuaAppbmRleCA2NDE0Yzg3MmNjN2U4MzhlMTc0OWRj
M2M5OGNjNjRhZTQ3YTBjZWRkLi4yMjJmYzMxMzMzYzlhMTg1N2VlNzVjZjg4NzdkY2FiZmQxMDJl
YmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VSdWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlUnVsZS5oCkBAIC00Myw4ICs0Myw2IEBA
IHB1YmxpYzoKIAogICAgIFN0cmluZyBjc3NUZXh0KCkgY29uc3Q7CiAKLSAgICB2b2lkIHJlYXR0
YWNoKFN0eWxlUnVsZUZvbnRGYWNlKik7Ci0KIHByaXZhdGU6CiAgICAgQ1NTRm9udEZhY2VSdWxl
KFN0eWxlUnVsZUZvbnRGYWNlKiwgQ1NTU3R5bGVTaGVldCogcGFyZW50KTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ltcG9ydFJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ltcG9ydFJ1bGUuY3BwCmluZGV4IGQxNTBmYjkzNWY4ZWM1MmUwZGNhOTRhOWM1ZTgz
OTY2MDkzNmY5YzYuLmY5ZDE0NjcxYjZhNWJkN2M5ZTU1NzFmNjQ0MTllOTQ4NWMxOWE2ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NJbXBvcnRSdWxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTSW1wb3J0UnVsZS5jcHAKQEAgLTIyLDcgKzIyLDYgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJDU1NJbXBvcnRSdWxlLmgiCiAKLSNpbmNsdWRlICJD
U1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiQ2FjaGVkQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNhY2hlZFJlc291cmNlTG9hZGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKaW5kZXggZTA5OTA0MjA5MmFiZjkyNDRmMDE5ODE2ODA2
MzE0MDhiYWZlOTUyOS4uYTZlZTM1MWY3OTFhZTkxZDMxZDliYTAzOWZkMzNkZTAxNDgyZTk5NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5jcHAKQEAgLTI1LDcgKzI1LDYgQEAKIAogI2lu
Y2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCi0jaW5jbHVkZSAi
Q1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJT
dHlsZVJ1bGUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CkBAIC04MSwx
MSArODAsMTMgQEAgdW5zaWduZWQgQ1NTTWVkaWFSdWxlOjppbnNlcnRSdWxlKGNvbnN0IFN0cmlu
ZyYgcnVsZVN0cmluZywgdW5zaWduZWQgaW5kZXgsIEV4Y2UKICAgICAgICAgZWMgPSBISUVSQVJD
SFlfUkVRVUVTVF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBDU1NTdHlsZVNo
ZWV0OjpSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKHRoaXMpOwotCiAgICAgbV9tZWRp
YVJ1bGUtPndyYXBwZXJJbnNlcnRSdWxlKGluZGV4LCBuZXdSdWxlKTsKIAogICAgIG1fY2hpbGRS
dWxlQ1NTT01XcmFwcGVycy5pbnNlcnQoaW5kZXgsIFJlZlB0cjxDU1NSdWxlPigpKTsKKworICAg
IGlmIChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gcGFyZW50U3R5bGVTaGVldCgpKQorICAg
ICAgICBzdHlsZVNoZWV0LT5zdHlsZVNoZWV0Q2hhbmdlZCgpOworCiAgICAgcmV0dXJuIGluZGV4
OwogfQogCkBAIC05OSwxNCArMTAwLDE0IEBAIHZvaWQgQ1NTTWVkaWFSdWxlOjpkZWxldGVSdWxl
KHVuc2lnbmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgZWMgPSBJTkRFWF9T
SVpFX0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLQotICAgIENTU1N0eWxlU2hlZXQ6OlJ1
bGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2NvcGUodGhpcyk7Ci0KICAgICBtX21lZGlhUnVsZS0+
d3JhcHBlclJlbW92ZVJ1bGUoaW5kZXgpOwogCiAgICAgaWYgKG1fY2hpbGRSdWxlQ1NTT01XcmFw
cGVyc1tpbmRleF0pCiAgICAgICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1tpbmRleF0tPnNl
dFBhcmVudFJ1bGUoMCk7CiAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLnJlbW92ZShpbmRl
eCk7CisKKyAgICBpZiAoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHBhcmVudFN0eWxlU2hl
ZXQoKSkKKyAgICAgICAgc3R5bGVTaGVldC0+c3R5bGVTaGVldENoYW5nZWQoKTsKIH0KIAogU3Ry
aW5nIENTU01lZGlhUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CkBAIC0xNjIsMTYgKzE2Myw0IEBAIENT
U1J1bGVMaXN0KiBDU1NNZWRpYVJ1bGU6OmNzc1J1bGVzKCkgY29uc3QKICAgICByZXR1cm4gbV9y
dWxlTGlzdENTU09NV3JhcHBlci5nZXQoKTsKIH0KIAotdm9pZCBDU1NNZWRpYVJ1bGU6OnJlYXR0
YWNoKFN0eWxlUnVsZU1lZGlhKiBydWxlKQotewotICAgIEFTU0VSVChydWxlKTsKLSAgICBtX21l
ZGlhUnVsZSA9IHJ1bGU7Ci0gICAgaWYgKG1fbWVkaWFDU1NPTVdyYXBwZXIpCi0gICAgICAgIG1f
bWVkaWFDU1NPTVdyYXBwZXItPnJlYXR0YWNoKG1fbWVkaWFSdWxlLT5tZWRpYVF1ZXJpZXMoKSk7
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVycy5z
aXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzW2ldKQot
ICAgICAgICAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzW2ldLT5yZWF0dGFjaChtX21lZGlh
UnVsZS0+Y2hpbGRSdWxlcygpW2ldLmdldCgpKTsKLSAgICB9Ci19Ci0KIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NNZWRpYVJ1bGUuaAppbmRleCBmZGEyM2NhZTI3ZWZlMDFl
Nzk4ZmVhOTA4ZmYzZjI2NmM3ODJhYzZjLi4xYWE1NDQyNTI4YzExZGZkNzgwYWFkYzkyN2Y4N2Qw
YjdhMzM0YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTTWVkaWFSdWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU01lZGlhUnVsZS5oCkBAIC01MCw4ICs1MCw2IEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKICAgICBDU1NSdWxlKiBpdGVt
KHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAotICAgIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlTWVk
aWEqKTsKLQogcHJpdmF0ZToKICAgICBDU1NNZWRpYVJ1bGUoU3R5bGVSdWxlTWVkaWEqLCBDU1NT
dHlsZVNoZWV0Kik7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFn
ZVJ1bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhZ2VSdWxlLmNwcAppbmRleCA3MGJi
YWI3YmExMDcxOTNiYmI4YzczNmM0Yjc4YTQ5MTUxOGVhYjg4Li44OGEwODk5NTQ5YWU1MDdmMTg3
NjdmN2RkNTE4N2Q5YTM2NjRkYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UGFnZVJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5jcHAKQEAg
LTI0LDcgKzI0LDYgQEAKIAogI2luY2x1ZGUgIkNTU1BhcnNlci5oIgogI2luY2x1ZGUgIkNTU1Nl
bGVjdG9yLmgiCi0jaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgpAQCAtNjYsMTYgKzY1LDI0IEBAIFN0cmluZyBDU1NQYWdl
UnVsZTo6c2VsZWN0b3JUZXh0KCkgY29uc3QKIAogdm9pZCBDU1NQYWdlUnVsZTo6c2V0U2VsZWN0
b3JUZXh0KGNvbnN0IFN0cmluZyYgc2VsZWN0b3JUZXh0KQogeworICAgIERvY3VtZW50KiBkb2Mg
PSAwOworICAgIGlmIChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gcGFyZW50U3R5bGVTaGVl
dCgpKQorICAgICAgICBkb2MgPSBzdHlsZVNoZWV0LT5vd25lckRvY3VtZW50KCk7CisgICAgaWYg
KCFkb2MpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBDU1NQYXJzZXIgcGFyc2VyKHBhcnNl
ckNvbnRleHQoKSk7CiAgICAgQ1NTU2VsZWN0b3JMaXN0IHNlbGVjdG9yTGlzdDsKICAgICBwYXJz
ZXIucGFyc2VTZWxlY3RvcihzZWxlY3RvclRleHQsIHNlbGVjdG9yTGlzdCk7CiAgICAgaWYgKCFz
ZWxlY3Rvckxpc3QuZmlyc3QoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgQ1NTU3R5bGVTaGVl
dDo6UnVsZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKLQorICAgIAogICAgIFN0
cmluZyBvbGRTZWxlY3RvclRleHQgPSB0aGlzLT5zZWxlY3RvclRleHQoKTsKICAgICBtX3BhZ2VS
dWxlLT53cmFwcGVyQWRvcHRTZWxlY3Rvckxpc3Qoc2VsZWN0b3JMaXN0KTsKKyAgICAKKyAgICBp
ZiAodGhpcy0+c2VsZWN0b3JUZXh0KCkgPT0gb2xkU2VsZWN0b3JUZXh0KQorICAgICAgICByZXR1
cm47CisgICAgZG9jLT5zdHlsZVJlc29sdmVyQ2hhbmdlZChEZWZlclJlY2FsY1N0eWxlKTsKIH0K
IAogU3RyaW5nIENTU1BhZ2VSdWxlOjpjc3NUZXh0KCkgY29uc3QKQEAgLTg3LDEyICs5NCw0IEBA
IFN0cmluZyBDU1NQYWdlUnVsZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotdm9pZCBDU1NQYWdlUnVsZTo6cmVhdHRhY2goU3R5bGVSdWxlUGFnZSogcnVsZSkKLXsK
LSAgICBBU1NFUlQocnVsZSk7Ci0gICAgbV9wYWdlUnVsZSA9IHJ1bGU7Ci0gICAgaWYgKG1fcHJv
cGVydGllc0NTU09NV3JhcHBlcikKLSAgICAgICAgbV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyLT5y
ZWF0dGFjaChtX3BhZ2VSdWxlLT5wcm9wZXJ0aWVzKCkpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFnZVJ1bGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCmluZGV4IDE2MzkwMGNkMWVlMzg5ZWFmYWQ5
ZmY0NDg3YzZhODRiYmJkMmE1ZTUuLjY5YTU3OGQ3NTZjYWRiYzM4MWY4MjI4YWYwMWFkN2FiYTNi
ZjhhNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYWdlUnVsZS5oCkBAIC00NSw5ICs0NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmKTsKIAogICAgIFN0cmlu
ZyBjc3NUZXh0KCkgY29uc3Q7Ci0KLSAgICB2b2lkIHJlYXR0YWNoKFN0eWxlUnVsZVBhZ2UqKTsK
LQorICAgIAogcHJpdmF0ZToKICAgICBDU1NQYWdlUnVsZShTdHlsZVJ1bGVQYWdlKiwgQ1NTU3R5
bGVTaGVldCopOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuY3BwCmluZGV4IDA5NjQzZWE5ZWQxYmM2
NjE0ZDMzMmIwZGE4NzQ3ZGRjOWFlMDNiM2QuLjEzYWQ1MGFkMzhkOTIwOGVkMGE1NTNjZTJmMTkw
NGE1YWNjYjBlZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUnVsZS5jcHAKQEAgLTI4LDEzICsyOCwxMSBAQAog
I2luY2x1ZGUgIkNTU01lZGlhUnVsZS5oIgogI2luY2x1ZGUgIkNTU1BhZ2VSdWxlLmgiCiAjaW5j
bHVkZSAiQ1NTU3R5bGVSdWxlLmgiCi0jaW5jbHVkZSAiQ1NTU3R5bGVTaGVldC5oIgogI2luY2x1
ZGUgIkNTU1Vua25vd25SdWxlLmgiCiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oIgogI2luY2x1ZGUgIldlYktpdENT
U1JlZ2lvblJ1bGUuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgotI2luY2x1ZGUgIlN0
eWxlUnVsZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTExNSw0OCArMTEzLDQgQEAg
dm9pZCBDU1NSdWxlOjpkZXN0cm95KCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAot
dm9pZCBDU1NSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVCYXNlKiBydWxlKQotewotICAgIHN3aXRj
aCAodHlwZSgpKSB7Ci0gICAgY2FzZSBVTktOT1dOX1JVTEU6Ci0gICAgICAgIHJldHVybjsKLSAg
ICBjYXNlIFNUWUxFX1JVTEU6Ci0gICAgICAgIHN0YXRpY19jYXN0PENTU1N0eWxlUnVsZSo+KHRo
aXMpLT5yZWF0dGFjaChzdGF0aWNfY2FzdDxTdHlsZVJ1bGUqPihydWxlKSk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICBjYXNlIFBBR0VfUlVMRToKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q1NTUGFnZVJ1
bGUqPih0aGlzKS0+cmVhdHRhY2goc3RhdGljX2Nhc3Q8U3R5bGVSdWxlUGFnZSo+KHJ1bGUpKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgQ0hBUlNFVF9SVUxFOgotICAgICAgICBBU1NFUlQo
IXJ1bGUpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBJTVBPUlRfUlVMRToKLSAgICAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB3aGVuIGVuYWJsaW5nIGNhY2hpbmcgZm9yIHN0eWxlc2hlZXRz
IHdpdGggaW1wb3J0IHJ1bGVzLgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIGNhc2UgTUVESUFfUlVMRToKLSAgICAgICAgc3RhdGljX2Nhc3Q8Q1NT
TWVkaWFSdWxlKj4odGhpcyktPnJlYXR0YWNoKHN0YXRpY19jYXN0PFN0eWxlUnVsZU1lZGlhKj4o
cnVsZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBGT05UX0ZBQ0VfUlVMRToKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8Q1NTRm9udEZhY2VSdWxlKj4odGhpcyktPnJlYXR0YWNoKHN0YXRpY19j
YXN0PFN0eWxlUnVsZUZvbnRGYWNlKj4ocnVsZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2Fz
ZSBXRUJLSVRfS0VZRlJBTUVTX1JVTEU6Ci0gICAgICAgIHN0YXRpY19jYXN0PFdlYktpdENTU0tl
eWZyYW1lc1J1bGUqPih0aGlzKS0+cmVhdHRhY2goc3RhdGljX2Nhc3Q8U3R5bGVSdWxlS2V5ZnJh
bWVzKj4ocnVsZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXRUJLSVRfS0VZRlJBTUVf
UlVMRToKLSAgICAgICAgLy8gTm8gbmVlZCB0byByZWF0dGFjaCwgdGhlIHVuZGVybHlpbmcgZGF0
YSBpcyBzaGFyZWFibGUgb24gbXV0YXRpb24uCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICByZXR1cm47Ci0gICAgY2FzZSBXRUJLSVRfUkVHSU9OX1JVTEU6Ci0gICAgICAg
IHN0YXRpY19jYXN0PFdlYktpdENTU1JlZ2lvblJ1bGUqPih0aGlzKS0+cmVhdHRhY2goc3RhdGlj
X2Nhc3Q8U3R5bGVSdWxlUmVnaW9uKj4ocnVsZSkpOwotICAgICAgICByZXR1cm47Ci0gICAgfQot
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi1jb25zdCBDU1NQYXJzZXJDb250ZXh0JiBD
U1NSdWxlOjpwYXJzZXJDb250ZXh0KCkgY29uc3QKLXsKLSAgICBDU1NTdHlsZVNoZWV0KiBzdHls
ZVNoZWV0ID0gcGFyZW50U3R5bGVTaGVldCgpOwotICAgIHJldHVybiBzdHlsZVNoZWV0ID8gc3R5
bGVTaGVldC0+aW50ZXJuYWwoKS0+cGFyc2VyQ29udGV4dCgpIDogc3RyaWN0Q1NTUGFyc2VyQ29u
dGV4dCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1J1bGUuaAppbmRl
eCA1ZWMyZjdhYThlOTA5MmQ2NzRjOTBmN2ZhZTBlY2FlYTJkZDcyNjE3Li41YTUwNjQ1YWFjM2Q2
NjYzNjUzODgyN2U4YzNhNGI3OTAxODgyNzgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NSdWxlLmgKQEAgLTIzLDE1
ICsyMywxMiBAQAogI2lmbmRlZiBDU1NSdWxlX2gKICNkZWZpbmUgQ1NTUnVsZV9oCiAKKyNpbmNs
dWRlICJDU1NTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiS1VSTEhhc2guaCIKICNpbmNsdWRlIDx3
dGYvTGlzdEhhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIENTU1N0eWxlU2hlZXQ7Ci1jbGFzcyBTdHlsZVJ1bGVCYXNl
Owotc3RydWN0IENTU1BhcnNlckNvbnRleHQ7CiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwog
CiBjbGFzcyBDU1NSdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8Q1NTUnVsZT4gewpAQCAtOTYsOCAr
OTMsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNzc1RleHQoKSBjb25zdDsKICAgICB2b2lkIHNl
dENzc1RleHQoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogCi0gICAgdm9pZCByZWF0
dGFjaChTdHlsZVJ1bGVCYXNlKik7Ci0KIHByb3RlY3RlZDoKICAgICBDU1NSdWxlKENTU1N0eWxl
U2hlZXQqIHBhcmVudCwgVHlwZSB0eXBlKQogICAgICAgICA6IG1faGFzQ2FjaGVkU2VsZWN0b3JU
ZXh0KGZhbHNlKQpAQCAtMTE1LDcgKzExMCwxMSBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBoYXND
YWNoZWRTZWxlY3RvclRleHQoKSBjb25zdCB7IHJldHVybiBtX2hhc0NhY2hlZFNlbGVjdG9yVGV4
dDsgfQogICAgIHZvaWQgc2V0SGFzQ2FjaGVkU2VsZWN0b3JUZXh0KGJvb2wgaGFzQ2FjaGVkU2Vs
ZWN0b3JUZXh0KSBjb25zdCB7IG1faGFzQ2FjaGVkU2VsZWN0b3JUZXh0ID0gaGFzQ2FjaGVkU2Vs
ZWN0b3JUZXh0OyB9CiAKLSAgICBjb25zdCBDU1NQYXJzZXJDb250ZXh0JiBwYXJzZXJDb250ZXh0
KCkgY29uc3Q7CisgICAgY29uc3QgQ1NTUGFyc2VyQ29udGV4dCYgcGFyc2VyQ29udGV4dCgpIGNv
bnN0IAorICAgIHsKKyAgICAgICAgQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCA9IHBhcmVudFN0
eWxlU2hlZXQoKTsKKyAgICAgICAgcmV0dXJuIHN0eWxlU2hlZXQgPyBzdHlsZVNoZWV0LT5pbnRl
cm5hbCgpLT5wYXJzZXJDb250ZXh0KCkgOiBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCk7CisgICAg
fQogCiBwcml2YXRlOgogICAgIG11dGFibGUgdW5zaWduZWQgbV9oYXNDYWNoZWRTZWxlY3RvclRl
eHQgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlUnVsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcAppbmRleCA1YTc4MDI2NGEwNGQw
M2JkMjU4MjZlZmM4ZDFmMTY3NzlmZjJiMWRkLi43MzU3ZmNmMjJlNGQ4Yzk5NWZhYjdlYTQzYzc4
MzFkMzY4N2FhMTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmNwcApAQCAtOTEsMTQg
KzkxLDE4IEBAIFN0cmluZyBDU1NTdHlsZVJ1bGU6OnNlbGVjdG9yVGV4dCgpIGNvbnN0CiAKIHZv
aWQgQ1NTU3R5bGVSdWxlOjpzZXRTZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiBzZWxlY3RvclRl
eHQpCiB7CisgICAgRG9jdW1lbnQqIGRvYyA9IDA7CisgICAgaWYgKENTU1N0eWxlU2hlZXQqIHN0
eWxlU2hlZXQgPSBwYXJlbnRTdHlsZVNoZWV0KCkpCisgICAgICAgIGRvYyA9IHN0eWxlU2hlZXQt
Pm93bmVyRG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvYykKKyAgICAgICAgcmV0dXJuOworCiAgICAg
Q1NTUGFyc2VyIHAocGFyc2VyQ29udGV4dCgpKTsKICAgICBDU1NTZWxlY3Rvckxpc3Qgc2VsZWN0
b3JMaXN0OwogICAgIHAucGFyc2VTZWxlY3RvcihzZWxlY3RvclRleHQsIHNlbGVjdG9yTGlzdCk7
CiAgICAgaWYgKCFzZWxlY3Rvckxpc3QuZmlyc3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Q1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKLQog
ICAgIFN0cmluZyBvbGRTZWxlY3RvclRleHQgPSB0aGlzLT5zZWxlY3RvclRleHQoKTsKICAgICBt
X3N0eWxlUnVsZS0+d3JhcHBlckFkb3B0U2VsZWN0b3JMaXN0KHNlbGVjdG9yTGlzdCk7CiAKQEAg
LTEwNiw2ICsxMTAsOCBAQCB2b2lkIENTU1N0eWxlUnVsZTo6c2V0U2VsZWN0b3JUZXh0KGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JUZXh0KQogICAgICAgICBBU1NFUlQoc2VsZWN0b3JUZXh0Q2FjaGUo
KS5jb250YWlucyh0aGlzKSk7CiAgICAgICAgIHNlbGVjdG9yVGV4dENhY2hlKCkuc2V0KHRoaXMs
IGdlbmVyYXRlU2VsZWN0b3JUZXh0KCkpOwogICAgIH0KKworICAgIGRvYy0+c3R5bGVSZXNvbHZl
ckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CiB9CiAKIFN0cmluZyBDU1NTdHlsZVJ1bGU6OmNz
c1RleHQoKSBjb25zdApAQCAtMTE5LDExICsxMjUsNCBAQCBTdHJpbmcgQ1NTU3R5bGVSdWxlOjpj
c3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi12b2lkIENTU1N0eWxlUnVs
ZTo6cmVhdHRhY2goU3R5bGVSdWxlKiBydWxlKQotewotICAgIG1fc3R5bGVSdWxlID0gcnVsZTsK
LSAgICBpZiAobV9wcm9wZXJ0aWVzQ1NTT01XcmFwcGVyKQotICAgICAgICBtX3Byb3BlcnRpZXND
U1NPTVdyYXBwZXItPnJlYXR0YWNoKG1fc3R5bGVSdWxlLT5wcm9wZXJ0aWVzKCkpOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVSdWxlLmgKaW5kZXggZDc2
YTgwMmZhNGVhMWM5MTFjMTNlMzU0NTk4ZDA5MmVhOWNmZDA1OS4uYWUwM2I1ODg3YTExMmZmZDA1
OTZhOTgyYjU5NDAzNzg3MTViOTNmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1N0eWxlUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVJ1bGUuaApAQCAt
NDgsOCArNDgsNiBAQCBwdWJsaWM6CiAgICAgLy8gRklYTUU6IE5vdCBDU1NPTS4gUmVtb3ZlLgog
ICAgIFN0eWxlUnVsZSogc3R5bGVSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9zdHlsZVJ1bGUuZ2V0
KCk7IH0KIAotICAgIHZvaWQgcmVhdHRhY2goU3R5bGVSdWxlKik7Ci0KIHByaXZhdGU6CiAgICAg
Q1NTU3R5bGVSdWxlKFN0eWxlUnVsZSosIENTU1N0eWxlU2hlZXQqKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlU2hlZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N0eWxlU2hlZXQuY3BwCmluZGV4IDMyOWZjOGQxNGQwMGI1ZDNlNjU3Nzk2OWU4ZGQ4NjNk
MzIwYjhkZDguLjM4NTIwMDhkYjExODMyYzdlZTYyMzE1MzhmOTNkMGFkMjg2NjlmMmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5jcHAKQEAgLTk5LDggKzk5LDcgQEAgU3R5bGVTaGVl
dEludGVybmFsOjpTdHlsZVNoZWV0SW50ZXJuYWwoU3R5bGVSdWxlSW1wb3J0KiBvd25lclJ1bGUs
IGNvbnN0IFN0cmluZyYKICAgICAsIG1faGFzU3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyKHRy
dWUpCiAgICAgLCBtX2RpZExvYWRFcnJvck9jY3VyKGZhbHNlKQogICAgICwgbV91c2VzUmVtVW5p
dHMoZmFsc2UpCi0gICAgLCBtX2lzTXV0YWJsZShmYWxzZSkKLSAgICAsIG1faXNJbk1lbW9yeUNh
Y2hlKGZhbHNlKQorICAgICwgbV9oYXNNdXRhdGVkKGZhbHNlKQogICAgICwgbV9wYXJzZXJDb250
ZXh0KGNvbnRleHQpCiB7CiB9CkBAIC0xMTksOCArMTE4LDcgQEAgU3R5bGVTaGVldEludGVybmFs
OjpTdHlsZVNoZWV0SW50ZXJuYWwoY29uc3QgU3R5bGVTaGVldEludGVybmFsJiBvKQogICAgICwg
bV9oYXNTeW50YWN0aWNhbGx5VmFsaWRDU1NIZWFkZXIoby5tX2hhc1N5bnRhY3RpY2FsbHlWYWxp
ZENTU0hlYWRlcikKICAgICAsIG1fZGlkTG9hZEVycm9yT2NjdXIoZmFsc2UpCiAgICAgLCBtX3Vz
ZXNSZW1Vbml0cyhvLm1fdXNlc1JlbVVuaXRzKQotICAgICwgbV9pc011dGFibGUoZmFsc2UpCi0g
ICAgLCBtX2lzSW5NZW1vcnlDYWNoZShmYWxzZSkKKyAgICAsIG1faGFzTXV0YXRlZChmYWxzZSkK
ICAgICAsIG1fcGFyc2VyQ29udGV4dChvLm1fcGFyc2VyQ29udGV4dCkKIHsKICAgICBBU1NFUlQo
by5pc0NhY2hlYWJsZSgpKTsKQEAgLTE0MiwxNiArMTQwLDEzIEBAIGJvb2wgU3R5bGVTaGVldElu
dGVybmFsOjppc0NhY2hlYWJsZSgpIGNvbnN0CiAgICAgLy8gRklYTUU6IFN1cHBvcnQgY29weWlu
ZyBpbXBvcnQgcnVsZXMuCiAgICAgaWYgKCFtX2ltcG9ydFJ1bGVzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIEZJWE1FOiBTdXBwb3J0IGNhY2hlZCBzdHlsZXNoZWV0
cyBpbiBpbXBvcnQgcnVsZXMuCi0gICAgaWYgKG1fb3duZXJSdWxlKQotICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgLy8gVGhpcyB3b3VsZCByZXF1aXJlIGRlYWxpbmcgd2l0aCBtdWx0aXBsZSBj
bGllbnRzIGZvciBsb2FkIGNhbGxiYWNrcy4KICAgICBpZiAoIW1fbG9hZENvbXBsZXRlZCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChtX2RpZExvYWRFcnJvck9jY3VyKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgLy8gSXQgaXMgbm90IHRoZSBvcmlnaW5hbCBzaGVldCBhbnlt
b3JlLgotICAgIGlmIChtX2lzTXV0YWJsZSkKKyAgICBpZiAobV9oYXNNdXRhdGVkKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgLy8gSWYgdGhlIGhlYWRlciBpcyB2YWxpZCB3ZSBhcmUgbm90
IGdvaW5nIHRvIG5lZWQgdG8gY2hlY2sgdGhlIFNlY3VyaXR5T3JpZ2luLgogICAgIC8vIEZJWE1F
OiBWYWxpZCBtaW1lIHR5cGUgYXZvaWRzIHRoZSBjaGVjayB0b28uCkBAIC0xNzQsMjEgKzE2OSwy
MSBAQCB2b2lkIFN0eWxlU2hlZXRJbnRlcm5hbDo6cGFyc2VyQXBwZW5kUnVsZShQYXNzUmVmUHRy
PFN0eWxlUnVsZUJhc2U+IHJ1bGUpCiAgICAgbV9jaGlsZFJ1bGVzLmFwcGVuZChydWxlKTsKIH0K
IAotU3R5bGVSdWxlQmFzZSogU3R5bGVTaGVldEludGVybmFsOjpydWxlQXQodW5zaWduZWQgaW5k
ZXgpIGNvbnN0CitQYXNzUmVmUHRyPENTU1J1bGU+IFN0eWxlU2hlZXRJbnRlcm5hbDo6Y3JlYXRl
Q2hpbGRSdWxlQ1NTT01XcmFwcGVyKHVuc2lnbmVkIGluZGV4LCBDU1NTdHlsZVNoZWV0KiBwYXJl
bnRXcmFwcGVyKQogewogICAgIEFTU0VSVChpbmRleCA8IHJ1bGVDb3VudCgpKTsKICAgICAKICAg
ICB1bnNpZ25lZCBjaGlsZFZlY3RvckluZGV4ID0gaW5kZXg7CiAgICAgaWYgKGhhc0NoYXJzZXRS
dWxlKCkpIHsKICAgICAgICAgaWYgKGluZGV4ID09IDApCi0gICAgICAgICAgICByZXR1cm4gMDsK
KyAgICAgICAgICAgIHJldHVybiBDU1NDaGFyc2V0UnVsZTo6Y3JlYXRlKHBhcmVudFdyYXBwZXIs
IG1fZW5jb2RpbmdGcm9tQ2hhcnNldFJ1bGUpOwogICAgICAgICAtLWNoaWxkVmVjdG9ySW5kZXg7
CiAgICAgfQogICAgIGlmIChjaGlsZFZlY3RvckluZGV4IDwgbV9pbXBvcnRSdWxlcy5zaXplKCkp
Ci0gICAgICAgIHJldHVybiBtX2ltcG9ydFJ1bGVzW2NoaWxkVmVjdG9ySW5kZXhdLmdldCgpOwot
CisgICAgICAgIHJldHVybiBtX2ltcG9ydFJ1bGVzW2NoaWxkVmVjdG9ySW5kZXhdLT5jcmVhdGVD
U1NPTVdyYXBwZXIocGFyZW50V3JhcHBlcik7CisgICAgCiAgICAgY2hpbGRWZWN0b3JJbmRleCAt
PSBtX2ltcG9ydFJ1bGVzLnNpemUoKTsKLSAgICByZXR1cm4gbV9jaGlsZFJ1bGVzW2NoaWxkVmVj
dG9ySW5kZXhdLmdldCgpOworICAgIHJldHVybiBtX2NoaWxkUnVsZXNbY2hpbGRWZWN0b3JJbmRl
eF0tPmNyZWF0ZUNTU09NV3JhcHBlcihwYXJlbnRXcmFwcGVyKTsKIH0KIAogdW5zaWduZWQgU3R5
bGVTaGVldEludGVybmFsOjpydWxlQ291bnQoKSBjb25zdApAQCAtMjI1LDcgKzIyMCw2IEBAIHZv
aWQgU3R5bGVTaGVldEludGVybmFsOjpwYXJzZXJTZXRFbmNvZGluZ0Zyb21DaGFyc2V0UnVsZShj
b25zdCBTdHJpbmcmIGVuY29kaW5nCiAKIGJvb2wgU3R5bGVTaGVldEludGVybmFsOjp3cmFwcGVy
SW5zZXJ0UnVsZShQYXNzUmVmUHRyPFN0eWxlUnVsZUJhc2U+IHJ1bGUsIHVuc2lnbmVkIGluZGV4
KQogewotICAgIEFTU0VSVChtX2lzTXV0YWJsZSk7CiAgICAgQVNTRVJUKGluZGV4IDw9IHJ1bGVD
b3VudCgpKTsKICAgICAvLyBQYXJzZXI6OnBhcnNlUnVsZSBkb2Vzbid0IGN1cnJlbnRseSBhbGxv
dyBAY2hhcnNldCBzbyB3ZSBkb24ndCBuZWVkIHRvIGRlYWwgd2l0aCBpdC4KICAgICBBU1NFUlQo
IXJ1bGUtPmlzQ2hhcnNldFJ1bGUoKSk7CkBAIC0yNDgsNiArMjQyLDcgQEAgYm9vbCBTdHlsZVNo
ZWV0SW50ZXJuYWw6OndyYXBwZXJJbnNlcnRSdWxlKFBhc3NSZWZQdHI8U3R5bGVSdWxlQmFzZT4g
cnVsZSwgdW5zaWcKICAgICAgICAgbV9pbXBvcnRSdWxlc1tjaGlsZFZlY3RvckluZGV4XS0+c2V0
UGFyZW50U3R5bGVTaGVldCh0aGlzKTsKICAgICAgICAgbV9pbXBvcnRSdWxlc1tjaGlsZFZlY3Rv
ckluZGV4XS0+cmVxdWVzdFN0eWxlU2hlZXQoKTsKICAgICAgICAgLy8gRklYTUU6IFN0eWxlc2hl
ZXQgZG9lc24ndCBhY3R1YWxseSBjaGFuZ2UgbWVhbmluZ2Z1bGx5IGJlZm9yZSB0aGUgaW1wb3J0
ZWQgc2hlZXRzIGFyZSBsb2FkZWQuCisgICAgICAgIHN0eWxlU2hlZXRDaGFuZ2VkKCk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAvLyBJbnNlcnRpbmcgQGltcG9ydCBydWxlIGFm
dGVyIGEgbm9uLWltcG9ydCBydWxlIGlzIG5vdCBhbGxvd2VkLgpAQCAtMjU2LDE4ICsyNTEsMjAg
QEAgYm9vbCBTdHlsZVNoZWV0SW50ZXJuYWw6OndyYXBwZXJJbnNlcnRSdWxlKFBhc3NSZWZQdHI8
U3R5bGVSdWxlQmFzZT4gcnVsZSwgdW5zaWcKICAgICBjaGlsZFZlY3RvckluZGV4IC09IG1faW1w
b3J0UnVsZXMuc2l6ZSgpOwogIAogICAgIG1fY2hpbGRSdWxlcy5pbnNlcnQoY2hpbGRWZWN0b3JJ
bmRleCwgcnVsZSk7CisgICAgCisgICAgc3R5bGVTaGVldENoYW5nZWQoKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAogdm9pZCBTdHlsZVNoZWV0SW50ZXJuYWw6OndyYXBwZXJEZWxldGVSdWxlKHVu
c2lnbmVkIGluZGV4KQogewotICAgIEFTU0VSVChtX2lzTXV0YWJsZSk7CiAgICAgQVNTRVJUKGlu
ZGV4IDwgcnVsZUNvdW50KCkpOwogCiAgICAgdW5zaWduZWQgY2hpbGRWZWN0b3JJbmRleCA9IGlu
ZGV4OwogICAgIGlmIChoYXNDaGFyc2V0UnVsZSgpKSB7CiAgICAgICAgIGlmIChjaGlsZFZlY3Rv
ckluZGV4ID09IDApIHsKICAgICAgICAgICAgIGNsZWFyQ2hhcnNldFJ1bGUoKTsKKyAgICAgICAg
ICAgIHN0eWxlU2hlZXRDaGFuZ2VkKCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICAgICAgLS1jaGlsZFZlY3RvckluZGV4OwpAQCAtMjc1LDExICsyNzIsMTMgQEAgdm9pZCBT
dHlsZVNoZWV0SW50ZXJuYWw6OndyYXBwZXJEZWxldGVSdWxlKHVuc2lnbmVkIGluZGV4KQogICAg
IGlmIChjaGlsZFZlY3RvckluZGV4IDwgbV9pbXBvcnRSdWxlcy5zaXplKCkpIHsKICAgICAgICAg
bV9pbXBvcnRSdWxlc1tjaGlsZFZlY3RvckluZGV4XS0+Y2xlYXJQYXJlbnRTdHlsZVNoZWV0KCk7
CiAgICAgICAgIG1faW1wb3J0UnVsZXMucmVtb3ZlKGNoaWxkVmVjdG9ySW5kZXgpOworICAgICAg
ICBzdHlsZVNoZWV0Q2hhbmdlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGNoaWxk
VmVjdG9ySW5kZXggLT0gbV9pbXBvcnRSdWxlcy5zaXplKCk7CiAKICAgICBtX2NoaWxkUnVsZXMu
cmVtb3ZlKGNoaWxkVmVjdG9ySW5kZXgpOworICAgIHN0eWxlU2hlZXRDaGFuZ2VkKCk7CiB9CiAK
IHZvaWQgU3R5bGVTaGVldEludGVybmFsOjpwYXJzZXJBZGROYW1lc3BhY2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBwcmVmaXgsIGNvbnN0IEF0b21pY1N0cmluZyYgdXJpKQpAQCAtNDE2LDYgKzQxNSwx
NiBAQCBEb2N1bWVudCogU3R5bGVTaGVldEludGVybmFsOjpzaW5nbGVPd25lckRvY3VtZW50KCkg
Y29uc3QKICAgICByZXR1cm4gb3duZXJOb2RlID8gb3duZXJOb2RlLT5kb2N1bWVudCgpIDogMDsK
IH0KIAordm9pZCBTdHlsZVNoZWV0SW50ZXJuYWw6OnN0eWxlU2hlZXRDaGFuZ2VkKCkKK3sKKyAg
ICBtX2hhc011dGF0ZWQgPSB0cnVlOworCisgICAgRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQgPSBz
aW5nbGVPd25lckRvY3VtZW50KCk7CisgICAgaWYgKCFvd25lckRvY3VtZW50KQorICAgICAgICBy
ZXR1cm47CisgICAgb3duZXJEb2N1bWVudC0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNh
bGNTdHlsZSk7Cit9CisKIEtVUkwgU3R5bGVTaGVldEludGVybmFsOjpjb21wbGV0ZVVSTChjb25z
dCBTdHJpbmcmIHVybCkgY29uc3QKIHsKICAgICByZXR1cm4gQ1NTUGFyc2VyOjpjb21wbGV0ZVVS
TChtX3BhcnNlckNvbnRleHQsIHVybCk7CkBAIC00NjQsMjAgKzQ3Myw2IEBAIHZvaWQgU3R5bGVT
aGVldEludGVybmFsOjp1bnJlZ2lzdGVyQ2xpZW50KENTU1N0eWxlU2hlZXQqIHNoZWV0KQogICAg
IG1fY2xpZW50cy5yZW1vdmUocG9zaXRpb24pOwogfQogCi12b2lkIFN0eWxlU2hlZXRJbnRlcm5h
bDo6YWRkZWRUb01lbW9yeUNhY2hlKCkKLXsKLSAgICBBU1NFUlQoIW1faXNJbk1lbW9yeUNhY2hl
KTsKLSAgICBBU1NFUlQoaXNDYWNoZWFibGUoKSk7Ci0gICAgbV9pc0luTWVtb3J5Q2FjaGUgPSB0
cnVlOwotfQotCi12b2lkIFN0eWxlU2hlZXRJbnRlcm5hbDo6cmVtb3ZlZEZyb21NZW1vcnlDYWNo
ZSgpCi17Ci0gICAgQVNTRVJUKG1faXNJbk1lbW9yeUNhY2hlKTsKLSAgICBBU1NFUlQoaXNDYWNo
ZWFibGUoKSk7Ci0gICAgbV9pc0luTWVtb3J5Q2FjaGUgPSBmYWxzZTsKLX0KLQogUGFzc1JlZlB0
cjxDU1NTdHlsZVNoZWV0PiBDU1NTdHlsZVNoZWV0OjpjcmVhdGVJbmxpbmUoTm9kZSogb3duZXJO
b2RlLCBjb25zdCBLVVJMJiBiYXNlVVJMLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nKQogewogICAg
IENTU1BhcnNlckNvbnRleHQgcGFyc2VyQ29udGV4dChvd25lck5vZGUtPmRvY3VtZW50KCksIGJh
c2VVUkwsIGVuY29kaW5nKTsKQEAgLTUxOSw1OSArNTE0LDE0IEBAIENTU1N0eWxlU2hlZXQ6On5D
U1NTdHlsZVNoZWV0KCkKICAgICBtX2ludGVybmFsLT51bnJlZ2lzdGVyQ2xpZW50KHRoaXMpOwog
fQogCi12b2lkIENTU1N0eWxlU2hlZXQ6OndpbGxNdXRhdGVSdWxlcygpCi17Ci0gICAgLy8gSWYg
d2UgYXJlIHRoZSBvbmx5IGNsaWVudCBpdCBpcyBzYWZlIHRvIG11dGF0ZS4KLSAgICBpZiAobV9p
bnRlcm5hbC0+aGFzT25lQ2xpZW50KCkgJiYgIW1faW50ZXJuYWwtPmlzSW5NZW1vcnlDYWNoZSgp
KSB7Ci0gICAgICAgIG1faW50ZXJuYWwtPnNldE11dGFibGUoKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICAvLyBPbmx5IGNhY2hlYWJsZSBzdHlsZXNoZWV0cyBzaG91bGQgaGF2ZSBtdWx0
aXBsZSBjbGllbnRzLgotICAgIEFTU0VSVChtX2ludGVybmFsLT5pc0NhY2hlYWJsZSgpKTsKLQot
ICAgIC8vIENvcHktb24td3JpdGUuCi0gICAgbV9pbnRlcm5hbC0+dW5yZWdpc3RlckNsaWVudCh0
aGlzKTsKLSAgICBtX2ludGVybmFsID0gbV9pbnRlcm5hbC0+Y29weSgpOwotICAgIG1faW50ZXJu
YWwtPnJlZ2lzdGVyQ2xpZW50KHRoaXMpOwotCi0gICAgbV9pbnRlcm5hbC0+c2V0TXV0YWJsZSgp
OwotCi0gICAgLy8gQW55IGV4aXN0aW5nIENTU09NIHdyYXBwZXJzIG5lZWQgdG8gYmUgY29ubmVj
dGVkIHRvIHRoZSBjb3BpZWQgY2hpbGQgcnVsZXMuCi0gICAgcmVhdHRhY2hDaGlsZFJ1bGVDU1NP
TVdyYXBwZXJzKCk7Ci19Ci0KLXZvaWQgQ1NTU3R5bGVTaGVldDo6ZGlkTXV0YXRlUnVsZXMoKQot
ewotICAgIEFTU0VSVChtX2ludGVybmFsLT5pc011dGFibGUoKSk7Ci0gICAgQVNTRVJUKG1faW50
ZXJuYWwtPmhhc09uZUNsaWVudCgpKTsKLQotICAgIGRpZE11dGF0ZSgpOwotfQotCi12b2lkIENT
U1N0eWxlU2hlZXQ6OmRpZE11dGF0ZSgpCi17Ci0gICAgRG9jdW1lbnQqIG93bmVyID0gb3duZXJE
b2N1bWVudCgpOwotICAgIGlmICghb3duZXIpCi0gICAgICAgIHJldHVybjsKLSAgICBvd25lci0+
c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7Ci19Ci0KLXZvaWQgQ1NTU3R5
bGVTaGVldDo6cmVhdHRhY2hDaGlsZFJ1bGVDU1NPTVdyYXBwZXJzKCkKLXsKLSAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLnNpemUoKTsgKytpKSB7
Ci0gICAgICAgIGlmICghbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzW2ldKQotICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1tpXS0+cmVhdHRhY2go
bV9pbnRlcm5hbC0+cnVsZUF0KGkpKTsKLSAgICB9Ci19Ci0KIHZvaWQgQ1NTU3R5bGVTaGVldDo6
c2V0RGlzYWJsZWQoYm9vbCBkaXNhYmxlZCkKIHsgCiAgICAgaWYgKGRpc2FibGVkID09IG1faXNE
aXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogICAgIG1faXNEaXNhYmxlZCA9IGRpc2FibGVkOwot
Ci0gICAgZGlkTXV0YXRlKCk7CisgICAgRG9jdW1lbnQqIG93bmVyID0gb3duZXJEb2N1bWVudCgp
OworICAgIGlmIChvd25lcikKKyAgICAgICAgb3duZXItPnN0eWxlUmVzb2x2ZXJDaGFuZ2VkKERl
ZmVyUmVjYWxjU3R5bGUpOwogfQogCiB2b2lkIENTU1N0eWxlU2hlZXQ6OnNldE1lZGlhUXVlcmll
cyhQYXNzUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IG1lZGlhUXVlcmllcykKQEAgLTU5NSwxMyArNTQ1
LDggQEAgQ1NTUnVsZSogQ1NTU3R5bGVTaGVldDo6aXRlbSh1bnNpZ25lZCBpbmRleCkKICAgICBB
U1NFUlQobV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLnNpemUoKSA9PSBydWxlQ291bnQpOwogICAg
IAogICAgIFJlZlB0cjxDU1NSdWxlPiYgY3NzUnVsZSA9IG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVy
c1tpbmRleF07Ci0gICAgaWYgKCFjc3NSdWxlKSB7Ci0gICAgICAgIGlmIChpbmRleCA9PSAwICYm
IG1faW50ZXJuYWwtPmhhc0NoYXJzZXRSdWxlKCkpIHsKLSAgICAgICAgICAgIEFTU0VSVCghbV9p
bnRlcm5hbC0+cnVsZUF0KDApKTsKLSAgICAgICAgICAgIGNzc1J1bGUgPSBDU1NDaGFyc2V0UnVs
ZTo6Y3JlYXRlKHRoaXMsIG1faW50ZXJuYWwtPmVuY29kaW5nRnJvbUNoYXJzZXRSdWxlKCkpOwot
ICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIGNzc1J1bGUgPSBtX2ludGVybmFsLT5ydWxlQXQo
aW5kZXgpLT5jcmVhdGVDU1NPTVdyYXBwZXIodGhpcyk7Ci0gICAgfQorICAgIGlmICghY3NzUnVs
ZSkKKyAgICAgICAgY3NzUnVsZSA9IG1faW50ZXJuYWwtPmNyZWF0ZUNoaWxkUnVsZUNTU09NV3Jh
cHBlcihpbmRleCwgdGhpcyk7CiAgICAgcmV0dXJuIGNzc1J1bGUuZ2V0KCk7CiB9CiAKQEAgLTYz
OSw4ICs1ODQsNiBAQCB1bnNpZ25lZCBDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKGNvbnN0IFN0
cmluZyYgcnVsZVN0cmluZywgdW5zaWduZWQgaW5kZXgsIEV4YwogICAgICAgICBlYyA9IFNZTlRB
WF9FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KLSAgICBSdWxlTXV0YXRpb25TY29wZSBt
dXRhdGlvblNjb3BlKHRoaXMpOwotCiAgICAgYm9vbCBzdWNjZXNzID0gbV9pbnRlcm5hbC0+d3Jh
cHBlckluc2VydFJ1bGUocnVsZSwgaW5kZXgpOwogICAgIGlmICghc3VjY2VzcykgewogICAgICAg
ICBlYyA9IEhJRVJBUkNIWV9SRVFVRVNUX0VSUjsKQEAgLTY0OCw3ICs1OTEsNiBAQCB1bnNpZ25l
ZCBDU1NTdHlsZVNoZWV0OjppbnNlcnRSdWxlKGNvbnN0IFN0cmluZyYgcnVsZVN0cmluZywgdW5z
aWduZWQgaW5kZXgsIEV4YwogICAgIH0gICAgICAgIAogICAgIGlmICghbV9jaGlsZFJ1bGVDU1NP
TVdyYXBwZXJzLmlzRW1wdHkoKSkKICAgICAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzLmlu
c2VydChpbmRleCwgUmVmUHRyPENTU1J1bGU+KCkpOwotCiAgICAgcmV0dXJuIGluZGV4OwogfQog
CkBAIC02NjEsOCArNjAzLDYgQEAgdm9pZCBDU1NTdHlsZVNoZWV0OjpkZWxldGVSdWxlKHVuc2ln
bmVkIGluZGV4LCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAgICAgZWMgPSBJTkRFWF9TSVpFX0VS
UjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlv
blNjb3BlKHRoaXMpOwotCiAgICAgbV9pbnRlcm5hbC0+d3JhcHBlckRlbGV0ZVJ1bGUoaW5kZXgp
OwogCiAgICAgaWYgKCFtX2NoaWxkUnVsZUNTU09NV3JhcHBlcnMuaXNFbXB0eSgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1N0eWxlU2hlZXQuaAppbmRleCA0MjVmNjc1YmFhY2Y2NjZhNjdkY2YyZmYzM2Fh
Zjc1OGQ3ZTgzZjkyLi45YmQzMDU3OGIzNzU4MWJmYTk3NWZjZTNkMGJkYzg2YTdhZWM0OTY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3R5bGVTaGVldC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZVNoZWV0LmgKQEAgLTIyLDEwICsyMiw4IEBACiAjZGVmaW5l
IENTU1N0eWxlU2hlZXRfaAogCiAjaW5jbHVkZSAiQ1NTUGFyc2VyTW9kZS5oIgotI2luY2x1ZGUg
IkNTU1J1bGUuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9B
dG9taWNTdHJpbmdIYXNoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY3LDYgKzY1LDgg
QEAgcHVibGljOgogCiAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBkZXRlcm1pbmVOYW1lc3BhY2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiBwcmVmaXgpOwogCisgICAgdm9pZCBzdHlsZVNoZWV0Q2hhbmdl
ZCgpOworCiAgICAgdm9pZCBwYXJzZUF1dGhvclN0eWxlU2hlZXQoY29uc3QgQ2FjaGVkQ1NTU3R5
bGVTaGVldCosIGNvbnN0IFNlY3VyaXR5T3JpZ2luKik7CiAgICAgYm9vbCBwYXJzZVN0cmluZyhj
b25zdCBTdHJpbmcmKTsKICAgICBib29sIHBhcnNlU3RyaW5nQXRMaW5lKGNvbnN0IFN0cmluZyYs
IGludCBzdGFydExpbmVOdW1iZXIpOwpAQCAtMTAxLDggKzEwMSw2IEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgY2xlYXJSdWxlcygpOwogCi0gICAgYm9vbCBoYXNDaGFyc2V0UnVsZSgpIGNvbnN0IHsg
cmV0dXJuICFtX2VuY29kaW5nRnJvbUNoYXJzZXRSdWxlLmlzTnVsbCgpOyB9Ci0gICAgU3RyaW5n
IGVuY29kaW5nRnJvbUNoYXJzZXRSdWxlKCkgY29uc3QgeyByZXR1cm4gbV9lbmNvZGluZ0Zyb21D
aGFyc2V0UnVsZTsgfQogICAgIC8vIFJ1bGVzIG90aGVyIHRoYW4gQGNoYXJzZXQgYW5kIEBpbXBv
cnQuCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxTdHlsZVJ1bGVCYXNlPiA+JiBjaGlsZFJ1bGVz
KCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZFJ1bGVzOyB9CiAgICAgY29uc3QgVmVjdG9yPFJlZlB0
cjxTdHlsZVJ1bGVJbXBvcnQ+ID4mIGltcG9ydFJ1bGVzKCkgY29uc3QgeyByZXR1cm4gbV9pbXBv
cnRSdWxlczsgfQpAQCAtMTIyLDggKzEyMCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBLVVJMJiBi
YXNlVVJMKCkgY29uc3QgeyByZXR1cm4gbV9wYXJzZXJDb250ZXh0LmJhc2VVUkw7IH0KIAogICAg
IHVuc2lnbmVkIHJ1bGVDb3VudCgpIGNvbnN0OwotICAgIFN0eWxlUnVsZUJhc2UqIHJ1bGVBdCh1
bnNpZ25lZCBpbmRleCkgY29uc3Q7Ci0KKyAgICAKICAgICBib29sIHVzZXNSZW1Vbml0cygpIGNv
bnN0IHsgcmV0dXJuIG1fdXNlc1JlbVVuaXRzOyB9CiAKICAgICB1bnNpZ25lZCBlc3RpbWF0ZWRT
aXplSW5CeXRlcygpIGNvbnN0OwpAQCAtMTMxLDI0ICsxMjgsMTkgQEAgcHVibGljOgogICAgIGJv
b2wgd3JhcHBlckluc2VydFJ1bGUoUGFzc1JlZlB0cjxTdHlsZVJ1bGVCYXNlPiwgdW5zaWduZWQg
aW5kZXgpOwogICAgIHZvaWQgd3JhcHBlckRlbGV0ZVJ1bGUodW5zaWduZWQgaW5kZXgpOwogCisg
ICAgUGFzc1JlZlB0cjxDU1NSdWxlPiBjcmVhdGVDaGlsZFJ1bGVDU1NPTVdyYXBwZXIodW5zaWdu
ZWQgaW5kZXgsIENTU1N0eWxlU2hlZXQqIHBhcmVudFdyYXBwZXIpOworCiAgICAgUGFzc1JlZlB0
cjxTdHlsZVNoZWV0SW50ZXJuYWw+IGNvcHkoKSBjb25zdCB7IHJldHVybiBhZG9wdFJlZihuZXcg
U3R5bGVTaGVldEludGVybmFsKCp0aGlzKSk7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJDbGllbnQo
Q1NTU3R5bGVTaGVldCopOwogICAgIHZvaWQgdW5yZWdpc3RlckNsaWVudChDU1NTdHlsZVNoZWV0
Kik7Ci0gICAgYm9vbCBoYXNPbmVDbGllbnQoKSB7IHJldHVybiBtX2NsaWVudHMuc2l6ZSgpID09
IDE7IH0KLQotICAgIGJvb2wgaXNNdXRhYmxlKCkgY29uc3QgeyByZXR1cm4gbV9pc011dGFibGU7
IH0KLSAgICB2b2lkIHNldE11dGFibGUoKSB7IG1faXNNdXRhYmxlID0gdHJ1ZTsgfQotCi0gICAg
Ym9vbCBpc0luTWVtb3J5Q2FjaGUoKSBjb25zdCB7IHJldHVybiBtX2lzSW5NZW1vcnlDYWNoZTsg
fQotICAgIHZvaWQgYWRkZWRUb01lbW9yeUNhY2hlKCk7Ci0gICAgdm9pZCByZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7CiAKIHByaXZhdGU6CiAgICAgU3R5bGVTaGVldEludGVybmFsKFN0eWxlUnVs
ZUltcG9ydCogb3duZXJSdWxlLCBjb25zdCBTdHJpbmcmIG9yaWdpbmFsVVJMLCBjb25zdCBLVVJM
JiBiYXNlVVJMLCBjb25zdCBDU1NQYXJzZXJDb250ZXh0Jik7CiAgICAgU3R5bGVTaGVldEludGVy
bmFsKGNvbnN0IFN0eWxlU2hlZXRJbnRlcm5hbCYpOwogCiAgICAgdm9pZCBjbGVhckNoYXJzZXRS
dWxlKCk7CisgICAgYm9vbCBoYXNDaGFyc2V0UnVsZSgpIGNvbnN0IHsgcmV0dXJuICFtX2VuY29k
aW5nRnJvbUNoYXJzZXRSdWxlLmlzTnVsbCgpOyB9CiAKICAgICBTdHlsZVJ1bGVJbXBvcnQqIG1f
b3duZXJSdWxlOwogCkBAIC0xNjYsOCArMTU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1faGFz
U3ludGFjdGljYWxseVZhbGlkQ1NTSGVhZGVyIDogMTsKICAgICBib29sIG1fZGlkTG9hZEVycm9y
T2NjdXIgOiAxOwogICAgIGJvb2wgbV91c2VzUmVtVW5pdHMgOiAxOwotICAgIGJvb2wgbV9pc011
dGFibGUgOiAxOwotICAgIGJvb2wgbV9pc0luTWVtb3J5Q2FjaGUgOiAxOworICAgIGJvb2wgbV9o
YXNNdXRhdGVkIDogMTsKICAgICAKICAgICBDU1NQYXJzZXJDb250ZXh0IG1fcGFyc2VyQ29udGV4
dDsKIApAQCAtMjE2LDI4ICsyMDcsMTMgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc0xv
YWRpbmcoKSBjb25zdCBPVkVSUklERSB7IHJldHVybiBtX2ludGVybmFsLT5pc0xvYWRpbmcoKTsg
fQogICAgIAogICAgIHZvaWQgY2xlYXJPd25lclJ1bGUoKSB7IG1fb3duZXJSdWxlID0gMDsgfQor
ICAgIHZvaWQgc3R5bGVTaGVldENoYW5nZWQoKSB7IG1faW50ZXJuYWwtPnN0eWxlU2hlZXRDaGFu
Z2VkKCk7IH0KICAgICBEb2N1bWVudCogb3duZXJEb2N1bWVudCgpIGNvbnN0OwogICAgIE1lZGlh
UXVlcnlTZXQqIG1lZGlhUXVlcmllcygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFRdWVyaWVzLmdl
dCgpOyB9CiAgICAgdm9pZCBzZXRNZWRpYVF1ZXJpZXMoUGFzc1JlZlB0cjxNZWRpYVF1ZXJ5U2V0
Pik7CiAgICAgdm9pZCBzZXRUaXRsZShjb25zdCBTdHJpbmcmIHRpdGxlKSB7IG1fdGl0bGUgPSB0
aXRsZTsgfQotCi0gICAgY2xhc3MgUnVsZU11dGF0aW9uU2NvcGUgewotICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShSdWxlTXV0YXRpb25TY29wZSk7Ci0gICAgcHVibGljOgotICAgICAgICBS
dWxlTXV0YXRpb25TY29wZShDU1NTdHlsZVNoZWV0Kik7Ci0gICAgICAgIFJ1bGVNdXRhdGlvblNj
b3BlKENTU1J1bGUqKTsKLSAgICAgICAgflJ1bGVNdXRhdGlvblNjb3BlKCk7Ci0KLSAgICBwcml2
YXRlOgotICAgICAgICBDU1NTdHlsZVNoZWV0KiBtX3N0eWxlU2hlZXQ7Ci0gICAgfTsKLQotICAg
IHZvaWQgd2lsbE11dGF0ZVJ1bGVzKCk7Ci0gICAgdm9pZCBkaWRNdXRhdGVSdWxlcygpOwotICAg
IHZvaWQgZGlkTXV0YXRlKCk7CiAgICAgCiAgICAgdm9pZCBjbGVhckNoaWxkUnVsZUNTU09NV3Jh
cHBlcnMoKTsKLSAgICB2b2lkIHJlYXR0YWNoQ2hpbGRSdWxlQ1NTT01XcmFwcGVycygpOwogCiAg
ICAgU3R5bGVTaGVldEludGVybmFsKiBpbnRlcm5hbCgpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJu
YWwuZ2V0KCk7IH0KIApAQCAtMjYxLDI2ICsyMzcsNiBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
T3duUHRyPENTU1J1bGVMaXN0PiBtX3J1bGVMaXN0Q1NTT01XcmFwcGVyOwogfTsKIAotaW5saW5l
IENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlOjpSdWxlTXV0YXRpb25TY29wZShDU1NT
dHlsZVNoZWV0KiBzaGVldCkKLSAgICA6IG1fc3R5bGVTaGVldChzaGVldCkKLXsKLSAgICBpZiAo
bV9zdHlsZVNoZWV0KQotICAgICAgICBtX3N0eWxlU2hlZXQtPndpbGxNdXRhdGVSdWxlcygpOwot
fQotCi1pbmxpbmUgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9uU2NvcGU6OlJ1bGVNdXRhdGlv
blNjb3BlKENTU1J1bGUqIHJ1bGUpCi0gICAgOiBtX3N0eWxlU2hlZXQocnVsZSA/IHJ1bGUtPnBh
cmVudFN0eWxlU2hlZXQoKSA6IDApCi17Ci0gICAgaWYgKG1fc3R5bGVTaGVldCkKLSAgICAgICAg
bV9zdHlsZVNoZWV0LT53aWxsTXV0YXRlUnVsZXMoKTsKLX0KLQotaW5saW5lIENTU1N0eWxlU2hl
ZXQ6OlJ1bGVNdXRhdGlvblNjb3BlOjp+UnVsZU11dGF0aW9uU2NvcGUoKQotewotICAgIGlmICht
X3N0eWxlU2hlZXQpCi0gICAgICAgIG1fc3R5bGVTaGVldC0+ZGlkTXV0YXRlUnVsZXMoKTsKLX0K
LQogfSAvLyBuYW1lc3BhY2UKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvTWVkaWFMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCmluZGV4
IDVmYzc5M2UzMTJiNTI4YjNkZmQ2ZWUwZjdiZGU4Y2M0MDMxZDBjMmMuLjU3YzZlYWExYWMzNGQ4
ODQ2YTYyNjY3NDBjMWQyZjcxOTA4ZDU5NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUxpc3QuY3BwCkBA
IC0yMzAsMTUgKzIzMCwxMiBAQCBNZWRpYUxpc3Q6On5NZWRpYUxpc3QoKQogCiB2b2lkIE1lZGlh
TGlzdDo6c2V0TWVkaWFUZXh0KGNvbnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogewotICAgIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlIG11dGF0aW9uU2NvcGUo
bV9wYXJlbnRSdWxlKTsKLQogICAgIGJvb2wgc3VjY2VzcyA9IG1fbWVkaWFRdWVyaWVzLT5wYXJz
ZSh2YWx1ZSk7CiAgICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIGVjID0gU1lOVEFYX0VSUjsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0KQotICAg
ICAgICBtX3BhcmVudFN0eWxlU2hlZXQtPmRpZE11dGF0ZSgpOworICAgIG5vdGlmeUNoYW5nZWQo
KTsKIH0KIAogU3RyaW5nIE1lZGlhTGlzdDo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKQEAg
LTI1MSwzNSArMjQ4LDMxIEBAIFN0cmluZyBNZWRpYUxpc3Q6Oml0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0CiAKIHZvaWQgTWVkaWFMaXN0OjpkZWxldGVNZWRpdW0oY29uc3QgU3RyaW5nJiBtZWRp
dW0sIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlv
blNjb3BlIG11dGF0aW9uU2NvcGUobV9wYXJlbnRSdWxlKTsKLQogICAgIGJvb2wgc3VjY2VzcyA9
IG1fbWVkaWFRdWVyaWVzLT5yZW1vdmUobWVkaXVtKTsKICAgICBpZiAoIXN1Y2Nlc3MpIHsKICAg
ICAgICAgZWMgPSBOT1RfRk9VTkRfRVJSOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlm
IChtX3BhcmVudFN0eWxlU2hlZXQpCi0gICAgICAgIG1fcGFyZW50U3R5bGVTaGVldC0+ZGlkTXV0
YXRlKCk7CisgICAgbm90aWZ5Q2hhbmdlZCgpOwogfQogCiB2b2lkIE1lZGlhTGlzdDo6YXBwZW5k
TWVkaXVtKGNvbnN0IFN0cmluZyYgbWVkaXVtLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICBD
U1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKG1fcGFyZW50UnVs
ZSk7Ci0KICAgICBib29sIHN1Y2Nlc3MgPSBtX21lZGlhUXVlcmllcy0+YWRkKG1lZGl1bSk7CiAg
ICAgaWYgKCFzdWNjZXNzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBTaG91bGQgdGhpcyByZWFsbHkg
YmUgSU5WQUxJRF9DSEFSQUNURVJfRVJSPwogICAgICAgICBlYyA9IElOVkFMSURfQ0hBUkFDVEVS
X0VSUjsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBpZiAobV9wYXJlbnRTdHlsZVNoZWV0
KQotICAgICAgICBtX3BhcmVudFN0eWxlU2hlZXQtPmRpZE11dGF0ZSgpOworICAgIG5vdGlmeUNo
YW5nZWQoKTsKIH0KIAotdm9pZCBNZWRpYUxpc3Q6OnJlYXR0YWNoKE1lZGlhUXVlcnlTZXQqIG1l
ZGlhUXVlcmllcykKK3ZvaWQgTWVkaWFMaXN0Ojpub3RpZnlDaGFuZ2VkKCkKIHsKLSAgICBBU1NF
UlQobWVkaWFRdWVyaWVzKTsKLSAgICBtX21lZGlhUXVlcmllcyA9IG1lZGlhUXVlcmllczsKKyAg
ICBDU1NTdHlsZVNoZWV0KiBwYXJlbnRTdHlsZVNoZWV0ID0gbV9wYXJlbnRSdWxlID8gbV9wYXJl
bnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkgOiBtX3BhcmVudFN0eWxlU2hlZXQ7CisgICAgaWYg
KCFwYXJlbnRTdHlsZVNoZWV0KQorICAgICAgICByZXR1cm47CisgICAgcGFyZW50U3R5bGVTaGVl
dC0+c3R5bGVTaGVldENoYW5nZWQoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhTGlzdC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhTGlzdC5oCmluZGV4
IDMyZDBlYzM3ZDNhODNkZWIxNTI1NTNiMTlkMGRkZGFlNzJiMzdjOGYuLjg4YmRjYTI0MmM5ZjA4
NWJhYzBhNGQ5ZjNiODEzYWU2YTMxM2RiZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYUxpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFMaXN0LmgKQEAgLTEw
NCwxMyArMTA0LDEzIEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyUGFyZW50UnVsZSgpIHsgQVNT
RVJUKG1fcGFyZW50UnVsZSk7IG1fcGFyZW50UnVsZSA9IDA7IH0KICAgICBjb25zdCBNZWRpYVF1
ZXJ5U2V0KiBxdWVyaWVzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVF1ZXJpZXMuZ2V0KCk7IH0K
IAotICAgIHZvaWQgcmVhdHRhY2goTWVkaWFRdWVyeVNldCopOwotCiBwcml2YXRlOgogICAgIE1l
ZGlhTGlzdCgpOwogICAgIE1lZGlhTGlzdChNZWRpYVF1ZXJ5U2V0KiwgQ1NTU3R5bGVTaGVldCog
cGFyZW50U2hlZXQpOwogICAgIE1lZGlhTGlzdChNZWRpYVF1ZXJ5U2V0KiwgQ1NTUnVsZSogcGFy
ZW50UnVsZSk7CiAKKyAgICB2b2lkIG5vdGlmeUNoYW5nZWQoKTsKKwogICAgIFJlZlB0cjxNZWRp
YVF1ZXJ5U2V0PiBtX21lZGlhUXVlcmllczsKICAgICBDU1NTdHlsZVNoZWV0KiBtX3BhcmVudFN0
eWxlU2hlZXQ7CiAgICAgQ1NTUnVsZSogbV9wYXJlbnRSdWxlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1Byb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRleCAzM2Yy
MWExMGFhZDI4YzhhZDE5MDhjNTMyYmViNmJlMmU0YjJmYTI4Li5iM2U2ZjFkOTNhM2Q2ZDA5Zjk5
MDE0ZmEyOWI1YTEyMDFjZGMyNzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvUHJv
cGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
UHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTUyLDE0ICsxNTIsMTEgQEAg
dm9pZCBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OnNldENzc1RleHQoY29uc3QgU3Ry
aW5nJiB0ZXh0LCBFeGNlcHRpb25Db2QKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJTKQog
ICAgIFN0eWxlQXR0cmlidXRlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKHRoaXMpOwogI2Vu
ZGlmCi0gICAgd2lsbE11dGF0ZSgpOwotCiAgICAgZWMgPSAwOwogICAgIC8vIEZJWE1FOiBEZXRl
Y3Qgc3ludGF4IGVycm9ycyBhbmQgc2V0IGVjLgogICAgIG1fcHJvcGVydHlTZXQtPnBhcnNlRGVj
bGFyYXRpb24odGV4dCwgY29udGV4dFN0eWxlU2hlZXQoKSk7CiAKLSAgICBkaWRNdXRhdGUoUHJv
cGVydHlDaGFuZ2VkKTsKLQorICAgIGRpZE11dGF0ZSgpOwogI2lmIEVOQUJMRShNVVRBVElPTl9P
QlNFUlZFUlMpCiAgICAgbXV0YXRpb25TY29wZS5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoKTsgICAg
CiAjZW5kaWYKQEAgLTIxNiwxOSArMjEzLDEzIEBAIHZvaWQgUHJvcGVydHlTZXRDU1NTdHlsZURl
Y2xhcmF0aW9uOjpzZXRQcm9wZXJ0eShjb25zdCBTdHJpbmcmIHByb3BlcnR5TmFtZSwgY29uCiAg
ICAgQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUlEID0gY3NzUHJvcGVydHlJRChwcm9wZXJ0eU5hbWUp
OwogICAgIGlmICghcHJvcGVydHlJRCkKICAgICAgICAgcmV0dXJuOwotCiAgICAgYm9vbCBpbXBv
cnRhbnQgPSBwcmlvcml0eS5maW5kKCJpbXBvcnRhbnQiLCAwLCBmYWxzZSkgIT0gbm90Rm91bmQ7
Ci0KLSAgICB3aWxsTXV0YXRlKCk7Ci0KICAgICBlYyA9IDA7CiAgICAgYm9vbCBjaGFuZ2VkID0g
bV9wcm9wZXJ0eVNldC0+c2V0UHJvcGVydHkocHJvcGVydHlJRCwgdmFsdWUsIGltcG9ydGFudCwg
Y29udGV4dFN0eWxlU2hlZXQoKSk7Ci0KLSAgICBkaWRNdXRhdGUoY2hhbmdlZCA/IFByb3BlcnR5
Q2hhbmdlZCA6IE5vQ2hhbmdlcyk7Ci0KICAgICBpZiAoY2hhbmdlZCkgewogICAgICAgICAvLyBD
U1MgRE9NIHJlcXVpcmVzIHJhaXNpbmcgU1lOVEFYX0VSUiBvZiBwYXJzaW5nIGZhaWxlZCwgYnV0
IHRoaXMgaXMgdG9vIGRhbmdlcm91cyBmb3IgY29tcGF0aWJpbGl0eSwKICAgICAgICAgLy8gc2Vl
IDxodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03Mjk2Pi4KKyAgICAgICAg
ZGlkTXV0YXRlKCk7CiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAgICAgbXV0
YXRpb25TY29wZS5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoKTsKICNlbmRpZgpAQCAtMjQzLDE2ICsy
MzQsMTEgQEAgU3RyaW5nIFByb3BlcnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbjo6cmVtb3ZlUHJv
cGVydHkoY29uc3QgU3RyaW5nJiBwcm9wZXJ0eU5hbWUKICAgICBDU1NQcm9wZXJ0eUlEIHByb3Bl
cnR5SUQgPSBjc3NQcm9wZXJ0eUlEKHByb3BlcnR5TmFtZSk7CiAgICAgaWYgKCFwcm9wZXJ0eUlE
KQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0KLSAgICB3aWxsTXV0YXRlKCk7Ci0KICAgICBl
YyA9IDA7CiAgICAgU3RyaW5nIHJlc3VsdDsKLSAgICBib29sIGNoYW5nZWQgPSBtX3Byb3BlcnR5
U2V0LT5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eUlELCAmcmVzdWx0KTsKLQotICAgIGRpZE11dGF0
ZShjaGFuZ2VkID8gUHJvcGVydHlDaGFuZ2VkIDogTm9DaGFuZ2VzKTsKLQotICAgIGlmIChjaGFu
Z2VkKSB7CisgICAgYm9vbCBjaGFuZ2VzID0gbV9wcm9wZXJ0eVNldC0+cmVtb3ZlUHJvcGVydHko
cHJvcGVydHlJRCwgJnJlc3VsdCk7CisgICAgaWYgKGNoYW5nZXMpIHsKKyAgICAgICAgZGlkTXV0
YXRlKCk7CiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAgICAgbXV0YXRpb25T
Y29wZS5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoKTsKICNlbmRpZgpAQCAtMjc1LDIwICsyNjEsMjIg
QEAgdm9pZCBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OnNldFByb3BlcnR5SW50ZXJu
YWwoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eUkKICNpZiBFTkFCTEUoTVVUQVRJT05fT0JTRVJWRVJT
KQogICAgIFN0eWxlQXR0cmlidXRlTXV0YXRpb25TY29wZSBtdXRhdGlvblNjb3BlKHRoaXMpOwog
I2VuZGlmCi0gICAgd2lsbE11dGF0ZSgpOwotCiAgICAgZWMgPSAwOwogICAgIGJvb2wgY2hhbmdl
ZCA9IG1fcHJvcGVydHlTZXQtPnNldFByb3BlcnR5KHByb3BlcnR5SUQsIHZhbHVlLCBpbXBvcnRh
bnQsIGNvbnRleHRTdHlsZVNoZWV0KCkpOwotCi0gICAgZGlkTXV0YXRlKGNoYW5nZWQgPyBQcm9w
ZXJ0eUNoYW5nZWQgOiBOb0NoYW5nZXMpOwotCiAgICAgaWYgKGNoYW5nZWQpIHsKKyAgICAgICAg
ZGlkTXV0YXRlKCk7CiAjaWYgRU5BQkxFKE1VVEFUSU9OX09CU0VSVkVSUykKICAgICAgICAgbXV0
YXRpb25TY29wZS5lbnF1ZXVlTXV0YXRpb25SZWNvcmQoKTsKICNlbmRpZgogICAgIH0KIH0KIAor
dm9pZCBQcm9wZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb246OmRpZE11dGF0ZSgpCit7CisgICAg
bV9jc3NvbUNTU1ZhbHVlQ2xvbmVzLmNsZWFyKCk7CisgICAgc2V0TmVlZHNTdHlsZVJlY2FsYygp
OworfQorCiBDU1NWYWx1ZSogUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uOjpjbG9uZUFu
ZENhY2hlRm9yQ1NTT00oQ1NTVmFsdWUqIGludGVybmFsVmFsdWUpCiB7CiAgICAgaWYgKCFpbnRl
cm5hbFZhbHVlKQpAQCAtMzUxLDIwICszMzksMTIgQEAgdm9pZCBTdHlsZVJ1bGVDU1NTdHlsZURl
Y2xhcmF0aW9uOjpkZXJlZigpCiAgICAgICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIFN0eWxl
UnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OndpbGxNdXRhdGUoKQotewotICAgIGlmIChtX3BhcmVu
dFJ1bGUgJiYgbV9wYXJlbnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1fcGFy
ZW50UnVsZS0+cGFyZW50U3R5bGVTaGVldCgpLT53aWxsTXV0YXRlUnVsZXMoKTsKLX0KLQotdm9p
ZCBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpkaWRNdXRhdGUoTXV0YXRpb25UeXBlIHR5
cGUpCit2b2lkIFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnNldE5lZWRzU3R5bGVSZWNh
bGMoKQogewotICAgIGlmICh0eXBlID09IFByb3BlcnR5Q2hhbmdlZCkKLSAgICAgICAgbV9jc3Nv
bUNTU1ZhbHVlQ2xvbmVzLmNsZWFyKCk7Ci0KLSAgICAvLyBTdHlsZSBzaGVldCBtdXRhdGlvbiBu
ZWVkcyB0byBiZSBzaWduYWxlZCBldmVuIGlmIHRoZSBjaGFuZ2UgZmFpbGVkLiB3aWxsTXV0YXRl
UnVsZXMvZGlkTXV0YXRlUnVsZXMgbXVzdCBwYWlyLgotICAgIGlmIChtX3BhcmVudFJ1bGUgJiYg
bV9wYXJlbnRSdWxlLT5wYXJlbnRTdHlsZVNoZWV0KCkpCi0gICAgICAgIG1fcGFyZW50UnVsZS0+
cGFyZW50U3R5bGVTaGVldCgpLT5kaWRNdXRhdGVSdWxlcygpOworICAgIGlmIChDU1NTdHlsZVNo
ZWV0KiBzdHlsZVNoZWV0ID0gcGFyZW50U3R5bGVTaGVldCgpKSB7CisgICAgICAgIGlmIChEb2N1
bWVudCogZG9jdW1lbnQgPSBzdHlsZVNoZWV0LT5vd25lckRvY3VtZW50KCkpCisgICAgICAgICAg
ICBkb2N1bWVudC0+c3R5bGVSZXNvbHZlckNoYW5nZWQoRGVmZXJSZWNhbGNTdHlsZSk7CisgICAg
fQogfQogCiBDU1NTdHlsZVNoZWV0KiBTdHlsZVJ1bGVDU1NTdHlsZURlY2xhcmF0aW9uOjpwYXJl
bnRTdHlsZVNoZWV0KCkgY29uc3QKQEAgLTM3MiwyNiArMzUyLDE0IEBAIENTU1N0eWxlU2hlZXQq
IFN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRpb246OnBhcmVudFN0eWxlU2hlZXQoKSBjb25zdAog
ICAgIHJldHVybiBtX3BhcmVudFJ1bGUgPyBtX3BhcmVudFJ1bGUtPnBhcmVudFN0eWxlU2hlZXQo
KSA6IDA7CiB9CiAKLXZvaWQgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbjo6cmVhdHRhY2go
U3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydHlTZXQpCi17Ci0gICAgQVNTRVJUKHByb3BlcnR5U2V0
KTsKLSAgICBtX3Byb3BlcnR5U2V0LT5kZXJlZigpOwotICAgIG1fcHJvcGVydHlTZXQgPSBwcm9w
ZXJ0eVNldDsKLSAgICBtX3Byb3BlcnR5U2V0LT5yZWYoKTsKLX0KLQotdm9pZCBJbmxpbmVDU1NT
dHlsZURlY2xhcmF0aW9uOjpkaWRNdXRhdGUoTXV0YXRpb25UeXBlIHR5cGUpCit2b2lkIElubGlu
ZUNTU1N0eWxlRGVjbGFyYXRpb246OnNldE5lZWRzU3R5bGVSZWNhbGMoKQogewotICAgIGlmICh0
eXBlID09IE5vQ2hhbmdlcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9jc3NvbUNTU1ZhbHVl
Q2xvbmVzLmNsZWFyKCk7Ci0KICAgICBpZiAoIW1fcGFyZW50RWxlbWVudCkKICAgICAgICAgcmV0
dXJuOwogICAgIG1fcGFyZW50RWxlbWVudC0+c2V0TmVlZHNTdHlsZVJlY2FsYyhJbmxpbmVTdHls
ZUNoYW5nZSk7CiAgICAgbV9wYXJlbnRFbGVtZW50LT5pbnZhbGlkYXRlU3R5bGVBdHRyaWJ1dGUo
KTsKICAgICBTdHlsZUF0dHJpYnV0ZU11dGF0aW9uU2NvcGUodGhpcykuZGlkSW52YWxpZGF0ZVN0
eWxlQXR0cigpOworICAgIHJldHVybjsKIH0KIAogQ1NTU3R5bGVTaGVldCogSW5saW5lQ1NTU3R5
bGVEZWNsYXJhdGlvbjo6cGFyZW50U3R5bGVTaGVldCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvUHJvcGVydHlTZXRDU1NTdHlsZURlY2xhcmF0aW9uLmgKaW5kZXggYmY5Njk0
YzJkZmFiOTQ2NTE1MGRiMTZlMzE0NDMyNWEwZmI1N2RlZi4uMmI4ZjQxMjk1ZTM5OTNlMmZlMzBj
M2UyNDY3ZDQxOGEyMDE2YjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1Byb3Bl
cnR5U2V0Q1NTU3R5bGVEZWNsYXJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Qcm9w
ZXJ0eVNldENTU1N0eWxlRGVjbGFyYXRpb24uaApAQCAtNjgsMTQgKzY4LDEyIEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIGNzc1Byb3BlcnR5TWF0Y2hlcyhjb25zdCBDU1NQcm9wZXJ0eSop
IGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTdHlsZVByb3BlcnR5U2V0
PiBjb3B5KCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFN0eWxlUHJv
cGVydHlTZXQ+IG1ha2VNdXRhYmxlKCkgT1ZFUlJJREU7Ci0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0
TmVlZHNTdHlsZVJlY2FsYygpIHsgfQorICAgIAorICAgIHZvaWQgZGlkTXV0YXRlKCk7CiAgICAg
Q1NTVmFsdWUqIGNsb25lQW5kQ2FjaGVGb3JDU1NPTShDU1NWYWx1ZSopOwogICAgIAogcHJvdGVj
dGVkOgotICAgIGVudW0gTXV0YXRpb25UeXBlIHsgTm9DaGFuZ2VzLCBQcm9wZXJ0eUNoYW5nZWQg
fTsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbE11dGF0ZSgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBk
aWRNdXRhdGUoTXV0YXRpb25UeXBlKSB7IH0KLQogICAgIFN0eWxlUHJvcGVydHlTZXQqIG1fcHJv
cGVydHlTZXQ7CiAgICAgT3duUHRyPEhhc2hNYXA8Q1NTVmFsdWUqLCBSZWZQdHI8Q1NTVmFsdWU+
ID4gPiBtX2Nzc29tQ1NTVmFsdWVDbG9uZXM7CiB9OwpAQCAtOTMsOCArOTEsNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlZigpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBkZXJl
ZigpIE9WRVJSSURFOwogCi0gICAgdm9pZCByZWF0dGFjaChTdHlsZVByb3BlcnR5U2V0Kik7Ci0K
IHByaXZhdGU6CiAgICAgU3R5bGVSdWxlQ1NTU3R5bGVEZWNsYXJhdGlvbihTdHlsZVByb3BlcnR5
U2V0KiwgQ1NTUnVsZSopOwogICAgIHZpcnR1YWwgflN0eWxlUnVsZUNTU1N0eWxlRGVjbGFyYXRp
b24oKTsKQEAgLTEwMiwxMCArOTgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQ1NTU3R5bGVT
aGVldCogcGFyZW50U3R5bGVTaGVldCgpIGNvbnN0IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBD
U1NSdWxlKiBwYXJlbnRSdWxlKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV9wYXJlbnRSdWxl
OyAgfQotCi0gICAgdmlydHVhbCB2b2lkIHdpbGxNdXRhdGUoKSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlkTXV0YXRlKE11dGF0aW9uVHlwZSkgT1ZFUlJJREU7Ci0KKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYygpIE9WRVJSSURFOworICAgIAogICAgIHVuc2lnbmVk
IG1fcmVmQ291bnQ7CiAgICAgQ1NTUnVsZSogbV9wYXJlbnRSdWxlOwogfTsKQEAgLTEyMyw4ICsx
MTcsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgQ1NTU3R5bGVTaGVldCogcGFyZW50U3R5bGVT
aGVldCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgU3R5bGVkRWxlbWVudCogcGFyZW50
RWxlbWVudCgpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIG1fcGFyZW50RWxlbWVudDsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbGVhclBhcmVudEVsZW1lbnQoKSBPVkVSUklERSB7IG1fcGFyZW50RWxl
bWVudCA9IDA7IH0KLQotICAgIHZpcnR1YWwgdm9pZCBkaWRNdXRhdGUoTXV0YXRpb25UeXBlKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTdHlsZVJlY2FsYygpIE9WRVJSSURF
OwogICAgIAogICAgIFN0eWxlZEVsZW1lbnQqIG1fcGFyZW50RWxlbWVudDsKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0eVNldC5jcHAKaW5kZXggMjJiODlhNjYxYjQ5YjQ0YjRhMGE1
MWM2NmJlNmE4MmYyY2IwYTI5Mi4uYTVjODgwNmJhNzUyYjE4ZjEwOWYzODA0Nzg3Yjg4ZDlmZjM5
NzNmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydHlTZXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnR5U2V0LmNwcApAQCAtMjMsNyAr
MjMsNiBAQAogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKIAogI2luY2x1ZGUgIkNTU1Bh
cnNlci5oIgotI2luY2x1ZGUgIkNTU1N0eWxlU2hlZXQuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtl
eXdvcmRzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVQ
b29sLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVz
UnVsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAK
aW5kZXggZGNkNzkwMzRmMzJhNmVlMTUwMjEyZWMwOTVhYzk5OGQ0MDc2ZWIwMS4uY2JmOTdkNWZh
NjRhMDYzMmE4NDZiMDg0NjJhNDcwNTAwYWI2ZTNhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcApAQCAtMjgsNyArMjgsNiBAQAogCiAjaW5jbHVk
ZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKLSNpbmNsdWRlICJDU1NT
dHlsZVNoZWV0LmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlN0
eWxlU2hlZXQuaCIKICNpbmNsdWRlICJXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCIKQEAgLTEwNSw5
ICsxMDQsMTIgQEAgV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZTo6fldlYktpdENTU0tleWZyYW1lc1J1
bGUoKQogCiB2b2lkIFdlYktpdENTU0tleWZyYW1lc1J1bGU6OnNldE5hbWUoY29uc3QgU3RyaW5n
JiBuYW1lKQogewotICAgIENTU1N0eWxlU2hlZXQ6OlJ1bGVNdXRhdGlvblNjb3BlIG11dGF0aW9u
U2NvcGUodGhpcyk7Ci0KICAgICBtX2tleWZyYW1lc1J1bGUtPnNldE5hbWUobmFtZSk7CisKKyAg
ICAvLyBTaW5jZSB0aGUgbmFtZSBpcyB1c2VkIGluIHRoZSBrZXlmcmFtZSBtYXAgbGlzdCBpbiBT
dHlsZVJlc29sdmVyLCB3ZSBuZWVkCisgICAgLy8gdG8gcmVjb21wdXRlIHRoZSBzdHlsZSBzaGVl
dCB0byBnZXQgdGhlIHVwZGF0ZWQgbmFtZS4KKyAgICBpZiAoQ1NTU3R5bGVTaGVldCogc3R5bGVT
aGVldCA9IHBhcmVudFN0eWxlU2hlZXQoKSkKKyAgICAgICAgc3R5bGVTaGVldC0+c3R5bGVTaGVl
dENoYW5nZWQoKTsKIH0KIAogdm9pZCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjppbnNlcnRSdWxl
KGNvbnN0IFN0cmluZyYgcnVsZVRleHQpCkBAIC0xMjAsOCArMTIyLDYgQEAgdm9pZCBXZWJLaXRD
U1NLZXlmcmFtZXNSdWxlOjppbnNlcnRSdWxlKGNvbnN0IFN0cmluZyYgcnVsZVRleHQpCiAgICAg
aWYgKCFrZXlmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ1NTU3R5bGVTaGVldDo6UnVs
ZU11dGF0aW9uU2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKLQogICAgIG1fa2V5ZnJhbWVzUnVs
ZS0+d3JhcHBlckFwcGVuZEtleWZyYW1lKGtleWZyYW1lKTsKIAogICAgIG1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycy5ncm93KGxlbmd0aCgpKTsKQEAgLTEzNSw4ICsxMzUsNiBAQCB2b2lkIFdlYktp
dENTU0tleWZyYW1lc1J1bGU6OmRlbGV0ZVJ1bGUoY29uc3QgU3RyaW5nJiBzKQogICAgIGlmIChp
IDwgMCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ1NTU3R5bGVTaGVldDo6UnVsZU11dGF0aW9u
U2NvcGUgbXV0YXRpb25TY29wZSh0aGlzKTsKLQogICAgIG1fa2V5ZnJhbWVzUnVsZS0+d3JhcHBl
clJlbW92ZUtleWZyYW1lKGkpOwogCiAgICAgaWYgKG1fY2hpbGRSdWxlQ1NTT01XcmFwcGVyc1tp
XSkKQEAgLTE5MiwxMCArMTkwLDQgQEAgQ1NTUnVsZUxpc3QqIFdlYktpdENTU0tleWZyYW1lc1J1
bGU6OmNzc1J1bGVzKCkKICAgICByZXR1cm4gbV9ydWxlTGlzdENTU09NV3JhcHBlci5nZXQoKTsK
IH0KIAotdm9pZCBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlOjpyZWF0dGFjaChTdHlsZVJ1bGVLZXlm
cmFtZXMqIHJ1bGUpCi17Ci0gICAgQVNTRVJUKHJ1bGUpOwotICAgIG1fa2V5ZnJhbWVzUnVsZSA9
IHJ1bGU7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5oCmluZGV4IDJmOTM2NWM4MGViMDk1MzJiZDM1NjM1ODgx
ODdjYTQ0OWY5ZDNjMTYuLjgxYWJmODc5YWIzODIxOTVmOWVkNjhmZWI2MjZhZGM0M2FiZmQ4Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuaApAQCAtODcs
OCArODcsNiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAgICAgV2Vi
S2l0Q1NTS2V5ZnJhbWVSdWxlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKIAotICAgIHZv
aWQgcmVhdHRhY2goU3R5bGVSdWxlS2V5ZnJhbWVzKik7Ci0KIHByaXZhdGU6CiAgICAgV2ViS2l0
Q1NTS2V5ZnJhbWVzUnVsZShTdHlsZVJ1bGVLZXlmcmFtZXMqLCBDU1NTdHlsZVNoZWV0KiBwYXJl
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAKaW5kZXgg
Njc3YTlmODFjZTlhYzZkMDI2MjgwOGNjZTllZDJhYTYxYjlkOGJhNi4uZGYxYzliMDc5ZDc4MTA5
NDFkOTM2YTNlYmM3MGFjNGVjNmJlNjBjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1dlYktpdENTU1JlZ2lvblJ1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9XZWJLaXRD
U1NSZWdpb25SdWxlLmNwcApAQCAtOTYsMTQgKzk2LDUgQEAgQ1NTUnVsZUxpc3QqIFdlYktpdENT
U1JlZ2lvblJ1bGU6OmNzc1J1bGVzKCkgY29uc3QKICAgICByZXR1cm4gbV9ydWxlTGlzdENTU09N
V3JhcHBlci5nZXQoKTsKIH0KIAotdm9pZCBXZWJLaXRDU1NSZWdpb25SdWxlOjpyZWF0dGFjaChT
dHlsZVJ1bGVSZWdpb24qIHJ1bGUpCi17Ci0gICAgQVNTRVJUKHJ1bGUpOwotICAgIG1fcmVnaW9u
UnVsZSA9IHJ1bGU7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRSdWxlQ1NT
T01XcmFwcGVycy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAobV9jaGlsZFJ1bGVDU1NPTVdy
YXBwZXJzW2ldKQotICAgICAgICAgICAgbV9jaGlsZFJ1bGVDU1NPTVdyYXBwZXJzW2ldLT5yZWF0
dGFjaChtX3JlZ2lvblJ1bGUtPmNoaWxkUnVsZXMoKVtpXS5nZXQoKSk7Ci0gICAgfQotfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvV2Vi
S2l0Q1NTUmVnaW9uUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU1JlZ2lvblJ1
bGUuaAppbmRleCAxOTg3ZWYyY2FkZTE4MDI5Yzc1NjVjYjQ3N2E4ZjhiN2QxNTE0YmFiLi5mZjU3
NjIzODRhMTU0ZDg3N2Y4ZjliN2Y4ZGY5OGViZTYwN2M0YjViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9XZWJLaXRDU1NSZWdpb25SdWxlLmgKQEAgLTUzLDggKzUzLDYgQEAgcHVibGljOgogICAgIHVu
c2lnbmVkIGxlbmd0aCgpIGNvbnN0OwogICAgIENTU1J1bGUqIGl0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0OwogCi0gICAgdm9pZCByZWF0dGFjaChTdHlsZVJ1bGVSZWdpb24qKTsKLQogcHJpdmF0
ZToKICAgICBXZWJLaXRDU1NSZWdpb25SdWxlKFN0eWxlUnVsZVJlZ2lvbiosIENTU1N0eWxlU2hl
ZXQqIHBhcmVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JTdHlsZVNoZWV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JT
dHlsZVNoZWV0LmNwcAppbmRleCAwNTY1ZmY0NGUyNDhiOTMzZDdhNWJkOTkwZDc0MDJlOGIxNmZj
YmRmLi4zMmE1YzIyZWE4NTBkZjRhNzRjZjNjMjc0OGVhYWUwOTNkODMwZTQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yU3R5bGVTaGVldC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclN0eWxlU2hlZXQuY3BwCkBAIC03MTgs
MTAgKzcxOCwxMCBAQCBTdHJpbmcgSW5zcGVjdG9yU3R5bGVTaGVldDo6ZmluYWxVUkwoKSBjb25z
dAogCiB2b2lkIEluc3BlY3RvclN0eWxlU2hlZXQ6OnJlcGFyc2VTdHlsZVNoZWV0KGNvbnN0IFN0
cmluZyYgdGV4dCkKIHsKLSAgICBDU1NTdHlsZVNoZWV0OjpSdWxlTXV0YXRpb25TY29wZSBtdXRh
dGlvblNjb3BlKG1fcGFnZVN0eWxlU2hlZXQuZ2V0KCkpOwogICAgIG1fcGFnZVN0eWxlU2hlZXQt
PmludGVybmFsKCktPmNsZWFyUnVsZXMoKTsKICAgICBtX3BhZ2VTdHlsZVNoZWV0LT5pbnRlcm5h
bCgpLT5wYXJzZVN0cmluZyh0ZXh0KTsKICAgICBtX3BhZ2VTdHlsZVNoZWV0LT5jbGVhckNoaWxk
UnVsZUNTU09NV3JhcHBlcnMoKTsKKyAgICBtX3BhZ2VTdHlsZVNoZWV0LT5zdHlsZVNoZWV0Q2hh
bmdlZCgpOwogICAgIG1faW5zcGVjdG9yU3R5bGVzLmNsZWFyKCk7CiAgICAgZmlyZVN0eWxlU2hl
ZXRDaGFuZ2VkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkQ1NTU3R5bGVTaGVldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkQ1NTU3R5bGVTaGVldC5jcHAKaW5kZXggZWEzZDA0YWVmYzMxMDJmM2EwMTQ3NWE2ZTdkNjMy
YmQ0ZmQyNjg4Ny4uNDFmYTYxNzQ0NThkODlkY2M0NjRlMTI1OTQ1ZGRjMDM1ZTUwYzczZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZENTU1N0eWxlU2hlZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRDU1NTdHlsZVNoZWV0
LmNwcApAQCAtNTAsOCArNTAsNiBAQCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpDYWNoZWRDU1NTdHls
ZVNoZWV0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LAogCiBDYWNoZWRD
U1NTdHlsZVNoZWV0Ojp+Q2FjaGVkQ1NTU3R5bGVTaGVldCgpCiB7Ci0gICAgaWYgKG1fcGFyc2Vk
U3R5bGVTaGVldENhY2hlKQotICAgICAgICBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+cmVtb3Zl
ZEZyb21NZW1vcnlDYWNoZSgpOwogfQogCiB2b2lkIENhY2hlZENTU1N0eWxlU2hlZXQ6OmRpZEFk
ZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKQEAgLTE1NSwxMiArMTUzLDcgQEAgYm9v
bCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpjYW5Vc2VTaGVldChib29sIGVuZm9yY2VNSU1FVHlwZSwg
Ym9vbCogaGFzVmFsaWRNSU1FVHkKIAogdm9pZCBDYWNoZWRDU1NTdHlsZVNoZWV0OjpkZXN0cm95
RGVjb2RlZERhdGEoKQogewotICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5yZW1vdmVkRnJvbU1l
bW9yeUNhY2hlKCk7CiAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsKLQogICAg
IHNldERlY29kZWRTaXplKDApOwogfQogCkBAIC0xNjgsMjYgKzE2MSwyNSBAQCBQYXNzUmVmUHRy
PFN0eWxlU2hlZXRJbnRlcm5hbD4gQ2FjaGVkQ1NTU3R5bGVTaGVldDo6cmVzdG9yZVBhcnNlZFN0
eWxlU2hlZXQoY29ucwogewogICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIEFTU0VSVChtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+aXNDYWNo
ZWFibGUoKSk7Ci0gICAgQVNTRVJUKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlLT5pc0luTWVtb3J5
Q2FjaGUoKSk7Ci0KKyAgICAvLyBDYWNoZWQgcGFyc2VkIHN0eWxlc2hlZXQgaGFzIG11dGF0ZWQs
IGtpY2sgaXQgb3V0LgorICAgIGlmICghbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmlzQ2FjaGVh
YmxlKCkpIHsKKyAgICAgICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUuY2xlYXIoKTsKKyAgICAg
ICAgc2V0RGVjb2RlZFNpemUoMCk7CisgICAgICAgIHJldHVybiAwOworICAgIH0KICAgICAvLyBD
b250ZXh0cyBtdXN0IGJlIGlkZW50aWNhbCBzbyB3ZSBrbm93IHdlIHdvdWxkIGdldCB0aGUgc2Ft
ZSBleGFjdCByZXN1bHQgaWYgd2UgcGFyc2VkIGFnYWluLgogICAgIGlmIChtX3BhcnNlZFN0eWxl
U2hlZXRDYWNoZS0+cGFyc2VyQ29udGV4dCgpICE9IGNvbnRleHQpCiAgICAgICAgIHJldHVybiAw
OwogCiAgICAgZGlkQWNjZXNzRGVjb2RlZERhdGEoY3VycmVudFRpbWUoKSk7Ci0KLSAgICByZXR1
cm4gbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGU7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjb3B5
LW9uLXdyaXRlIHRvIGF2b2lkIGNvcHlpbmcgd2hlbiBub3QgbmVjZXNzYXJ5LgorICAgIHJldHVy
biBtX3BhcnNlZFN0eWxlU2hlZXRDYWNoZS0+Y29weSgpOwogfQogCiB2b2lkIENhY2hlZENTU1N0
eWxlU2hlZXQ6OnNhdmVQYXJzZWRTdHlsZVNoZWV0KFBhc3NSZWZQdHI8U3R5bGVTaGVldEludGVy
bmFsPiBzaGVldCkKIHsKICAgICBBU1NFUlQoc2hlZXQgJiYgc2hlZXQtPmlzQ2FjaGVhYmxlKCkp
OwotCi0gICAgaWYgKG1fcGFyc2VkU3R5bGVTaGVldENhY2hlKQotICAgICAgICBtX3BhcnNlZFN0
eWxlU2hlZXRDYWNoZS0+cmVtb3ZlZEZyb21NZW1vcnlDYWNoZSgpOwogICAgIG1fcGFyc2VkU3R5
bGVTaGVldENhY2hlID0gc2hlZXQ7Ci0gICAgbV9wYXJzZWRTdHlsZVNoZWV0Q2FjaGUtPmFkZGVk
VG9NZW1vcnlDYWNoZSgpOwogCiAgICAgc2V0RGVjb2RlZFNpemUobV9wYXJzZWRTdHlsZVNoZWV0
Q2FjaGUtPmVzdGltYXRlZFNpemVJbkJ5dGVzKCkpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGM5YzU4MzAxOTQ4ZGQy
OGJjYjVjOTQyZjk1ZGFiNmIzMzA4ZjUzMmYuLjI1NDIxYTE0MzFmNzgxODYxZTY3OWRlN2Q3YTJj
MWM5ZTlmNThjZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMi0wNS0wNiAgU2hlcmlmZiBC
b3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgcjExNjIzNS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFu
Z2VzZXQvMTE2MjM1CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NTc3MworCisgICAgICAgIGJyb2tlIGEgbG90IG9mIHRlc3RzIG9uIGFsbCBjaHJvbWl1
bSBkZWJ1ZyBib3RzIChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgY2FzZXFfIG9uICN3ZWJraXQpLgor
CisgICAgICAgICogaHR0cC90ZXN0cy9jc3MvcmVzb3VyY2VzL3NoYXJlZC1zdHlsZXNoZWV0LW11
dGF0aW9uLmpzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY3NzL3Jlc291cmNlcy9z
aGFyZWQuY3NzOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY3NzL3NoYXJlZC1zdHls
ZXNoZWV0LW11dGF0aW9uLWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2Nzcy9zaGFyZWQtc3R5bGVzaGVldC1tdXRhdGlvbi1wcmVjb25zdHJ1Y3QtZXhwZWN0ZWQu
dHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvY3NzL3NoYXJlZC1zdHlsZXNoZWV0
LW11dGF0aW9uLXByZWNvbnN0cnVjdC5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvY3NzL3NoYXJlZC1zdHlsZXNoZWV0LW11dGF0aW9uLmh0bWw6IFJlbW92ZWQuCisKIDIwMTIt
MDUtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBDU1Agdmlv
bGF0aW9uIHJlcG9ydHMgc2hvdWxkIGhhdmUgYWxsIHRoZSBmaWVsZHMgcmVxdWlyZWQgYnkgdGhl
IHNwZWMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY3NzL3Jlc291cmNlcy9z
aGFyZWQtc3R5bGVzaGVldC1tdXRhdGlvbi5qcyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY3Nz
L3Jlc291cmNlcy9zaGFyZWQtc3R5bGVzaGVldC1tdXRhdGlvbi5qcwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTcyYjE3N2FlZmNmYmVmYzZmMTFlYmM1MjdhYjgxMDU5YjAyYmM3ZS4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2Nzcy9yZXNvdXJjZXMvc2hhcmVkLXN0eWxlc2hlZXQtbXV0YXRpb24uanMK
KysrIC9kZXYvbnVsbApAQCAtMSwxNDAgKzAsMCBAQAotdmFyIHRlc3RDb3VudCA9IDE3OwotdmFy
IHRlc3REb2N1bWVudHMgPSBbXTsKLXZhciB0ZXN0U2hlZXRzID0gW107Ci12YXIgZXhwZWN0ZWRS
ZXN1bHRzID0gW107Ci0KLWZ1bmN0aW9uIGJ1aWxkVGVzdEZyYW1lKGNvbnRlbnQpCi17Ci0gICAg
dmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGlmcmFt
ZS5zZXRBdHRyaWJ1dGUoIndpZHRoIiwgIjEwMCIpOwotICAgIGlmcmFtZS5zZXRBdHRyaWJ1dGUo
ImhlaWdodCIsICI1MCIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsK
LSAgICB2YXIgaWZyYW1lRG9jdW1lbnQgPSBpZnJhbWUuY29udGVudERvY3VtZW50OwotICAgIGlm
cmFtZURvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gY29udGVudDsKLSAgICByZXR1cm4gaWZyYW1l
RG9jdW1lbnQ7Ci19Ci0KLWZ1bmN0aW9uIGJ1aWxkVGVzdEZyYW1lcyhjb250ZW50KQotewotICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdENvdW50OyArK2kpCi0gICAgICAgIHRlc3REb2N1bWVu
dHMucHVzaChidWlsZFRlc3RGcmFtZShjb250ZW50KSk7Ci19Ci0KLWZ1bmN0aW9uIHByaW50UnVs
ZXMocnVsZUxpc3QpCi17Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBydWxlTGlzdC5sZW5ndGg7
ICsraSkKLSAgICAgICAgZGVidWcocnVsZUxpc3RbaV0uY3NzVGV4dCk7Ci19Ci0KLWZ1bmN0aW9u
IHByaW50VGVzdFJlc3VsdHMoaW5kZXgpCi17Ci0gICAgdGVzdEVsZW1lbnQgPSB0ZXN0RG9jdW1l
bnRzW2luZGV4XS5nZXRFbGVtZW50QnlJZCgndGVzdGRpdicpOwotICAgIAotICAgIGRlYnVnKCJU
ZXN0ICIgKyBpbmRleCk7Ci0gICAgZGVidWcoIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tIik7Ci0gICAgc2hvdWxkQmUoImdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQs
IG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSIsIGV4cGVjdGVkUmVz
dWx0c1tpbmRleF0pOwotICAgIGRlYnVnKCIiKTsKLSAgICBwcmludFJ1bGVzKHRlc3RTaGVldHNb
aW5kZXhdLmNzc1J1bGVzKTsKLSAgICBkZWJ1ZygiIik7Ci19Ci0KLWZ1bmN0aW9uIGZpbmlzaGVk
VGVzdHMoKQotewotICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGVzdFNoZWV0cy5sZW5ndGg7ICsr
aSkKLSAgICAgICAgcHJpbnRUZXN0UmVzdWx0cyhpKTsKLSAgICAKLSAgICBmaW5pc2hKU1Rlc3Qo
KTsKLX0KLQotZnVuY3Rpb24gZW5zdXJlQ1NTT00ocnVsZUxpc3QpCi17Ci0gICAgLy8gVG91Y2gg
YWxsIENTU09NIG9iamVjdHMgdG8gZm9yY2Ugd3JhcHBlciBjcmVhdGlvbi4KLSAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IHJ1bGVMaXN0Lmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHJ1bGVMaXN0W2ld
LnN0eWxlOwotICAgICAgICBydWxlTGlzdFtpXS5tZWRpYTsKLSAgICAgICAgcnVsZUxpc3RbaV0u
c2VsZWN0b3JUZXh0OwotICAgICAgICBydWxlTGlzdFtpXS5uYW1lOwotICAgICAgICBydWxlTGlz
dFtpXS5rZXlUZXh0OwotICAgICAgICBydWxlTGlzdFtpXS5jc3NUZXh0OwotICAgICAgICBpZiAo
cnVsZUxpc3RbaV0uY3NzUnVsZXMpCi0gICAgICAgICAgICBlbnN1cmVDU1NPTShydWxlTGlzdFtp
XS5jc3NSdWxlcyk7Ci0gICAgfQotfQotCi1mdW5jdGlvbiBtdXRhdGlvblRlc3QoaW5kZXgsIHRl
c3RTdHJpbmcsIGV4cGVjdENvbG9yKQotewotICAgIHZhciBzaGVldCA9IHRlc3RTaGVldHNbaW5k
ZXhdOwotICAgIGV2YWwodGVzdFN0cmluZyk7Ci0gICAgZXhwZWN0ZWRSZXN1bHRzW2luZGV4XSA9
IGV4cGVjdENvbG9yID09ICJyZWQiID8gIidyZ2IoMjU1LCAwLCAwKSciIDogIidyZ2IoMCwgMTI4
LCAwKSciOwotfQotCi1mdW5jdGlvbiBleGVjdXRlVGVzdHMoY3JlYXRlQ1NTT01PYmplY3RCZWZv
cmVUZXN0KQotewotICAgIGlmIChjcmVhdGVDU1NPTU9iamVjdEJlZm9yZVRlc3QpIHsKLSAgICAg
ICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0U2hlZXRzLmxlbmd0aDsgKytpKQotICAgICAgICAg
ICAgZW5zdXJlQ1NTT00odGVzdFNoZWV0c1tpXS5jc3NSdWxlcyk7Ci0gICAgfQotCi0gICAgbXV0
YXRpb25UZXN0KDAsICcnLCAncmVkJyk7Ci0KLSAgICBtdXRhdGlvblRlc3QoMSwgJ3NoZWV0Lmlu
c2VydFJ1bGUoIiN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0iLCAzKScsICdn
cmVlbicpOwotICAgIG11dGF0aW9uVGVzdCgyLCAnc2hlZXQuZGVsZXRlUnVsZSgyKScpOwotICAg
IG11dGF0aW9uVGVzdCgzLCAnc2hlZXQuY3NzUnVsZXNbMl0uaW5zZXJ0UnVsZSgiI3Rlc3RkaXYg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfSIsIDEpJywgJ2dyZWVuJyk7Ci0gICAgbXV0YXRp
b25UZXN0KDQsICdzaGVldC5jc3NSdWxlc1syXS5kZWxldGVSdWxlKDApJywgJ2dyZWVuJyk7Ci0g
ICAgbXV0YXRpb25UZXN0KDUsICdzaGVldC5jc3NSdWxlc1syXS5jc3NSdWxlc1swXS5zdHlsZS5z
ZXRQcm9wZXJ0eSgiYmFja2dyb3VuZC1jb2xvciIsICJncmVlbiIsICIiKScsICdncmVlbicpOwot
ICAgIG11dGF0aW9uVGVzdCg2LCAnc2hlZXQuY3NzUnVsZXNbMl0uY3NzUnVsZXNbMF0uc3R5bGUu
cmVtb3ZlUHJvcGVydHkoImJhY2tncm91bmQtY29sb3IiKScsICdncmVlbicpOwotICAgIG11dGF0
aW9uVGVzdCg3LCAnc2hlZXQuY3NzUnVsZXNbMl0uY3NzUnVsZXNbMF0uc3R5bGUuY3NzVGV4dCA9
ICJiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbiInLCAnZ3JlZW4nKTsKLSAgICBtdXRhdGlvblRlc3Qo
OCwgJ3NoZWV0LmNzc1J1bGVzWzJdLmNzc1J1bGVzWzBdLnNlbGVjdG9yVGV4dCA9ICIjZG9udG1h
dGNoIicsICdncmVlbicpOwotICAgIG11dGF0aW9uVGVzdCg5LCAnc2hlZXQuY3NzUnVsZXNbMl0u
bWVkaWEubWVkaWFUZXh0ID0gInByaW50IicsICdncmVlbicpOwotICAgIAotICAgIHZhciB0ZXN0
U3RyaW5nID0gJ1wKLSAgICAgICAgc2hlZXQuY3NzUnVsZXNbMl0ubWVkaWEuYXBwZW5kTWVkaXVt
KCJwcmludCIpO1wKLSAgICAgICAgc2hlZXQuY3NzUnVsZXNbMl0ubWVkaWEuZGVsZXRlTWVkaXVt
KCJhbGwiKTtcCi0gICAgJzsKLSAgICBtdXRhdGlvblRlc3QoMTAsIHRlc3RTdHJpbmcsICdncmVl
bicpOwotICAgIAotICAgIHZhciB0ZXN0U3RyaW5nID0gJ1wKLSAgICAgICAgc2hlZXQuZGVsZXRl
UnVsZSgzKTtcCi0gICAgICAgIHNoZWV0Lmluc2VydFJ1bGUoIiN0ZXN0ZGl2IHsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47IH0iLCAxKTtcCi0gICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoMik7XAot
ICAgICAgICBzaGVldC5kZWxldGVSdWxlKDApO1wKLSAgICAgICAgc2hlZXQuZGVsZXRlUnVsZSgz
KTtcCi0gICAgICAgIHNoZWV0LmRlbGV0ZVJ1bGUoMSk7XAotICAgICAgICBzaGVldC5kZWxldGVS
dWxlKDEpO1wKLSAgICAnOwotICAgIG11dGF0aW9uVGVzdCgxMSwgdGVzdFN0cmluZywgJ2dyZWVu
Jyk7Ci0KLSAgICB2YXIgaW1wb3J0UnVsZSA9ICdAaW1wb3J0ICJkYXRhOnRleHQvY3NzO2NoYXJz
ZXQ9dXRmLTgsJTIzdGVzdGRpdiU3QmJhY2tncm91bmQtY29sb3IlM0FncmVlbiUyMCFpbXBvcnRh
bnQlN0QiOyc7Ci0gICAgbXV0YXRpb25UZXN0KDEyLCAic2hlZXQuaW5zZXJ0UnVsZSgnIitpbXBv
cnRSdWxlKyInLCAxKSIsICdncmVlbicpOwotCi0gICAgbXV0YXRpb25UZXN0KDEzLCAnc2hlZXQu
Y3NzUnVsZXNbM10uc2VsZWN0b3JUZXh0ID0gImZvbyInLCAncmVkJyk7Ci0gICAgbXV0YXRpb25U
ZXN0KDE0LCAnc2hlZXQuY3NzUnVsZXNbNF0uaW5zZXJ0UnVsZSgiNDAlIHsgbGVmdDogNDBweDsg
fSIpJywgJ3JlZCcpOwotICAgIG11dGF0aW9uVGVzdCgxNSwgJ3NoZWV0LmNzc1J1bGVzWzRdLmRl
bGV0ZVJ1bGUoIjEwMCUiKScsICdyZWQnKTsKLSAgICBtdXRhdGlvblRlc3QoMTYsICdzaGVldC5j
c3NSdWxlc1s1XS5zdHlsZS5zZXRQcm9wZXJ0eSgiZm9udC1mYW1pbHkiLCAiQmFyIiwgIiIpJywg
J3JlZCcpOwotCi0gICAgc2V0VGltZW91dChmaW5pc2hlZFRlc3RzLCA1MCk7Ci19Ci0KLWZ1bmN0
aW9uIHJ1blRlc3RzQWZ0ZXJMb2FkQ29tcGxldGUoY3JlYXRlQ1NTT01PYmplY3RCZWZvcmVUZXN0
KQotewotICAgIHZhciBjb21wbGV0ZSA9IHRydWU7Ci0gICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
ZXN0RG9jdW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgIHZhciBzaGVldCA9IHRlc3REb2N1
bWVudHNbaV0uc3R5bGVTaGVldHMubGVuZ3RoID09IDEgPyB0ZXN0RG9jdW1lbnRzW2ldLnN0eWxl
U2hlZXRzWzBdIDogbnVsbDsKLSAgICAgICAgaWYgKHNoZWV0KQotICAgICAgICAgICAgdGVzdFNo
ZWV0c1tpXSA9IHNoZWV0OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0ZSA9IGZh
bHNlOwotICAgIH0KLSAgICBpZiAoIWNvbXBsZXRlKSB7Ci0gICAgICAgIHNldFRpbWVvdXQocnVu
VGVzdHNBZnRlckxvYWRDb21wbGV0ZSwgMTApOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAg
IGV4ZWN1dGVUZXN0cyhjcmVhdGVDU1NPTU9iamVjdEJlZm9yZVRlc3QpOwotfQotCi1mdW5jdGlv
biBydW5UZXN0cyhjcmVhdGVDU1NPTU9iamVjdEJlZm9yZVRlc3QpCi17Ci0gICAgYnVpbGRUZXN0
RnJhbWVzKCI8bGluayByZWw9c3R5bGVzaGVldCBocmVmPXJlc291cmNlcy9zaGFyZWQuY3NzPjxk
aXYgaWQ9dGVzdGRpdj5UZXN0PC9kaXY+Iik7Ci0KLSAgICBydW5UZXN0c0FmdGVyTG9hZENvbXBs
ZXRlKGNyZWF0ZUNTU09NT2JqZWN0QmVmb3JlVGVzdCk7Ci19CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2Nzcy9yZXNvdXJjZXMvc2hhcmVkLmNzcyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvY3NzL3Jlc291cmNlcy9zaGFyZWQuY3NzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBjZjY3ZjczOGM3OWMyN2ZmZDM4ZDdkYTJiZDFlNzk1NDMyNzc0MTE4Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvY3NzL3Jlc291cmNlcy9zaGFyZWQuY3NzCisrKyAvZGV2L251bGwKQEAgLTEsMTUgKzAs
MCBAQAotQGNoYXJzZXQgJ3V0Zi04JzsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47IH0KLUBtZWRpYSBhbGwgewotICAgICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogcmVk
OyB9Ci19Ci1AcGFnZSA6cmlnaHQgewotICBtYXJnaW4tbGVmdDogM2NtOwotfQotQC13ZWJraXQt
a2V5ZnJhbWVzIGJvdW5jZSB7Ci0gICAgZnJvbSB7IGxlZnQ6IDBweDsgfQotICAgIHRvIHsgbGVm
dDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgewotICBmb250LWZhbWlseTogRm9vOwotfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jc3Mvc2hhcmVkLXN0eWxlc2hlZXQtbXV0
YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jc3Mvc2hhcmVkLXN0
eWxlc2hlZXQtbXV0YXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBlZDE1YzA1MDUyOTE2OWMwYWRlZGNiNDcyMGRhMTQ5ZThmNjQxNmNmLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvY3NzL3NoYXJlZC1zdHlsZXNoZWV0LW11dGF0aW9uLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDI3MCArMCwwIEBACi1UaGUgdGVzdCBsb2FkcyB0aGUgc2FtZSBzdHlsZXNoZWV0
IHRvIGRpZmZlcmVudCBmcmFtZXMgYW5kIHRoZW4gbXV0YXRlcyB0aGVtLiBUaGUgbXV0YXRpb25z
IHNob3VsZCBub3QgYWZmZWN0IG90aGVyIGZyYW1lcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgotCi0KLVRlc3QgMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1
ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScKLQotQGNoYXJzZXQgInV0
Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwg
eyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KLX0KLUBwYWdlIDpyaWdo
dCB7IG1hcmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgeyAKLSAg
MCUgeyBsZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Ci19Ci1AZm9udC1mYWNl
IHsgZm9udC1mYW1pbHk6IEZvbzsgfQotCi1UZXN0IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwp
LmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCkn
Ci0KLUBjaGFyc2V0ICJ1dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyB9Ci1AbWVkaWEgYWxsIHsgCi0gICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9
Ci19Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AcGFnZSA6cmlnaHQg
eyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAl
IHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7
IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCAyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5n
ZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJwot
Ci1AY2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsg
fQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVz
IGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0K
LX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgMwotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdy
Z2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7IH0KLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQot
fQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVz
IGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0K
LX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgNAotLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0
RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdy
Z2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3Vu
ZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwgeyAKLX0KLUBwYWdlIDpyaWdodCB7IG1hcmdp
bi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgeyAKLSAgMCUgeyBsZWZ0
OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Ci19Ci1AZm9udC1mYWNlIHsgZm9udC1m
YW1pbHk6IEZvbzsgfQotCi1UZXN0IDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFByb3Bl
cnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCi0KLUBjaGFy
c2V0ICJ1dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVk
aWEgYWxsIHsgCi0gICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLX0KLUBw
YWdlIDpyaWdodCB7IG1hcmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3Vu
Y2UgeyAKLSAgMCUgeyBsZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Ci19Ci1A
Zm9udC1mYWNlIHsgZm9udC1mYW1pbHk6IEZvbzsgfQotCi1UZXN0IDYKLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1l
bnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAs
IDEyOCwgMCknCi0KLUBjaGFyc2V0ICJ1dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29s
b3I6IGdyZWVuOyB9Ci1AbWVkaWEgYWxsIHsgCi0gICN0ZXN0ZGl2IHsgfQotfQotQHBhZ2UgOnJp
Z2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAot
ICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZh
Y2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVs
bCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAw
KScKLQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3Jl
ZW47IH0KLUBtZWRpYSBhbGwgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgfQotfQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5
ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAw
cHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgOAotLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHls
ZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicp
IGlzICdyZ2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFj
a2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwgeyAKLSAgI2RvbnRtYXRjaCB7IGJh
Y2tncm91bmQtY29sb3I6IHJlZDsgfQotfQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNj
bTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQot
ICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9v
OyB9Ci0KLVRlc3QgOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgn
YmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQgInV0Zi04
IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBwcmludCB7
IAotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQotfQotQHBhZ2UgOnJpZ2h0
IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAw
JSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2Ug
eyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwp
LmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCkn
Ci0KLUBjaGFyc2V0ICJ1dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyB9Ci1AbWVkaWEgcHJpbnQgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7
IH0KLX0KLUBwYWdlIDpyaWdodCB7IG1hcmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZy
YW1lcyBib3VuY2UgeyAKLSAgMCUgeyBsZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4
OyB9Ci19Ci1AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6IEZvbzsgfQotCi1UZXN0IDExCi0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxl
KHRlc3RFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykg
aXMgJ3JnYigwLCAxMjgsIDApJwotCi0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVu
OyB9Ci0KLVRlc3QgMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
QVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
J2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCi0KLUBjaGFyc2V0ICJ1dGYt
OCI7Ci1AaW1wb3J0IHVybCgiZGF0YTp0ZXh0L2NzcztjaGFyc2V0PXV0Zi04LCUyM3Rlc3RkaXYl
N0JiYWNrZ3JvdW5kLWNvbG9yJTNBZ3JlZW4lMjAhaW1wb3J0YW50JTdEIikgOwotI3Rlc3RkaXYg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAotICAjdGVzdGRpdiB7
IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQotfQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6
IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsg
fQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTog
Rm9vOyB9Ci0KLVRlc3QgMTMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ci1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFs
dWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDI1NSwgMCwgMCknCi0KLUBjaGFyc2V0ICJ1
dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVkaWEgYWxs
IHsgCi0gICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSBmb28g
eyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAl
IHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7
IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCAxNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCku
Z2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScK
LQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IH0KLUBtZWRpYSBhbGwgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0K
LX0KLUBwYWdlIDpyaWdodCB7IG1hcmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1l
cyBib3VuY2UgeyAKLSAgMCUgeyBsZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9
Ci0gIDQwJSB7IGxlZnQ6IDQwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9v
OyB9Ci0KLVRlc3QgMTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1Q
QVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUo
J2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDI1NSwgMCwgMCknCi0KLUBjaGFyc2V0ICJ1dGYt
OCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVkaWEgYWxsIHsg
Ci0gICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSA6cmlnaHQg
eyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAl
IHsgbGVmdDogMHB4OyB9Ci19Ci1AZm9udC1mYWNlIHsgZm9udC1mYW1pbHk6IEZvbzsgfQotCi1U
ZXN0IDE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBnZXRD
b21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3Jv
dW5kLWNvbG9yJykgaXMgJ3JnYigyNTUsIDAsIDApJwotCi1AY2hhcnNldCAidXRmLTgiOwotI3Rl
c3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAotICAjdGVz
dGRpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQotfQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2lu
LWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6
IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZh
bWlseTogQmFyOyB9Ci0KLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBD
T01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nzcy9zaGFyZWQt
c3R5bGVzaGVldC1tdXRhdGlvbi1wcmVjb25zdHJ1Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9jc3Mvc2hhcmVkLXN0eWxlc2hlZXQtbXV0YXRpb24tcHJlY29uc3RydWN0
LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQxNWMwNTA1Mjkx
NjljMGFkZWRjYjQ3MjBkYTE0OWU4ZjY0MTZjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nzcy9zaGFyZWQtc3R5
bGVzaGVldC1tdXRhdGlvbi1wcmVjb25zdHJ1Y3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMjcwICswLDAgQEAKLVRoZSB0ZXN0IGxvYWRzIHRoZSBzYW1lIHN0eWxlc2hlZXQgdG8g
ZGlmZmVyZW50IGZyYW1lcyBhbmQgdGhlbiBtdXRhdGVzIHRoZW0uIFRoZSBtdXRhdGlvbnMgc2hv
dWxkIG5vdCBhZmZlY3Qgb3RoZXIgZnJhbWVzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUg
YSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIu
Ci0KLQotVGVzdCAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFT
UyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdi
YWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigyNTUsIDAsIDApJwotCi1AY2hhcnNldCAidXRmLTgi
OwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAot
ICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQotfQotQHBhZ2UgOnJpZ2h0IHsg
bWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7
IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBm
b250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKLQot
QGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0K
LUBtZWRpYSBhbGwgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KLX0K
LSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBwYWdlIDpyaWdodCB7IG1h
cmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgeyAKLSAgMCUgeyBs
ZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Ci19Ci1AZm9udC1mYWNlIHsgZm9u
dC1mYW1pbHk6IEZvbzsgfQotCi1UZXN0IDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFBy
b3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAncmdiKDAsIDEyOCwgMCknCi0KLUBj
aGFyc2V0ICJ1dGYtOCI7Ci0jdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1A
cGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91
bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQot
QGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCAzCi0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVt
ZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigw
LCAxMjgsIDApJwotCi1AY2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29s
b3I6IHJlZDsgfQotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci19Ci1A
cGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91
bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQot
QGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCA0Ci0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVt
ZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigw
LCAxMjgsIDApJwotCi1AY2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAotfQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxl
ZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBw
eDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWls
eTogRm9vOyB9Ci0KLVRlc3QgNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlW
YWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQg
InV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBh
bGwgeyAKLSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotfQotQHBhZ2Ug
OnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJvdW5jZSB7
IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLX0KLUBmb250
LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgNgotLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwg
bnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4
LCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjog
Z3JlZW47IH0KLUBtZWRpYSBhbGwgeyAKLSAgI3Rlc3RkaXYgeyB9Ci19Ci1AcGFnZSA6cmlnaHQg
eyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAl
IHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7
IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5n
ZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJwot
Ci1AY2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsg
fQotQG1lZGlhIGFsbCB7IAotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9
Ci19Ci1AcGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFt
ZXMgYm91bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsg
fQotfQotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCA4Ci0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRl
c3RFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMg
J3JnYigwLCAxMjgsIDApJwotCi1AY2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIGFsbCB7IAotICAjZG9udG1hdGNoIHsgYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVmdDogM2NtOyB9
Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4OyB9Ci0gIDEw
MCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287IH0K
LQotVGVzdCA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5nZXRQcm9wZXJ0eVZhbHVlKCdiYWNr
Z3JvdW5kLWNvbG9yJykgaXMgJ3JnYigwLCAxMjgsIDApJwotCi1AY2hhcnNldCAidXRmLTgiOwot
I3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQotQG1lZGlhIHByaW50IHsgCi0g
ICN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSA6cmlnaHQgeyBt
YXJnaW4tbGVmdDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAlIHsg
bGVmdDogMHB4OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7IGZv
bnQtZmFtaWx5OiBGb287IH0KLQotVGVzdCAxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLVBBU1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0
UHJvcGVydHlWYWx1ZSgnYmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKLQot
QGNoYXJzZXQgInV0Zi04IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0K
LUBtZWRpYSBwcmludCB7IAotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQot
fQotQHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVz
IGJvdW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0K
LX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3QgMTEKLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1QQVNTIGdldENvbXB1dGVkU3R5bGUodGVz
dEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQtY29sb3InKSBpcyAn
cmdiKDAsIDEyOCwgMCknCi0KLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0K
LQotVGVzdCAxMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFj
a2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMCwgMTI4LCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsK
LUBpbXBvcnQgdXJsKCJkYXRhOnRleHQvY3NzO2NoYXJzZXQ9dXRmLTgsJTIzdGVzdGRpdiU3QmJh
Y2tncm91bmQtY29sb3IlM0FncmVlbiUyMCFpbXBvcnRhbnQlN0QiKSA7Ci0jdGVzdGRpdiB7IGJh
Y2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVkaWEgYWxsIHsgCi0gICN0ZXN0ZGl2IHsgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVmdDogM2Nt
OyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4OyB9Ci0g
IDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287
IH0KLQotVGVzdCAxMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBB
U1MgZ2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgn
YmFja2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScKLQotQGNoYXJzZXQgInV0Zi04
IjsKLSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwgeyAK
LSAgI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KLX0KLUBwYWdlIGZvbyB7IG1h
cmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgeyAKLSAgMCUgeyBs
ZWZ0OiAwcHg7IH0KLSAgMTAwJSB7IGxlZnQ6IDIwMHB4OyB9Ci19Ci1AZm9udC1mYWNlIHsgZm9u
dC1mYW1pbHk6IEZvbzsgfQotCi1UZXN0IDE0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotUEFTUyBnZXRDb21wdXRlZFN0eWxlKHRlc3RFbGVtZW50LCBudWxsKS5nZXRQ
cm9wZXJ0eVZhbHVlKCdiYWNrZ3JvdW5kLWNvbG9yJykgaXMgJ3JnYigyNTUsIDAsIDApJwotCi1A
Y2hhcnNldCAidXRmLTgiOwotI3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQot
QG1lZGlhIGFsbCB7IAotICAjdGVzdGRpdiB7IGJhY2tncm91bmQtY29sb3I6IHJlZDsgfQotfQot
QHBhZ2UgOnJpZ2h0IHsgbWFyZ2luLWxlZnQ6IDNjbTsgfQotQC13ZWJraXQta2V5ZnJhbWVzIGJv
dW5jZSB7IAotICAwJSB7IGxlZnQ6IDBweDsgfQotICAxMDAlIHsgbGVmdDogMjAwcHg7IH0KLSAg
NDAlIHsgbGVmdDogNDBweDsgfQotfQotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiBGb287IH0K
LQotVGVzdCAxNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVBBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZSh0ZXN0RWxlbWVudCwgbnVsbCkuZ2V0UHJvcGVydHlWYWx1ZSgnYmFj
a2dyb3VuZC1jb2xvcicpIGlzICdyZ2IoMjU1LCAwLCAwKScKLQotQGNoYXJzZXQgInV0Zi04IjsK
LSN0ZXN0ZGl2IHsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47IH0KLUBtZWRpYSBhbGwgeyAKLSAg
I3Rlc3RkaXYgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KLX0KLUBwYWdlIDpyaWdodCB7IG1h
cmdpbi1sZWZ0OiAzY207IH0KLUAtd2Via2l0LWtleWZyYW1lcyBib3VuY2UgeyAKLSAgMCUgeyBs
ZWZ0OiAwcHg7IH0KLX0KLUBmb250LWZhY2UgeyBmb250LWZhbWlseTogRm9vOyB9Ci0KLVRlc3Qg
MTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1QQVNTIGdldENvbXB1
dGVkU3R5bGUodGVzdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2JhY2tncm91bmQt
Y29sb3InKSBpcyAncmdiKDI1NSwgMCwgMCknCi0KLUBjaGFyc2V0ICJ1dGYtOCI7Ci0jdGVzdGRp
diB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9Ci1AbWVkaWEgYWxsIHsgCi0gICN0ZXN0ZGl2
IHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9Ci19Ci1AcGFnZSA6cmlnaHQgeyBtYXJnaW4tbGVm
dDogM2NtOyB9Ci1ALXdlYmtpdC1rZXlmcmFtZXMgYm91bmNlIHsgCi0gIDAlIHsgbGVmdDogMHB4
OyB9Ci0gIDEwMCUgeyBsZWZ0OiAyMDBweDsgfQotfQotQGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5
OiBCYXI7IH0KLQotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBM
RVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvY3NzL3NoYXJlZC1zdHls
ZXNoZWV0LW11dGF0aW9uLXByZWNvbnN0cnVjdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9jc3Mvc2hhcmVkLXN0eWxlc2hlZXQtbXV0YXRpb24tcHJlY29uc3RydWN0Lmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ4NGYwMjBhMDhiMjQxOGRjZTlkN2IyNTllOTIxMTVj
MmJhMWFlYjQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jc3Mvc2hhcmVkLXN0eWxlc2hlZXQtbXV0YXRpb24tcHJl
Y29uc3RydWN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMSArMCwwIEBACi08c2NyaXB0Pmpz
VGVzdElzQXN5bmMgPSB0cnVlOzwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291
cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC1zdHlsZXNoZWV0LW11dGF0aW9uLmpzIj48L3NjcmlwdD4KLTxib2R5PgotPHNjcmlwdD4K
LWRlc2NyaXB0aW9uKCJUaGUgdGVzdCBsb2FkcyB0aGUgc2FtZSBzdHlsZXNoZWV0IHRvIGRpZmZl
cmVudCBmcmFtZXMgYW5kIHRoZW4gbXV0YXRlcyB0aGVtLiBUaGUgbXV0YXRpb25zIHNob3VsZCBu
b3QgYWZmZWN0IG90aGVyIGZyYW1lcy4iKTsKLQotdmFyIGNyZWF0ZUNTU09NT2JqZWN0QmVmb3Jl
VGVzdCA9IHRydWU7Ci1ydW5UZXN0cyhjcmVhdGVDU1NPTU9iamVjdEJlZm9yZVRlc3QpOwotPC9z
Y3JpcHQ+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Nzcy9zaGFyZWQt
c3R5bGVzaGVldC1tdXRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9jc3Mvc2hh
cmVkLXN0eWxlc2hlZXQtbXV0YXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjMxYzlmZTk1ZGE3OTNmNjY4ZWI5OWFkYmI1ZDBlNGQ3Y2I3YWQ5MC4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2Nzcy9zaGFyZWQtc3R5bGVzaGVldC1tdXRhdGlvbi5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MTEgKzAsMCBAQAotPHNjcmlwdD5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTs8L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQtc3R5bGVzaGVldC1tdXRhdGlvbi5qcyI+PC9zY3Jp
cHQ+Ci08Ym9keT4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGhlIHRlc3QgbG9hZHMgdGhlIHNh
bWUgc3R5bGVzaGVldCB0byBkaWZmZXJlbnQgZnJhbWVzIGFuZCB0aGVuIG11dGF0ZXMgdGhlbS4g
VGhlIG11dGF0aW9ucyBzaG91bGQgbm90IGFmZmVjdCBvdGhlciBmcmFtZXMuIik7Ci0KLXZhciBj
cmVhdGVDU1NPTU9iamVjdEJlZm9yZVRlc3QgPSBmYWxzZTsKLXJ1blRlc3RzKGNyZWF0ZUNTU09N
T2JqZWN0QmVmb3JlVGVzdCk7Ci08L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
</data>
<flag name="commit-queue"
          id="146356"
          type_id="3"
          status="-"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>