<?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>75769</bug_id>
          
          <creation_ts>2012-01-06 22:35:08 -0800</creation_ts>
          <short_desc>REGRESSION(r104373): Too many assertion failures. (Requested by kling on #webkit).</short_desc>
          <delta_ts>2012-01-06 22:47:11 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>75437</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>kling</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531598</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 22:35:08 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/104373 broke the build:
Too many assertion failures. (Requested by kling 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>531599</commentid>
    <comment_count>1</comment_count>
      <attachid>121537</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 22:35:39 -0800</bug_when>
    <thetext>Created attachment 121537
ROLLOUT of r104373

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>531603</commentid>
    <comment_count>2</comment_count>
      <attachid>121537</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 22:47:07 -0800</bug_when>
    <thetext>Comment on attachment 121537
ROLLOUT of r104373

Clearing flags on attachment: 121537

Committed r104376: &lt;http://trac.webkit.org/changeset/104376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531604</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-06 22:47:11 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121537</attachid>
            <date>2012-01-06 22:35:39 -0800</date>
            <delta_ts>2012-01-06 22:47:07 -0800</delta_ts>
            <desc>ROLLOUT of r104373</desc>
            <filename>bug-75769-20120107063624.patch</filename>
            <type>text/plain</type>
            <size>50910</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0Mzc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmU2ZTQwMzBkODg3NDhh
ZDQ3MDFiNGYyNjcxMjNmYzZlY2ZkYzEzZC4uY2E2MDNhMWM4ODc4ZjljN2YzYjk0Nzk4YTYzODQ0
MjBlNmNkNTY4YSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExNCBAQAorMjAxMi0wMS0wNiAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEwNDM3MyBhbmQgcjEwNDM3NC4KKyAgICAgICAgaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0MzczCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzEwNDM3NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzU3NjkKKworICAgICAgICBUb28gbWFueSBhc3NlcnRpb24gZmFpbHVy
ZXMuIChSZXF1ZXN0ZWQgYnkga2xpbmcgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpuYW1lZEl0ZW1H
ZXR0ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjpuYW1lR2V0dGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTSFRNTERvY3VtZW50OjphbGwpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1
c3RvbS9WOERPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOERPTVdpbmRv
dzo6bmFtZWRQcm9wZXJ0eUdldHRlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SFRNTERvY3VtZW50
OjpHZXROYW1lZFByb3BlcnR5KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RG9jdW1lbnQ6On5Eb2N1bWVudCk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1
bWVudDo6b3BlblNlYXJjaERlc2NyaXB0aW9uVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjpjYWNoZWRDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjppbWFn
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmFwcGxldHMpOgorICAgICAgICAoV2Vi
Q29yZTo6RG9jdW1lbnQ6OmVtYmVkcyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGx1
Z2lucyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b2JqZWN0cyk6CisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6
bGlua3MpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmZvcm1zKToKKyAgICAgICAgKFdl
YkNvcmU6OkRvY3VtZW50OjphbmNob3JzKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojph
bGwpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndpbmRvd05hbWVkSXRlbXMpOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRvY3VtZW50TmFtZWRJdGVtcyk6CisgICAgICAgICog
ZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RWxlbWVudDo6fkVsZW1lbnQpOgorICAgICAgICAqIGRvbS9FbGVtZW50UmFyZURhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnRSYXJlRGF0YTo6Y2FjaGVkSFRNTENvbGxlY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFJhcmVEYXRhOjplbnN1cmVDYWNoZWRIVE1M
Q29sbGVjdGlvbik6CisgICAgICAgICogZG9tL05vZGVSYXJlRGF0YS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVJhcmVEYXRhOjpwcm9wZXJ0aWVzKToKKyAgICAgICAgKiBodG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbGxDb2xsZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFsbENvbGxlY3Rpb246Om5hbWVkSXRlbVdpdGhJ
bmRleCk6CisgICAgICAgICogaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5oOgorICAgICAgICAqIGh0
bWwvSFRNTENvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246
OkhUTUxDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OmRldGFjaEZyb21Ob2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjppbnZhbGlkYXRlQ2FjaGVJZk5lZWRl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpjYWxjTGVuZ3RoKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb2xsZWN0aW9uOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxl
Y3Rpb246Oml0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246Om5leHRJdGVt
KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW0pOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVDYWNoZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xs
ZWN0aW9uOjp0YWdzKToKKyAgICAgICAgKiBodG1sL0hUTUxDb2xsZWN0aW9uLmg6CisgICAgICAg
ICogaHRtbC9IVE1MRGF0YUxpc3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxE
YXRhTGlzdEVsZW1lbnQ6Om9wdGlvbnMpOgorICAgICAgICAqIGh0bWwvSFRNTERhdGFMaXN0RWxl
bWVudC5oOgorICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEVsZW1lbnQ6OmNoaWxkcmVuKToKKyAgICAgICAgKiBodG1sL0hUTUxFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTEZvcm1Db2xsZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZv
cm1Db2xsZWN0aW9uOjpjYWxjTGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtQ29s
bGVjdGlvbjo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246Omdl
dE5hbWVkSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246Om5hbWVk
SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246OnVwZGF0ZU5hbWVD
YWNoZSk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uaDoKKyAgICAgICAgKiBo
dG1sL0hUTUxGb3JtRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUVsZW1l
bnQ6On5IVE1MRm9ybUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1FbGVtZW50
OjplbGVtZW50cyk6CisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDoKKyAgICAgICAg
KiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0
RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24pOgorICAgICAgICAqIGh0bWwvSFRNTE1hcEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1hcEVsZW1lbnQ6OmltYWdlRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWFwRWxlbWVudDo6YXJlYXMpOgorICAgICAgICAqIGh0bWwv
SFRNTE1hcEVsZW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MTmFtZUNvbGxlY3Rpb246Oml0ZW1BZnRlcik6CisgICAg
ICAgICogaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxO
YW1lQ29sbGVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBodG1sL0hUTUxPcHRpb25zQ29sbGVj
dGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmFkZCk6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnJlbW92ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnNlbGVjdGVkSW5kZXgpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpzZXRTZWxlY3RlZEluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxPcHRpb25zQ29sbGVjdGlvbjo6c2V0TGVuZ3RoKToKKyAgICAgICAg
KiBodG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oOgorICAgICAgICAqIGh0bWwvSFRNTFByb3Bl
cnRpZXNDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29s
bGVjdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVj
dGlvbjo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bjo6aXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5h
bWVzKToKKyAgICAgICAgKiBodG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oOgorICAgICAg
ICAqIGh0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNl
bGVjdEVsZW1lbnQ6On5IVE1MU2VsZWN0RWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
U2VsZWN0RWxlbWVudDo6b3B0aW9ucyk6CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5oOgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MVGFibGVFbGVtZW50Ojp+SFRNTFRhYmxlRWxlbWVudCk6CisKIDIwMTItMDEtMDYg
IEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQgYnVpbGQgZml4IGFmdGVyIHIxMDQzNzMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggYTIzZDhiMjI1NjlhYzc0NDcwYzRk
MjE4NDBhZTJmMzM1YjE5MzY1Ny4uYzY4NWM3OGZhNWI5NmYxNDllN2RiNTk0Zjc0MzM4NjBlOWU0
MmQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcApAQCAtMTE1LDEwICsxMTUsMTAgQEAgc3RhdGljIEpTVmFsdWUgbmFtZWRJdGVtR2V0
dGVyKEV4ZWNTdGF0ZSogZXhlYywgSlNWYWx1ZSBzbG90QmFzZSwgY29uc3QgSWRlbnRpZmkKICAg
ICBBU1NFUlQoZG9jdW1lbnQpOwogICAgIEFTU0VSVChkb2N1bWVudC0+aXNIVE1MRG9jdW1lbnQo
KSk7CiAKLSAgICBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IGRvY3VtZW50LT53aW5kb3dO
YW1lZEl0ZW1zKGlkZW50aWZpZXJUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICBS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24gPSBkb2N1bWVudC0+d2luZG93TmFtZWRJ
dGVtcyhpZGVudGlmaWVyVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgaWYgKGNv
bGxlY3Rpb24tPmxlbmd0aCgpID09IDEpCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNP
YmosIGNvbGxlY3Rpb24tPmZpcnN0SXRlbSgpKTsKLSAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlz
T2JqLCBjb2xsZWN0aW9uKTsKKyAgICByZXR1cm4gdG9KUyhleGVjLCB0aGlzT2JqLCBjb2xsZWN0
aW9uLmdldCgpKTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAppbmRleCBmZDUxODQ1OWE3YTMwMmYxNGI3MmMx
NTJjNDEwYjhiMThhN2FiMTZiLi5jMDBhNTUxOTIzNTQ0ZmY3ODczMWQ5YmNkNjRjMTIwZDE0ODZk
NmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVu
dEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCkBAIC02MSw3ICs2MSw3IEBAIEpTVmFsdWUgSlNIVE1MRG9jdW1lbnQ6Om5h
bWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVlIHNsb3RCYXNlLCBjb25zdCBJZGVuCiAg
ICAgSlNIVE1MRG9jdW1lbnQqIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU0hUTUxEb2N1bWVudCo+
KGFzT2JqZWN0KHNsb3RCYXNlKSk7CiAgICAgSFRNTERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRp
Y19jYXN0PEhUTUxEb2N1bWVudCo+KHRoaXNPYmotPmltcGwoKSk7CiAKLSAgICBIVE1MQ29sbGVj
dGlvbiogY29sbGVjdGlvbiA9IGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbXMoaWRlbnRpZmll
clRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgIFJlZlB0cjxIVE1MQ29sbGVjdGlv
bj4gY29sbGVjdGlvbiA9IGRvY3VtZW50LT5kb2N1bWVudE5hbWVkSXRlbXMoaWRlbnRpZmllclRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogCiAgICAgdW5zaWduZWQgbGVuZ3RoID0gY29s
bGVjdGlvbi0+bGVuZ3RoKCk7CiAgICAgaWYgKCFsZW5ndGgpCkBAIC03Nyw3ICs3Nyw3IEBAIEpT
VmFsdWUgSlNIVE1MRG9jdW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBKU1ZhbHVl
IHNsb3RCYXNlLCBjb25zdCBJZGVuCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIHRoaXNPYmot
Pmdsb2JhbE9iamVjdCgpLCBub2RlKTsKICAgICB9IAogCi0gICAgcmV0dXJuIHRvSlMoZXhlYywg
dGhpc09iai0+Z2xvYmFsT2JqZWN0KCksIGNvbGxlY3Rpb24pOworICAgIHJldHVybiB0b0pTKGV4
ZWMsIHRoaXNPYmotPmdsb2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uLmdldCgpKTsKIH0KIAogLy8g
Q3VzdG9tIGF0dHJpYnV0ZXMKQEAgLTg5LDcgKzg5LDcgQEAgSlNWYWx1ZSBKU0hUTUxEb2N1bWVu
dDo6YWxsKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICAgICBpZiAodikKICAgICAgICAgcmV0dXJu
IHY7CiAKLSAgICByZXR1cm4gdG9KUyhleGVjLCBnbG9iYWxPYmplY3QoKSwgc3RhdGljX2Nhc3Q8
SFRNTERvY3VtZW50Kj4oaW1wbCgpKS0+YWxsKCkpOworICAgIHJldHVybiB0b0pTKGV4ZWMsIGds
b2JhbE9iamVjdCgpLCBzdGF0aWNfY2FzdDxIVE1MRG9jdW1lbnQqPihpbXBsKCkpLT5hbGwoKS5n
ZXQoKSk7CiB9CiAKIHZvaWQgSlNIVE1MRG9jdW1lbnQ6OnNldEFsbChFeGVjU3RhdGUqIGV4ZWMs
IEpTVmFsdWUgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhET01XaW5kb3dDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBiNzRiMjY0NDY3NGU0YzM1ZDYyOWNi
NzRlMTE0ZDkzNWM5ZGRhMDkxLi41YmRmZjE0NDU1YzVlODcxODFjYjRjN2QxMGY3ZGYwYzY4YjY3
YjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01X
aW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9W
OERPTVdpbmRvd0N1c3RvbS5jcHAKQEAgLTUxMiwxMSArNTEyLDExIEBAIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBWOERPTVdpbmRvdzo6bmFtZWRQcm9wZXJ0eUdldHRlcih2ODo6TG9jYWw8djg6OlN0
cmluZz4gbmFtCiAKICAgICBpZiAoZG9jICYmIGRvYy0+aXNIVE1MRG9jdW1lbnQoKSkgewogICAg
ICAgICBpZiAoc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4oZG9jKS0+aGFzTmFtZWRJdGVtKHBy
b3BOYW1lLmltcGwoKSkgfHwgZG9jLT5oYXNFbGVtZW50V2l0aElkKHByb3BOYW1lLmltcGwoKSkp
IHsKLSAgICAgICAgICAgIEhUTUxDb2xsZWN0aW9uKiBpdGVtcyA9IGRvYy0+d2luZG93TmFtZWRJ
dGVtcyhwcm9wTmFtZSk7CisgICAgICAgICAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGl0ZW1z
ID0gZG9jLT53aW5kb3dOYW1lZEl0ZW1zKHByb3BOYW1lKTsKICAgICAgICAgICAgIGlmIChpdGVt
cy0+bGVuZ3RoKCkgPj0gMSkgewogICAgICAgICAgICAgICAgIGlmIChpdGVtcy0+bGVuZ3RoKCkg
PT0gMSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRvVjgoaXRlbXMtPmZpcnN0SXRlbSgp
KTsKLSAgICAgICAgICAgICAgICByZXR1cm4gdG9WOChpdGVtcyk7CisgICAgICAgICAgICAgICAg
cmV0dXJuIHRvVjgoaXRlbXMucmVsZWFzZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhU
TUxEb2N1bWVudEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhIVE1MRG9jdW1lbnRDdXN0b20uY3BwCmluZGV4IDQxYWUwNzE3MTU1ZTUxN2QwOTA2MDljOTFj
OTU0MTYxZDZiM2U2NDcuLmFlZjM3Yzc4YmRlNmU3ODQwYTVjNWQ2NmJkZDM4ZTQ2M2MxODVhNzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEhUTUxEb2N1
bWVudEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4
SFRNTERvY3VtZW50Q3VzdG9tLmNwcApAQCAtNzksNyArNzksNyBAQCB2ODo6SGFuZGxlPHY4OjpW
YWx1ZT4gVjhIVE1MRG9jdW1lbnQ6OkdldE5hbWVkUHJvcGVydHkoSFRNTERvY3VtZW50KiBodG1s
RG9jdW1lbgogICAgIGlmICghaHRtbERvY3VtZW50LT5oYXNOYW1lZEl0ZW0oa2V5LmltcGwoKSkg
JiYgIWh0bWxEb2N1bWVudC0+aGFzRXh0cmFOYW1lZEl0ZW0oa2V5LmltcGwoKSkpCiAgICAgICAg
IHJldHVybiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4oKTsKIAotICAgIEhUTUxDb2xsZWN0aW9uKiBp
dGVtcyA9IGh0bWxEb2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1zKGtleSk7CisgICAgUmVmUHRy
PEhUTUxDb2xsZWN0aW9uPiBpdGVtcyA9IGh0bWxEb2N1bWVudC0+ZG9jdW1lbnROYW1lZEl0ZW1z
KGtleSk7CiAgICAgaWYgKCFpdGVtcy0+bGVuZ3RoKCkpCiAgICAgICAgIHJldHVybiB2ODo6SGFu
ZGxlPHY4OjpWYWx1ZT4oKTsKIApAQCAtOTIsNyArOTIsNyBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhIVE1MRG9jdW1lbnQ6OkdldE5hbWVkUHJvcGVydHkoSFRNTERvY3VtZW50KiBodG1sRG9j
dW1lbgogICAgICAgICByZXR1cm4gdG9WOChub2RlKTsKICAgICB9CiAKLSAgICByZXR1cm4gdG9W
OChpdGVtcyk7CisgICAgcmV0dXJuIHRvVjgoaXRlbXMucmVsZWFzZSgpKTsKIH0KIAogLy8gSFRN
TERvY3VtZW50IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDc2OThkMjQ3YzM5
MTk1MmE4Mzc2NTEyYWYxNjcwODkwMmEyYjlhOGMuLjY2ZmI0NzM4ZWNlZTA3MzIzNjFhMDk4Zjk5
M2YwNjg5ZmYzZTY0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNTY3LDYgKzU2Nywx
NCBAQCBEb2N1bWVudDo6fkRvY3VtZW50KCkKIAogICAgIGlmIChtX21lZGlhUXVlcnlNYXRjaGVy
KQogICAgICAgICBtX21lZGlhUXVlcnlNYXRjaGVyLT5kb2N1bWVudERlc3Ryb3llZCgpOworCisg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IE51bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVz
OyArK2kpIHsKKyAgICAgICAgaWYgKG1fY29sbGVjdGlvbnNbaV0pCisgICAgICAgICAgICBtX2Nv
bGxlY3Rpb25zW2ldLT5kZXRhY2hGcm9tTm9kZSgpOworICAgIH0KKworICAgIGlmIChtX2FsbENv
bGxlY3Rpb24pCisgICAgICAgIG1fYWxsQ29sbGVjdGlvbi0+ZGV0YWNoRnJvbU5vZGUoKTsKIH0K
IAogdm9pZCBEb2N1bWVudDo6cmVtb3ZlZExhc3RSZWYoKQpAQCAtNDE2OCw3ICs0MTc2LDcgQEAg
S1VSTCBEb2N1bWVudDo6b3BlblNlYXJjaERlc2NyaXB0aW9uVVJMKCkKICAgICBpZiAoIWhlYWQo
KSkKICAgICAgICAgcmV0dXJuIEtVUkwoKTsKIAotICAgIEhUTUxDb2xsZWN0aW9uKiBjaGlsZHJl
biA9IGhlYWQoKS0+Y2hpbGRyZW4oKTsKKyAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNoaWxk
cmVuID0gaGVhZCgpLT5jaGlsZHJlbigpOwogICAgIGZvciAoTm9kZSogY2hpbGQgPSBjaGlsZHJl
bi0+Zmlyc3RJdGVtKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkcmVuLT5uZXh0SXRlbSgpKSB7CiAg
ICAgICAgIGlmICghY2hpbGQtPmhhc1RhZ05hbWUobGlua1RhZykpCiAgICAgICAgICAgICBjb250
aW51ZTsKQEAgLTQyOTMsODEgKzQzMDEsODEgQEAgYm9vbCBEb2N1bWVudDo6aGFzU1ZHUm9vdE5v
ZGUoKSBjb25zdAogfQogI2VuZGlmCiAKLUhUTUxDb2xsZWN0aW9uKiBEb2N1bWVudDo6Y2FjaGVk
Q29sbGVjdGlvbihDb2xsZWN0aW9uVHlwZSB0eXBlKQorY29uc3QgUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiYgRG9jdW1lbnQ6OmNhY2hlZENvbGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkKIHsK
ICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHR5cGUpIDwgTnVtVW5uYW1lZERvY3Vt
ZW50Q2FjaGVkVHlwZXMpOwogICAgIGlmICghbV9jb2xsZWN0aW9uc1t0eXBlXSkKICAgICAgICAg
bV9jb2xsZWN0aW9uc1t0eXBlXSA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgdHlwZSk7
Ci0gICAgcmV0dXJuIG1fY29sbGVjdGlvbnNbdHlwZV0uZ2V0KCk7CisgICAgcmV0dXJuIG1fY29s
bGVjdGlvbnNbdHlwZV07CiB9CiAKLUhUTUxDb2xsZWN0aW9uKiBEb2N1bWVudDo6aW1hZ2VzKCkK
K1Bhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjppbWFnZXMoKQogewogICAgIHJl
dHVybiBjYWNoZWRDb2xsZWN0aW9uKERvY0ltYWdlcyk7CiB9CiAKLUhUTUxDb2xsZWN0aW9uKiBE
b2N1bWVudDo6YXBwbGV0cygpCitQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6
YXBwbGV0cygpCiB7CiAgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jQXBwbGV0cyk7CiB9
CiAKLUhUTUxDb2xsZWN0aW9uKiBEb2N1bWVudDo6ZW1iZWRzKCkKK1Bhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IERvY3VtZW50OjplbWJlZHMoKQogewogICAgIHJldHVybiBjYWNoZWRDb2xsZWN0
aW9uKERvY0VtYmVkcyk7CiB9CiAKLUhUTUxDb2xsZWN0aW9uKiBEb2N1bWVudDo6cGx1Z2lucygp
CitQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6cGx1Z2lucygpCiB7CiAgICAg
Ly8gVGhpcyBpcyBhbiBhbGlhcyBmb3IgZW1iZWRzKCkgcmVxdWlyZWQgZm9yIHRoZSBKUyBET00g
YmluZGluZ3MuCiAgICAgcmV0dXJuIGNhY2hlZENvbGxlY3Rpb24oRG9jRW1iZWRzKTsKIH0KIAot
SFRNTENvbGxlY3Rpb24qIERvY3VtZW50OjpvYmplY3RzKCkKK1Bhc3NSZWZQdHI8SFRNTENvbGxl
Y3Rpb24+IERvY3VtZW50OjpvYmplY3RzKCkKIHsKICAgICByZXR1cm4gY2FjaGVkQ29sbGVjdGlv
bihEb2NPYmplY3RzKTsKIH0KIAotSFRNTENvbGxlY3Rpb24qIERvY3VtZW50OjpzY3JpcHRzKCkK
K1Bhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjpzY3JpcHRzKCkKIHsKICAgICBy
ZXR1cm4gY2FjaGVkQ29sbGVjdGlvbihEb2NTY3JpcHRzKTsKIH0KIAotSFRNTENvbGxlY3Rpb24q
IERvY3VtZW50OjpsaW5rcygpCitQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6
bGlua3MoKQogewogICAgIHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERvY0xpbmtzKTsKIH0KIAot
SFRNTENvbGxlY3Rpb24qIERvY3VtZW50Ojpmb3JtcygpCitQYXNzUmVmUHRyPEhUTUxDb2xsZWN0
aW9uPiBEb2N1bWVudDo6Zm9ybXMoKQogewogICAgIHJldHVybiBjYWNoZWRDb2xsZWN0aW9uKERv
Y0Zvcm1zKTsKIH0KIAotSFRNTENvbGxlY3Rpb24qIERvY3VtZW50OjphbmNob3JzKCkKK1Bhc3NS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjphbmNob3JzKCkKIHsKICAgICByZXR1cm4g
Y2FjaGVkQ29sbGVjdGlvbihEb2NBbmNob3JzKTsKIH0KIAotSFRNTEFsbENvbGxlY3Rpb24qIERv
Y3VtZW50OjphbGwoKQorUGFzc1JlZlB0cjxIVE1MQWxsQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OmFs
bCgpCiB7CiAgICAgaWYgKCFtX2FsbENvbGxlY3Rpb24pCiAgICAgICAgIG1fYWxsQ29sbGVjdGlv
biA9IEhUTUxBbGxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcyk7Ci0gICAgcmV0dXJuIG1fYWxsQ29s
bGVjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gbV9hbGxDb2xsZWN0aW9uOwogfQogCi1IVE1MQ29s
bGVjdGlvbiogRG9jdW1lbnQ6OndpbmRvd05hbWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKQorUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gRG9jdW1lbnQ6OndpbmRvd05hbWVkSXRl
bXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogewotICAgIE93blB0cjxIVE1MTmFtZUNvbGxl
Y3Rpb24+JiBjb2xsZWN0aW9uID0gbV93aW5kb3dOYW1lZEl0ZW1Db2xsZWN0aW9ucy5hZGQobmFt
ZS5pbXBsKCksIG51bGxwdHIpLmZpcnN0LT5zZWNvbmQ7CisgICAgUmVmUHRyPEhUTUxOYW1lQ29s
bGVjdGlvbj4mIGNvbGxlY3Rpb24gPSBtX3dpbmRvd05hbWVkSXRlbUNvbGxlY3Rpb25zLmFkZChu
YW1lLmltcGwoKSwgMCkuZmlyc3QtPnNlY29uZDsKICAgICBpZiAoIWNvbGxlY3Rpb24pCiAgICAg
ICAgIGNvbGxlY3Rpb24gPSBIVE1MTmFtZUNvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBXaW5kb3dO
YW1lZEl0ZW1zLCBuYW1lKTsKLSAgICByZXR1cm4gY29sbGVjdGlvbi5nZXQoKTsKKyAgICByZXR1
cm4gY29sbGVjdGlvbjsKIH0KIAotSFRNTENvbGxlY3Rpb24qIERvY3VtZW50Ojpkb2N1bWVudE5h
bWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQorUGFzc1JlZlB0cjxIVE1MQ29sbGVj
dGlvbj4gRG9jdW1lbnQ6OmRvY3VtZW50TmFtZWRJdGVtcyhjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpCiB7Ci0gICAgT3duUHRyPEhUTUxOYW1lQ29sbGVjdGlvbj4mIGNvbGxlY3Rpb24gPSBtX2Rv
Y3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnMuYWRkKG5hbWUuaW1wbCgpLCBudWxscHRyKS5maXJz
dC0+c2Vjb25kOworICAgIFJlZlB0cjxIVE1MTmFtZUNvbGxlY3Rpb24+JiBjb2xsZWN0aW9uID0g
bV9kb2N1bWVudE5hbWVkSXRlbUNvbGxlY3Rpb25zLmFkZChuYW1lLmltcGwoKSwgMCkuZmlyc3Qt
PnNlY29uZDsKICAgICBpZiAoIWNvbGxlY3Rpb24pCiAgICAgICAgIGNvbGxlY3Rpb24gPSBIVE1M
TmFtZUNvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2N1bWVudE5hbWVkSXRlbXMsIG5hbWUpOwot
ICAgIHJldHVybiBjb2xsZWN0aW9uLmdldCgpOworICAgIHJldHVybiBjb2xsZWN0aW9uOwogfQog
CiB2b2lkIERvY3VtZW50OjpmaW5pc2hlZFBhcnNpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRl
eCBiYWVlYjUzNmQwMDIyMGU2YzBhNGRhZDUxMmNmM2YwYTFlMTI0NGI1Li4zODYxMGNiNTAyZDRl
NTMyMTJkNTg2NmFmNWE1NThjNWZmYTM4NGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNDEw
LDE5ICs0MTAsMTkgQEAgcHVibGljOgogCiAgICAgUGFzc1JlZlB0cjxOb2RlPiBhZG9wdE5vZGUo
UGFzc1JlZlB0cjxOb2RlPiBzb3VyY2UsIEV4Y2VwdGlvbkNvZGUmKTsKIAotICAgIEhUTUxDb2xs
ZWN0aW9uKiBpbWFnZXMoKTsKLSAgICBIVE1MQ29sbGVjdGlvbiogZW1iZWRzKCk7Ci0gICAgSFRN
TENvbGxlY3Rpb24qIHBsdWdpbnMoKTsgLy8gYW4gYWxpYXMgZm9yIGVtYmVkcygpIHJlcXVpcmVk
IGZvciB0aGUgSlMgRE9NIGJpbmRpbmdzLgotICAgIEhUTUxDb2xsZWN0aW9uKiBhcHBsZXRzKCk7
Ci0gICAgSFRNTENvbGxlY3Rpb24qIGxpbmtzKCk7Ci0gICAgSFRNTENvbGxlY3Rpb24qIGZvcm1z
KCk7Ci0gICAgSFRNTENvbGxlY3Rpb24qIGFuY2hvcnMoKTsKLSAgICBIVE1MQ29sbGVjdGlvbiog
b2JqZWN0cygpOwotICAgIEhUTUxDb2xsZWN0aW9uKiBzY3JpcHRzKCk7Ci0gICAgSFRNTENvbGxl
Y3Rpb24qIHdpbmRvd05hbWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKLSAgICBI
VE1MQ29sbGVjdGlvbiogZG9jdW1lbnROYW1lZEl0ZW1zKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSk7Ci0KLSAgICBIVE1MQWxsQ29sbGVjdGlvbiogYWxsKCk7CisgICAgUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gaW1hZ2VzKCk7CisgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZW1i
ZWRzKCk7CisgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gcGx1Z2lucygpOyAvLyBhbiBh
bGlhcyBmb3IgZW1iZWRzKCkgcmVxdWlyZWQgZm9yIHRoZSBKUyBET00gYmluZGluZ3MuCisgICAg
UGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gYXBwbGV0cygpOworICAgIFBhc3NSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IGxpbmtzKCk7CisgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gZm9y
bXMoKTsKKyAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBhbmNob3JzKCk7CisgICAgUGFz
c1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gb2JqZWN0cygpOworICAgIFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IHNjcmlwdHMoKTsKKyAgICBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiB3aW5k
b3dOYW1lZEl0ZW1zKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CisgICAgUGFzc1JlZlB0cjxI
VE1MQ29sbGVjdGlvbj4gZG9jdW1lbnROYW1lZEl0ZW1zKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSk7CisKKyAgICBQYXNzUmVmUHRyPEhUTUxBbGxDb2xsZWN0aW9uPiBhbGwoKTsKIAogICAgIC8v
IE90aGVyIG1ldGhvZHMgKG5vdCBwYXJ0IG9mIERPTSkKICAgICBib29sIGlzSFRNTERvY3VtZW50
KCkgY29uc3QgeyByZXR1cm4gbV9pc0hUTUw7IH0KQEAgLTExODIsNyArMTE4Miw3IEBAIHByaXZh
dGU6CiAgICAgUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUoKSBjb25zdDsKICNl
bmRpZgogCi0gICAgSFRNTENvbGxlY3Rpb24qIGNhY2hlZENvbGxlY3Rpb24oQ29sbGVjdGlvblR5
cGUpOworICAgIGNvbnN0IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4mIGNhY2hlZENvbGxlY3Rpb24o
Q29sbGVjdGlvblR5cGUpOwogCiAgICAgaW50IG1fZ3VhcmRSZWZDb3VudDsKIApAQCAtMTM2NSwx
MCArMTM2NSwxMCBAQCBwcml2YXRlOgogICAgIAogICAgIENoZWNrZWRSYWRpb0J1dHRvbnMgbV9j
aGVja2VkUmFkaW9CdXR0b25zOwogCi0gICAgT3duUHRyPEhUTUxDb2xsZWN0aW9uPiBtX2NvbGxl
Y3Rpb25zW051bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzXTsKLSAgICBPd25QdHI8SFRNTEFs
bENvbGxlY3Rpb24+IG1fYWxsQ29sbGVjdGlvbjsKKyAgICBSZWZQdHI8SFRNTENvbGxlY3Rpb24+
IG1fY29sbGVjdGlvbnNbTnVtVW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZXNdOworICAgIFJlZlB0
cjxIVE1MQWxsQ29sbGVjdGlvbj4gbV9hbGxDb2xsZWN0aW9uOwogCi0gICAgdHlwZWRlZiBIYXNo
TWFwPEF0b21pY1N0cmluZ0ltcGwqLCBPd25QdHI8SFRNTE5hbWVDb2xsZWN0aW9uPiA+IE5hbWVk
Q29sbGVjdGlvbk1hcDsKKyAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFJl
ZlB0cjxIVE1MTmFtZUNvbGxlY3Rpb24+ID4gTmFtZWRDb2xsZWN0aW9uTWFwOwogICAgIE5hbWVk
Q29sbGVjdGlvbk1hcCBtX2RvY3VtZW50TmFtZWRJdGVtQ29sbGVjdGlvbnM7CiAgICAgTmFtZWRD
b2xsZWN0aW9uTWFwIG1fd2luZG93TmFtZWRJdGVtQ29sbGVjdGlvbnM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAppbmRleCA3OWE3MTMwZWY0YTI5MzQ2YTNlYzNiZmY3MWViMzU2MzcxNzQzNTRkLi4x
MDkzMTE2NTE2OWI5OGNmNzEyZDA0YmUzODYxM2Y1NjE0NmYzZjI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xMjMsNiArMTIzLDE2IEBAIEVsZW1lbnQ6On5FbGVtZW50KCkKICAgICByZW1v
dmVTaGFkb3dSb290KCk7CiAgICAgaWYgKG1fYXR0cmlidXRlTWFwKQogICAgICAgICBtX2F0dHJp
YnV0ZU1hcC0+ZGV0YWNoRnJvbUVsZW1lbnQoKTsKKworICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7
CisgICAgICAgIEVsZW1lbnRSYXJlRGF0YSogZWxlbWVudFJhcmVEYXRhID0gcmFyZURhdGEoKTsK
KyAgICAgICAgaWYgKGVsZW1lbnRSYXJlRGF0YS0+aGFzQ2FjaGVkSFRNTENvbGxlY3Rpb25zKCkp
IHsKKyAgICAgICAgICAgIGZvciAodW5zaWduZWQgdHlwZSA9IDA7IHR5cGUgPCBOdW1Ob2RlQ29s
bGVjdGlvblR5cGVzOyArK3R5cGUpIHsKKyAgICAgICAgICAgICAgICBpZiAoSFRNTENvbGxlY3Rp
b24qIGNvbGxlY3Rpb24gPSBlbGVtZW50UmFyZURhdGEtPmNhY2hlZEhUTUxDb2xsZWN0aW9uKHN0
YXRpY19jYXN0PENvbGxlY3Rpb25UeXBlPihGaXJzdE5vZGVDb2xsZWN0aW9uVHlwZSArIHR5cGUp
KSkKKyAgICAgICAgICAgICAgICAgICAgY29sbGVjdGlvbi0+ZGV0YWNoRnJvbU5vZGUoKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KIH0KIAogaW5saW5lIEVsZW1lbnRSYXJlRGF0
YSogRWxlbWVudDo6cmFyZURhdGEoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnRSYXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnRSYXJlRGF0
YS5oCmluZGV4IDQwMzZhMzEzNjljM2Y2ZTdiNDczY2VmN2M5Y2FmODIyOWViOTY4ZTAuLmM1Y2Y2
Y2RmZjI2MDNkNzBhZDQ4ODNiN2I1YzYwOTA0ZWQyZjNmZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxl
bWVudFJhcmVEYXRhLmgKQEAgLTQzLDE5ICs0MywyNSBAQCBwdWJsaWM6CiAgICAgdXNpbmcgTm9k
ZVJhcmVEYXRhOjpuZWVkc0ZvY3VzQXBwZWFyYW5jZVVwZGF0ZVNvb25BZnRlckF0dGFjaDsKICAg
ICB1c2luZyBOb2RlUmFyZURhdGE6OnNldE5lZWRzRm9jdXNBcHBlYXJhbmNlVXBkYXRlU29vbkFm
dGVyQXR0YWNoOwogCi0gICAgdHlwZWRlZiBGaXhlZEFycmF5PE93blB0cjxIVE1MQ29sbGVjdGlv
bj4sIE51bU5vZGVDb2xsZWN0aW9uVHlwZXM+IENhY2hlZEhUTUxDb2xsZWN0aW9uQXJyYXk7Cisg
ICAgdHlwZWRlZiBGaXhlZEFycmF5PFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4sIE51bU5vZGVDb2xs
ZWN0aW9uVHlwZXM+IENhY2hlZEhUTUxDb2xsZWN0aW9uQXJyYXk7CiAKICAgICBib29sIGhhc0Nh
Y2hlZEhUTUxDb2xsZWN0aW9ucygpIGNvbnN0CiAgICAgewogICAgICAgICByZXR1cm4gbV9jYWNo
ZWRDb2xsZWN0aW9uczsKICAgICB9CiAKKyAgICBIVE1MQ29sbGVjdGlvbiogY2FjaGVkSFRNTENv
bGxlY3Rpb24oQ29sbGVjdGlvblR5cGUgdHlwZSkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VS
VChtX2NhY2hlZENvbGxlY3Rpb25zKTsKKyAgICAgICAgcmV0dXJuICgqbV9jYWNoZWRDb2xsZWN0
aW9ucylbdHlwZSAtIEZpcnN0Tm9kZUNvbGxlY3Rpb25UeXBlXS5nZXQoKTsKKyAgICB9CisKICAg
ICBIVE1MQ29sbGVjdGlvbiogZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oRWxlbWVudCogZWxl
bWVudCwgQ29sbGVjdGlvblR5cGUgdHlwZSkKICAgICB7CiAgICAgICAgIGlmICghbV9jYWNoZWRD
b2xsZWN0aW9ucykKICAgICAgICAgICAgIG1fY2FjaGVkQ29sbGVjdGlvbnMgPSBhZG9wdFB0cihu
ZXcgQ2FjaGVkSFRNTENvbGxlY3Rpb25BcnJheSk7CiAKLSAgICAgICAgT3duUHRyPEhUTUxDb2xs
ZWN0aW9uPiYgY29sbGVjdGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlwZSAtIEZpcnN0
Tm9kZUNvbGxlY3Rpb25UeXBlXTsKKyAgICAgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiYgY29s
bGVjdGlvbiA9ICgqbV9jYWNoZWRDb2xsZWN0aW9ucylbdHlwZSAtIEZpcnN0Tm9kZUNvbGxlY3Rp
b25UeXBlXTsKICAgICAgICAgaWYgKCFjb2xsZWN0aW9uKQogICAgICAgICAgICAgY29sbGVjdGlv
biA9IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUoZWxlbWVudCwgdHlwZSk7CiAgICAgICAgIHJldHVy
biBjb2xsZWN0aW9uLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
YXJlRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSYXJlRGF0YS5oCmluZGV4IDliYjcz
ZWJhODk3NDgyY2FiYzRiNjZmMmU3NDEzZTVmNjkyNzVhNDIuLjIyNDllNTI2Yjk2ZDA1OTZmNjI3
NmIwNjczNzZhMzkyMDkzYTZjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
UmFyZURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJhcmVEYXRhLmgKQEAgLTIy
MSw3ICsyMjEsNyBAQCBwdWJsaWM6CiAgICAgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uKiBwcm9w
ZXJ0aWVzKE5vZGUqIG5vZGUpCiAgICAgewogICAgICAgICBpZiAoIW1fcHJvcGVydGllcykKLSAg
ICAgICAgICAgIG1fcHJvcGVydGllcyA9IGFkb3B0UHRyKEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlv
bjo6Y3JlYXRlKG5vZGUpKTsKKyAgICAgICAgICAgIG1fcHJvcGVydGllcyA9IEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKG5vZGUpOwogCiAgICAgICAgIHJldHVybiBtX3Byb3BlcnRp
ZXMuZ2V0KCk7CiAgICAgfQpAQCAtMjU2LDcgKzI1Niw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJs
ZSBSZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVByb3A7CiAgICAgbXV0YWJsZSBS
ZWZQdHI8RE9NU2V0dGFibGVUb2tlbkxpc3Q+IG1faXRlbVJlZjsKICAgICBtdXRhYmxlIFJlZlB0
cjxET01TZXR0YWJsZVRva2VuTGlzdD4gbV9pdGVtVHlwZTsKLSAgICBtdXRhYmxlIE93blB0cjxI
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IG1fcHJvcGVydGllczsKKyAgICBtdXRhYmxlIFJlZlB0
cjxIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24+IG1fcHJvcGVydGllczsKICNlbmRpZgogfTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxsQ29sbGVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmNwcAppbmRleCBlYTdhZTk3NjM1
NmExZDhjOTlmNzQzNjk2NGY1YzE5NzE4OTE4OWEwLi4zZGMwN2EzODgxZTQ5M2M0ZmFhNWFkZjkw
NmFjMWZjNjZiNzZkZGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxD
b2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9u
LmNwcApAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVBhc3NPd25Q
dHI8SFRNTEFsbENvbGxlY3Rpb24+IEhUTUxBbGxDb2xsZWN0aW9uOjpjcmVhdGUoRG9jdW1lbnQq
IGRvY3VtZW50KQorUGFzc1JlZlB0cjxIVE1MQWxsQ29sbGVjdGlvbj4gSFRNTEFsbENvbGxlY3Rp
b246OmNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5l
dyBIVE1MQWxsQ29sbGVjdGlvbihkb2N1bWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcg
SFRNTEFsbENvbGxlY3Rpb24oZG9jdW1lbnQpKTsKIH0KIAogSFRNTEFsbENvbGxlY3Rpb246OkhU
TUxBbGxDb2xsZWN0aW9uKERvY3VtZW50KiBkb2N1bWVudCkKQEAgLTQ2LDYgKzQ2LDkgQEAgSFRN
TEFsbENvbGxlY3Rpb246On5IVE1MQWxsQ29sbGVjdGlvbigpCiAKIE5vZGUqIEhUTUxBbGxDb2xs
ZWN0aW9uOjpuYW1lZEl0ZW1XaXRoSW5kZXgoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCB1bnNp
Z25lZCBpbmRleCkgY29uc3QKIHsKKyAgICBpZiAoIWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIDA7
CisKICAgICBpbnZhbGlkYXRlQ2FjaGVJZk5lZWRlZCgpOwogICAgIHVwZGF0ZU5hbWVDYWNoZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5kZXggZDYzNmJiZDAx
Yjk2NmRiNmQ2OGQ4MDUwODYxMDBjOTRlZjg1NjA4NS4uYWU5N2E1M2FjZWNkZDM3MDgwODQyZTA5
ZTc0ZDgwOGY0ZTFlMjg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQWxs
Q29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFsbENvbGxlY3Rpb24u
aApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEhUTUxBbGxD
b2xsZWN0aW9uIDogcHVibGljIEhUTUxDb2xsZWN0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxIVE1MQWxsQ29sbGVjdGlvbj4gY3JlYXRlKERvY3VtZW50Kik7CisgICAgc3Rh
dGljIFBhc3NSZWZQdHI8SFRNTEFsbENvbGxlY3Rpb24+IGNyZWF0ZShEb2N1bWVudCopOwogICAg
IHZpcnR1YWwgfkhUTUxBbGxDb2xsZWN0aW9uKCk7CiAKICAgICBOb2RlKiBuYW1lZEl0ZW1XaXRo
SW5kZXgoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCB1bnNpZ25lZCBpbmRleCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCmluZGV4IGU2ZjJlYWMwYTEzMGQzZjMz
YjY4MTgyNzRkNWQ1ODhlODQyNGQ4YmIuLjA4MDNmZTljYzllNWJiODE5YjRjNjdlOTY5NDAyZmU4
ODE5NmU2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwCkBAIC00MSw3
ICs0MSw2IEBAIEhUTUxDb2xsZWN0aW9uOjpIVE1MQ29sbGVjdGlvbihOb2RlKiBiYXNlLCBDb2xs
ZWN0aW9uVHlwZSB0eXBlKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2Jhc2UoYmFzZSkK
IHsKLSAgICBBU1NFUlQobV9iYXNlKTsKICAgICBtX2NhY2hlLmNsZWFyKCk7CiB9CiAKQEAgLTc3
LDE3ICs3NiwyNCBAQCBib29sIEhUTUxDb2xsZWN0aW9uOjpzaG91bGRJbmNsdWRlQ2hpbGRyZW4o
Q29sbGVjdGlvblR5cGUgdHlwZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVBhc3NPd25QdHI8
SFRNTENvbGxlY3Rpb24+IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUoTm9kZSogYmFzZSwgQ29sbGVj
dGlvblR5cGUgdHlwZSkKK1Bhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IEhUTUxDb2xsZWN0aW9u
OjpjcmVhdGUoTm9kZSogYmFzZSwgQ29sbGVjdGlvblR5cGUgdHlwZSkKIHsKLSAgICByZXR1cm4g
YWRvcHRQdHIobmV3IEhUTUxDb2xsZWN0aW9uKGJhc2UsIHR5cGUpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYobmV3IEhUTUxDb2xsZWN0aW9uKGJhc2UsIHR5cGUpKTsKIH0KIAogSFRNTENvbGxlY3Rp
b246On5IVE1MQ29sbGVjdGlvbigpCiB7CiB9CiAKK3ZvaWQgSFRNTENvbGxlY3Rpb246OmRldGFj
aEZyb21Ob2RlKCkKK3sKKyAgICBtX2Jhc2UgPSAwOworfQorCiB2b2lkIEhUTUxDb2xsZWN0aW9u
OjppbnZhbGlkYXRlQ2FjaGVJZk5lZWRlZCgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fYmFzZSk7
CisKICAgICB1aW50NjRfdCBkb2N2ZXJzaW9uID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50Kj4o
bV9iYXNlLT5kb2N1bWVudCgpKS0+ZG9tVHJlZVZlcnNpb24oKTsKIAogICAgIGlmIChtX2NhY2hl
LnZlcnNpb24gPT0gZG9jdmVyc2lvbikKQEAgLTE1NSw2ICsxNjEsOCBAQCBzdGF0aWMgTm9kZSog
bmV4dE5vZGVPclNpYmxpbmcoTm9kZSogYmFzZSwgTm9kZSogbm9kZSwgYm9vbCBpbmNsdWRlQ2hp
bGRyZW4pCiAKIEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWVudCogcHJl
dmlvdXMpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fYmFzZSk7CisKICAgICBOb2RlKiBjdXJyZW50
OwogICAgIGlmICghcHJldmlvdXMpCiAgICAgICAgIGN1cnJlbnQgPSBtX2Jhc2UtPmZpcnN0Q2hp
bGQoKTsKQEAgLTE3NCw2ICsxODIsOCBAQCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFm
dGVyKEVsZW1lbnQqIHByZXZpb3VzKSBjb25zdAogCiB1bnNpZ25lZCBIVE1MQ29sbGVjdGlvbjo6
Y2FsY0xlbmd0aCgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fYmFzZSk7CisKICAgICB1bnNpZ25l
ZCBsZW4gPSAwOwogICAgIGZvciAoRWxlbWVudCogY3VycmVudCA9IGl0ZW1BZnRlcigwKTsgY3Vy
cmVudDsgY3VycmVudCA9IGl0ZW1BZnRlcihjdXJyZW50KSkKICAgICAgICAgKytsZW47CkBAIC0x
ODQsNiArMTk0LDkgQEAgdW5zaWduZWQgSFRNTENvbGxlY3Rpb246OmNhbGNMZW5ndGgoKSBjb25z
dAogLy8gY2FsY3VsYXRpb24gZXZlcnkgdGltZSBpZiBhbnl0aGluZyBoYXMgY2hhbmdlZAogdW5z
aWduZWQgSFRNTENvbGxlY3Rpb246Omxlbmd0aCgpIGNvbnN0CiB7CisgICAgaWYgKCFtX2Jhc2Up
CisgICAgICAgIHJldHVybiAwOworCiAgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKICAg
ICBpZiAoIW1fY2FjaGUuaGFzTGVuZ3RoKSB7CiAgICAgICAgIG1fY2FjaGUubGVuZ3RoID0gY2Fs
Y0xlbmd0aCgpOwpAQCAtMTk0LDYgKzIwNyw5IEBAIHVuc2lnbmVkIEhUTUxDb2xsZWN0aW9uOjps
ZW5ndGgoKSBjb25zdAogCiBOb2RlKiBIVE1MQ29sbGVjdGlvbjo6aXRlbSh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKIHsKKyAgICBpZiAoIW1fYmFzZSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICAg
aW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKICAgICAgaWYgKG1fY2FjaGUuY3VycmVudCAmJiBt
X2NhY2hlLnBvc2l0aW9uID09IGluZGV4KQogICAgICAgICAgcmV0dXJuIG1fY2FjaGUuY3VycmVu
dDsKQEAgLTIyMCw2ICsyMzYsNyBAQCBOb2RlKiBIVE1MQ29sbGVjdGlvbjo6Zmlyc3RJdGVtKCkg
Y29uc3QKIAogTm9kZSogSFRNTENvbGxlY3Rpb246Om5leHRJdGVtKCkgY29uc3QKIHsKKyAgICAg
QVNTRVJUKG1fYmFzZSk7CiAgICAgIGludmFsaWRhdGVDYWNoZUlmTmVlZGVkKCk7CiAKICAgICAg
Ly8gTG9vayBmb3IgdGhlICdzZWNvbmQnIGl0ZW0uIFRoZSBmaXJzdCBvbmUgaXMgY3VycmVudEl0
ZW0sIGFscmVhZHkgZ2l2ZW4gYmFjay4KQEAgLTI1OSw2ICsyNzYsOSBAQCBib29sIEhUTUxDb2xs
ZWN0aW9uOjpjaGVja0Zvck5hbWVNYXRjaChFbGVtZW50KiBlbGVtZW50LCBib29sIGNoZWNrTmFt
ZSwgY29uc3QgQQogCiBOb2RlKiBIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgY29uc3QKIHsKKyAgICBpZiAoIW1fYmFzZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKICAgICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29tL3dvcmtzaG9wL2F1dGhvci9k
aHRtbC9yZWZlcmVuY2UvbWV0aG9kcy9uYW1lZGl0ZW0uYXNwCiAgICAgLy8gVGhpcyBtZXRob2Qg
Zmlyc3Qgc2VhcmNoZXMgZm9yIGFuIG9iamVjdCB3aXRoIGEgbWF0Y2hpbmcgaWQKICAgICAvLyBh
dHRyaWJ1dGUuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5kLCB0aGUgbWV0aG9kIHRoZW4gc2VhcmNo
ZXMgZm9yIGFuCkBAIC0yODYsNiArMzA2LDggQEAgTm9kZSogSFRNTENvbGxlY3Rpb246Om5hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiAKIHZvaWQgSFRNTENvbGxlY3Rp
b246OnVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0CiB7CisgICAgQVNTRVJUKG1fYmFzZSk7CisKICAg
ICBpZiAobV9jYWNoZS5oYXNOYW1lQ2FjaGUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMzA2LDYg
KzMyOCw5IEBAIHZvaWQgSFRNTENvbGxlY3Rpb246OnVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0CiAK
IGJvb2wgSFRNTENvbGxlY3Rpb246Omhhc05hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUpIGNvbnN0CiB7CisgICAgaWYgKCFtX2Jhc2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwog
ICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0zMjcs
NiArMzUyLDkgQEAgYm9vbCBIVE1MQ29sbGVjdGlvbjo6aGFzTmFtZWRJdGVtKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgY29uc3QKIAogdm9pZCBIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgcmVzdWx0KSBj
b25zdAogeworICAgIGlmICghbV9iYXNlKQorICAgICAgICByZXR1cm47CisKICAgICBBU1NFUlQo
cmVzdWx0LmlzRW1wdHkoKSk7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CkBAIC0zNDYsNiArMzc0LDkgQEAgdm9pZCBIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtcyhj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYKIAogUGFzc1Jl
ZlB0cjxOb2RlTGlzdD4gSFRNTENvbGxlY3Rpb246OnRhZ3MoY29uc3QgU3RyaW5nJiBuYW1lKQog
eworICAgIGlmICghbV9iYXNlKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIHJldHVybiBtX2Jh
c2UtPmdldEVsZW1lbnRzQnlUYWdOYW1lKG5hbWUpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxD
b2xsZWN0aW9uLmgKaW5kZXggMDJhNTJlNGRhMTE2OWM0ZWY2Yzk2N2I0NmMyNTgzOGJkM2Q0YWMx
YS4uNzZiYzI0MTAyZGY5MzBiMTA3ZDRhYmI0Y2ZiMDE5YzQxMjY0ZDg2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTENvbGxlY3Rpb24uaApAQCAtMjMsMjcgKzIzLDI0IEBACiAjaWZuZGVmIEhUTUxD
b2xsZWN0aW9uX2gKICNkZWZpbmUgSFRNTENvbGxlY3Rpb25faAogCi0jaW5jbHVkZSAiTm9kZS5o
IgogI2luY2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0j
aW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OworY2xh
c3MgTm9kZTsKIGNsYXNzIE5vZGVMaXN0OwogCi1jbGFzcyBIVE1MQ29sbGVjdGlvbiB7CitjbGFz
cyBIVE1MQ29sbGVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPEhUTUxDb2xsZWN0aW9uPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTENvbGxlY3Rpb24+IGNyZWF0ZShOb2Rl
KiBiYXNlLCBDb2xsZWN0aW9uVHlwZSk7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENvbGxl
Y3Rpb24+IGNyZWF0ZShOb2RlKiBiYXNlLCBDb2xsZWN0aW9uVHlwZSk7CiAgICAgdmlydHVhbCB+
SFRNTENvbGxlY3Rpb24oKTsKIAotICAgIHZvaWQgcmVmKCkgeyBtX2Jhc2UtPnJlZigpOyB9Ci0g
ICAgdm9pZCBkZXJlZigpIHsgbV9iYXNlLT5kZXJlZigpOyB9Ci0KICAgICB1bnNpZ25lZCBsZW5n
dGgoKSBjb25zdDsKICAgICAKICAgICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgp
IGNvbnN0OwpAQCAtNjEsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgTm9kZSogYmFzZSgpIGNvbnN0
IHsgcmV0dXJuIG1fYmFzZTsgfQogICAgIENvbGxlY3Rpb25UeXBlIHR5cGUoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxDb2xsZWN0aW9uVHlwZT4obV90eXBlKTsgfQogCisgICAgdm9pZCBk
ZXRhY2hGcm9tTm9kZSgpOworCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTENvbGxlY3Rpb24oTm9kZSog
YmFzZSwgQ29sbGVjdGlvblR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRGF0YUxp
c3RFbGVtZW50LmNwcAppbmRleCBmNmNjN2RhMzNhNmEyOTY5MGMwOTU1NGQ1ZDc2YTYzNWNkNmRm
NjllLi45NjRkMzQyMmE5N2EyMjg0MWZhYzdiMmE4ZTRhMmUxMjc5YTA0OTI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAg
UGFzc1JlZlB0cjxIVE1MRGF0YUxpc3RFbGVtZW50PiBIVE1MRGF0YUxpc3RFbGVtZW50OjpjcmVh
dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IEhUTUxEYXRh
TGlzdEVsZW1lbnQodGFnTmFtZSwgZG9jdW1lbnQpKTsKIH0KIAotSFRNTENvbGxlY3Rpb24qIEhU
TUxEYXRhTGlzdEVsZW1lbnQ6Om9wdGlvbnMoKQorUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
SFRNTERhdGFMaXN0RWxlbWVudDo6b3B0aW9ucygpCiB7CiAgICAgcmV0dXJuIGVuc3VyZUNhY2hl
ZEhUTUxDb2xsZWN0aW9uKERhdGFMaXN0T3B0aW9ucyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERhdGFMaXN0RWxlbWVudC5oCmluZGV4IDY0YmZjODlkZGY0MTQyYjZiMzVmN2M4YjA0NzEx
MzE1YTkwZDg5ZWQuLjk3ZTYwOGY1YTRkMTI3NzkzMzMwODIwYTIwYjg1NGEyYmMxYmQzYzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERhdGFMaXN0RWxlbWVudC5oCkBAIC00Myw3ICs0Myw3
IEBAIGNsYXNzIEhUTUxEYXRhTGlzdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEVsZW1lbnQgewogcHVi
bGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxEYXRhTGlzdEVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKIAotICAgIEhUTUxDb2xsZWN0aW9uKiBv
cHRpb25zKCk7CisgICAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gb3B0aW9ucygpOwogCiBw
cml2YXRlOgogICAgIEhUTUxEYXRhTGlzdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERv
Y3VtZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCmluZGV4IDM3NjliNDlhYjVm
ZTI5OWM4ZTBmYWI2ZDk2ZjRhNGVjNGFlYWZiM2QuLjU3M2Q1ODFkNDJkOGY5MWUxN2NhYTE5ODg1
NDcwMmI5YjU0YTRmY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuY3BwCkBAIC04MjQs
NyArODI0LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0VGFiSW5kZXgoaW50IHZhbHVlKQogICAg
IHNldEF0dHJpYnV0ZSh0YWJpbmRleEF0dHIsIFN0cmluZzo6bnVtYmVyKHZhbHVlKSk7CiB9CiAK
LUhUTUxDb2xsZWN0aW9uKiBIVE1MRWxlbWVudDo6Y2hpbGRyZW4oKQorUGFzc1JlZlB0cjxIVE1M
Q29sbGVjdGlvbj4gSFRNTEVsZW1lbnQ6OmNoaWxkcmVuKCkKIHsKICAgICByZXR1cm4gZW5zdXJl
Q2FjaGVkSFRNTENvbGxlY3Rpb24oTm9kZUNoaWxkcmVuKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEVs
ZW1lbnQuaAppbmRleCBhODZiMmI5MTc4MDA1NDA4NjlhOTJmNmYzNTQ5MTViOWNmYjQzZDEzLi5i
OThiMmRkYzQ2OTIzNmQyMzdmMmQxMGYzMjIwMDZiNWEyMTUyOGEwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRWxlbWVudC5oCkBAIC0zOSw4ICszOSw4IEBAIGNsYXNzIEhUTUxFbGVtZW50IDogcHVibGlj
IFN0eWxlZEVsZW1lbnQgewogcHVibGljOgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxFbGVt
ZW50PiBjcmVhdGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqKTsKIAot
ICAgIEhUTUxDb2xsZWN0aW9uKiBjaGlsZHJlbigpOwotCisgICAgUGFzc1JlZlB0cjxIVE1MQ29s
bGVjdGlvbj4gY2hpbGRyZW4oKTsKKyAgICAKICAgICB2aXJ0dWFsIFN0cmluZyB0aXRsZSgpIGNv
bnN0OwogCiAgICAgdmlydHVhbCBzaG9ydCB0YWJJbmRleCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwCmluZGV4IGQyNTY1M2ZlOGQ2ZmUyMWFlMzkw
OTJhNzM2ZWRmNWIyYjliMmUzMDMuLjZiMTlkNDQ2ZTI4OTY5Mzg5N2EzYzUwN2EyYzBjYjBhNzA0
NTdlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5jcHAKQEAg
LTQwLDkgKzQwLDkgQEAgSFRNTEZvcm1Db2xsZWN0aW9uOjpIVE1MRm9ybUNvbGxlY3Rpb24oSFRN
TEZvcm1FbGVtZW50KiBmb3JtKQogewogfQogCi1QYXNzT3duUHRyPEhUTUxGb3JtQ29sbGVjdGlv
bj4gSFRNTEZvcm1Db2xsZWN0aW9uOjpjcmVhdGUoSFRNTEZvcm1FbGVtZW50KiBmb3JtKQorUGFz
c1JlZlB0cjxIVE1MRm9ybUNvbGxlY3Rpb24+IEhUTUxGb3JtQ29sbGVjdGlvbjo6Y3JlYXRlKEhU
TUxGb3JtRWxlbWVudCogZm9ybSkKIHsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IEhUTUxGb3Jt
Q29sbGVjdGlvbihmb3JtKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MRm9ybUNvbGxl
Y3Rpb24oZm9ybSkpOwogfQogCiBIVE1MRm9ybUNvbGxlY3Rpb246On5IVE1MRm9ybUNvbGxlY3Rp
b24oKQpAQCAtNTEsMTEgKzUxLDE1IEBAIEhUTUxGb3JtQ29sbGVjdGlvbjo6fkhUTUxGb3JtQ29s
bGVjdGlvbigpCiAKIHVuc2lnbmVkIEhUTUxGb3JtQ29sbGVjdGlvbjo6Y2FsY0xlbmd0aCgpIGNv
bnN0CiB7CisgICAgQVNTRVJUKGJhc2UoKSk7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PEhUTUxG
b3JtRWxlbWVudCo+KGJhc2UoKSktPmxlbmd0aCgpOwogfQogCiBOb2RlKiBIVE1MRm9ybUNvbGxl
Y3Rpb246Oml0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0CiB7CisgICAgaWYgKCFiYXNlKCkpCisg
ICAgICAgIHJldHVybiAwOworCiAgICAgaW52YWxpZGF0ZUNhY2hlSWZOZWVkZWQoKTsKIAogICAg
IGlmIChtX2NhY2hlLmN1cnJlbnQgJiYgbV9jYWNoZS5wb3NpdGlvbiA9PSBpbmRleCkKQEAgLTky
LDYgKzk2LDkgQEAgTm9kZSogSFRNTEZvcm1Db2xsZWN0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdAogCiBFbGVtZW50KiBIVE1MRm9ybUNvbGxlY3Rpb246OmdldE5hbWVkSXRlbShjb25z
dCBRdWFsaWZpZWROYW1lJiBhdHRyTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25z
dAogeworICAgIGlmICghYmFzZSgpKQorICAgICAgICByZXR1cm4gMDsKKwogICAgIG1fY2FjaGUu
cG9zaXRpb24gPSAwOwogICAgIHJldHVybiBnZXROYW1lZEZvcm1JdGVtKGF0dHJOYW1lLCBuYW1l
LCAwKTsKIH0KQEAgLTEzNiw2ICsxNDMsOSBAQCBOb2RlKiBIVE1MRm9ybUNvbGxlY3Rpb246Om5l
eHRJdGVtKCkgY29uc3QKIAogTm9kZSogSFRNTEZvcm1Db2xsZWN0aW9uOjpuYW1lZEl0ZW0oY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAogeworICAgIGlmICghYmFzZSgpKQorICAgICAg
ICByZXR1cm4gMDsKKwogICAgIC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vd29ya3Nob3Av
YXV0aG9yL2RodG1sL3JlZmVyZW5jZS9tZXRob2RzL25hbWVkaXRlbS5hc3AKICAgICAvLyBUaGlz
IG1ldGhvZCBmaXJzdCBzZWFyY2hlcyBmb3IgYW4gb2JqZWN0IHdpdGggYSBtYXRjaGluZyBpZAog
ICAgIC8vIGF0dHJpYnV0ZS4gSWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIHRoZSBtZXRob2QgdGhl
biBzZWFyY2hlcyBmb3IgYW4KQEAgLTE1MSw2ICsxNjEsOSBAQCBOb2RlKiBIVE1MRm9ybUNvbGxl
Y3Rpb246Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0CiAKIHZvaWQg
SFRNTEZvcm1Db2xsZWN0aW9uOjp1cGRhdGVOYW1lQ2FjaGUoKSBjb25zdAogeworICAgIGlmICgh
YmFzZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAobV9jYWNoZS5oYXNOYW1lQ2FjaGUp
CiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbGxlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9u
LmgKaW5kZXggNjBjNmQyYjQ4YjhmYzI1NTNkOGE4OTI0MTBhNTA0YmQ5ZGNiOTliYi4uN2QyOTYz
ODIwZDZhOTQxNDMzN2E3ODc0NTA3OTY4MGQ1ZTY1MDJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxGb3JtQ29sbGVjdGlvbi5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFF1YWxpZmllZE5h
bWU7CiAKIGNsYXNzIEhUTUxGb3JtQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVjdGlvbiB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTEZvcm1Db2xsZWN0aW9uPiBjcmVh
dGUoSFRNTEZvcm1FbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTEZvcm1Db2xs
ZWN0aW9uPiBjcmVhdGUoSFRNTEZvcm1FbGVtZW50Kik7CiAKICAgICB2aXJ0dWFsIH5IVE1MRm9y
bUNvbGxlY3Rpb24oKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCmlu
ZGV4IDM4NzU3ZDUxZWFiZTc3MzQ0NTE4N2UyMmNlZjBhOTQxZDEzOTM1NGMuLmRhYjQ3ZWZmZjFj
ZjY3ZjAxZjNiYjQ1ODJmYzMwOGZjMGJlMDI4YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtRWxlbWVudC5jcHAKQEAgLTkxLDYgKzkxLDkgQEAgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1l
bnQ+IEhUTUxGb3JtRWxlbWVudDo6Y3JlYXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUK
IAogSFRNTEZvcm1FbGVtZW50Ojp+SFRNTEZvcm1FbGVtZW50KCkKIHsKKyAgICBpZiAobV9lbGVt
ZW50c0NvbGxlY3Rpb24pCisgICAgICAgIG1fZWxlbWVudHNDb2xsZWN0aW9uLT5kZXRhY2hGcm9t
Tm9kZSgpOworCiAgICAgaWYgKCFzaG91bGRBdXRvY29tcGxldGUoKSkKICAgICAgICAgZG9jdW1l
bnQoKS0+dW5yZWdpc3RlckZvclBhZ2VDYWNoZVN1c3BlbnNpb25DYWxsYmFja3ModGhpcyk7CiAK
QEAgLTQ5OCwxMSArNTAxLDExIEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpyZW1vdmVJbWdFbGVt
ZW50KEhUTUxJbWFnZUVsZW1lbnQqIGUpCiAgICAgcmVtb3ZlRnJvbVZlY3RvcihtX2ltYWdlRWxl
bWVudHMsIGUpOwogfQogCi1IVE1MQ29sbGVjdGlvbiogSFRNTEZvcm1FbGVtZW50OjplbGVtZW50
cygpCitQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MRm9ybUVsZW1lbnQ6OmVsZW1lbnRz
KCkKIHsKICAgICBpZiAoIW1fZWxlbWVudHNDb2xsZWN0aW9uKQogICAgICAgICBtX2VsZW1lbnRz
Q29sbGVjdGlvbiA9IEhUTUxGb3JtQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwotICAgIHJldHVy
biBtX2VsZW1lbnRzQ29sbGVjdGlvbi5nZXQoKTsKKyAgICByZXR1cm4gbV9lbGVtZW50c0NvbGxl
Y3Rpb247CiB9CiAKIFN0cmluZyBIVE1MRm9ybUVsZW1lbnQ6Om5hbWUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKaW5kZXggMDhjMTE0MTE5NjE5Nzg2NTc2ZjZmNmNj
NmU3YzRiOGRiM2RkZGE0Yy4uMmRkOGFmMWZmZDUzYWZlZjE4NDg1NDE0YThjNzdjZTYxZDE2MzQx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCkBAIC00Nyw3ICs0Nyw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1lbnQ+IGNyZWF0ZShj
b25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqKTsKICAgICB2aXJ0dWFsIH5IVE1MRm9ybUVs
ZW1lbnQoKTsKIAotICAgIEhUTUxDb2xsZWN0aW9uKiBlbGVtZW50cygpOworICAgIFBhc3NSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+IGVsZW1lbnRzKCk7CiAgICAgdm9pZCBnZXROYW1lZEVsZW1lbnRz
KGNvbnN0IEF0b21pY1N0cmluZyYsIFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYpOwogCiAgICAgdW5z
aWduZWQgbGVuZ3RoKCkgY29uc3Q7CkBAIC0xNDksNyArMTQ5LDcgQEAgcHJpdmF0ZToKIAogICAg
IEZvcm1TdWJtaXNzaW9uOjpBdHRyaWJ1dGVzIG1fYXR0cmlidXRlczsKICAgICBPd25QdHI8QWxp
YXNNYXA+IG1fZWxlbWVudEFsaWFzZXM7Ci0gICAgT3duUHRyPEhUTUxGb3JtQ29sbGVjdGlvbj4g
bV9lbGVtZW50c0NvbGxlY3Rpb247CisgICAgUmVmUHRyPEhUTUxGb3JtQ29sbGVjdGlvbj4gbV9l
bGVtZW50c0NvbGxlY3Rpb247CiAKICAgICBDaGVja2VkUmFkaW9CdXR0b25zIG1fY2hlY2tlZFJh
ZGlvQnV0dG9uczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5k
ZXggZjVmNDcyOTE4NjFjZmUwOTE1ZTVlYjRlNmFlNjFlNDQwOGQ0ODlmNC4uNDZkMTA0OWJkZWI5
OWY2N2RkM2M3ZjY2MTE0ZTVkZWEzMmNhMDliZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCkBAIC0xNTc2LDcgKzE1NzYsNyBAQCBIVE1MT3B0aW9uRWxlbWVudCog
SFRNTElucHV0RWxlbWVudDo6c2VsZWN0ZWRPcHRpb24oKSBjb25zdAogICAgIEhUTUxEYXRhTGlz
dEVsZW1lbnQqIHNvdXJjZUVsZW1lbnQgPSBkYXRhTGlzdCgpOwogICAgIGlmICghc291cmNlRWxl
bWVudCkKICAgICAgICAgcmV0dXJuIDA7Ci0gICAgSFRNTENvbGxlY3Rpb24qIG9wdGlvbnMgPSBz
b3VyY2VFbGVtZW50LT5vcHRpb25zKCk7CisgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBvcHRp
b25zID0gc291cmNlRWxlbWVudC0+b3B0aW9ucygpOwogICAgIGlmICghb3B0aW9ucykKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gb3B0aW9ucy0+bGVuZ3RoKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCmluZGV4IGJmNGEzYjMzMzc0YmM5NWVm
M2ZjZmY1MDY2MDY3ZWJjYTBjZGVmNTcuLjA5ODI5NWI3MzNmZjBiZTA2MGY3YzJiZjAzYTFjNmNi
M2Y0ZmI2Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuY3BwCkBAIC04Miw3
ICs4Miw3IEBAIGJvb2wgSFRNTE1hcEVsZW1lbnQ6Om1hcE1vdXNlRXZlbnQoTGF5b3V0UG9pbnQg
bG9jYXRpb24sIGNvbnN0IExheW91dFNpemUmIHNpemUsCiAKIEhUTUxJbWFnZUVsZW1lbnQqIEhU
TUxNYXBFbGVtZW50OjppbWFnZUVsZW1lbnQoKQogewotICAgIEhUTUxDb2xsZWN0aW9uKiBjb2xs
ID0gZG9jdW1lbnQoKS0+aW1hZ2VzKCk7CisgICAgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xs
ID0gZG9jdW1lbnQoKS0+aW1hZ2VzKCk7CiAgICAgZm9yIChOb2RlKiBjdXJyID0gY29sbC0+Zmly
c3RJdGVtKCk7IGN1cnI7IGN1cnIgPSBjb2xsLT5uZXh0SXRlbSgpKSB7CiAgICAgICAgIGlmICgh
Y3Vyci0+aGFzVGFnTmFtZShpbWdUYWcpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC0xMjYs
NyArMTI2LDcgQEAgdm9pZCBIVE1MTWFwRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoQXR0
cmlidXRlKiBhdHRyaWJ1dGUpCiAgICAgSFRNTEVsZW1lbnQ6OnBhcnNlTWFwcGVkQXR0cmlidXRl
KGF0dHJpYnV0ZSk7CiB9CiAKLUhUTUxDb2xsZWN0aW9uKiBIVE1MTWFwRWxlbWVudDo6YXJlYXMo
KQorUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTE1hcEVsZW1lbnQ6OmFyZWFzKCkKIHsK
ICAgICByZXR1cm4gZW5zdXJlQ2FjaGVkSFRNTENvbGxlY3Rpb24oTWFwQXJlYXMpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVudC5oCmluZGV4IDkyNTg5NWNhYjI2ZWY1YjYyYzA0YmRi
YzcxMjE1YzIzZGE0YjU5MDAuLjMwMDY3NjY5NWI4Yjk5OTQ2MzY1YWFiODIyMzc4ZmMwMDMyZmQx
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1hcEVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNYXBFbGVtZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogICAgIGJvb2wgbWFwTW91c2VFdmVudChMYXlvdXRQb2ludCBsb2NhdGlvbiwgY29u
c3QgTGF5b3V0U2l6ZSYsIEhpdFRlc3RSZXN1bHQmKTsKICAgICAKICAgICBIVE1MSW1hZ2VFbGVt
ZW50KiBpbWFnZUVsZW1lbnQoKTsKLSAgICBIVE1MQ29sbGVjdGlvbiogYXJlYXMoKTsKKyAgICBQ
YXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBhcmVhcygpOwogCiBwcml2YXRlOgogICAgIEhUTUxN
YXBFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uY3BwCmluZGV4IGFhZjViNGQwMmQyMWM4Mzg0ZmMy
M2ViYWY3ZDYwMDViZWE1YWMzMGMuLmFkNzNkMzIwMTM5YjYwMDZmYzhhMGFiZDE1ZjVkNmJhN2I1
NTE3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5jcHAKQEAg
LTQwLDYgKzQwLDkgQEAgSFRNTE5hbWVDb2xsZWN0aW9uOjpIVE1MTmFtZUNvbGxlY3Rpb24oRG9j
dW1lbnQqIGRvY3VtZW50LCBDb2xsZWN0aW9uVHlwZSB0eXBlLAogCiBFbGVtZW50KiBIVE1MTmFt
ZUNvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZW50KiBwcmV2aW91cykgY29uc3QKIHsKKyAgICBp
ZiAoIWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBBU1NFUlQocHJldmlvdXMgIT0g
YmFzZSgpKTsKIAogICAgIE5vZGUqIGN1cnJlbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTmFt
ZUNvbGxlY3Rpb24uaAppbmRleCBmODQ0NjU3ZjNiNmFhZjdjMmI0Y2YxY2Q4MjUwOTk1YWJlNjg4
NTJhLi5jNDA4N2NiZDQzODAyNzJkNjIwZGYzNmRmY2Q5MmQ4MjJiNjU2Y2ZjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKQEAgLTMzLDkgKzMzLDkgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiAKIGNsYXNzIEhUTUxOYW1lQ29sbGVjdGlvbiA6IHB1YmxpYyBIVE1MQ29sbGVj
dGlvbiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8SFRNTE5hbWVDb2xsZWN0aW9u
PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE5hbWVDb2xsZWN0
aW9uPiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb2xsZWN0aW9uVHlwZSB0eXBlLCBjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRQdHIobmV3
IEhUTUxOYW1lQ29sbGVjdGlvbihkb2N1bWVudCwgdHlwZSwgbmFtZSkpOworICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IEhUTUxOYW1lQ29sbGVjdGlvbihkb2N1bWVudCwgdHlwZSwgbmFtZSkp
OwogICAgIH0KIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TE9wdGlvbnNDb2xsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnND
b2xsZWN0aW9uLmNwcAppbmRleCBjYThhMWIwN2RiNGQzY2Q1NDVmMjM5NzM1ZWM3NWU3YzU0MzZh
OWFiLi4zYWJiMzUzMDBjMjVlZGI3MDljZDJkYzViNjkzZWJjYjdiOTQzMzJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24uY3BwCkBAIC0zMiw5ICszMiw5
IEBAIEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6SFRNTE9wdGlvbnNDb2xsZWN0aW9uKEhUTUxTZWxl
Y3RFbGVtZW50KiBzZWxlY3QpCiB7CiB9CiAKLVBhc3NPd25QdHI8SFRNTE9wdGlvbnNDb2xsZWN0
aW9uPiBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OmNyZWF0ZShIVE1MU2VsZWN0RWxlbWVudCogc2Vs
ZWN0KQorUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IEhUTUxPcHRpb25zQ29sbGVj
dGlvbjo6Y3JlYXRlKEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UHRyKG5ldyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24oc2VsZWN0KSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBIVE1MT3B0aW9uc0NvbGxlY3Rpb24oc2VsZWN0KSk7CiB9CiAKIHZvaWQgSFRN
TE9wdGlvbnNDb2xsZWN0aW9uOjphZGQoUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxl
bWVudCwgRXhjZXB0aW9uQ29kZSAmZWMpCkBAIC01OSw2ICs1OSw5IEBAIHZvaWQgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uOjphZGQoUGFzc1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxlbWVudCwg
aW50IGluZGV4CiAgICAgZWMgPSAwOwogICAgIEhUTUxTZWxlY3RFbGVtZW50KiBzZWxlY3QgPSB0
b0hUTUxTZWxlY3RFbGVtZW50KGJhc2UoKSk7CiAKKyAgICBpZiAoIXNlbGVjdCkKKyAgICAgICAg
cmV0dXJuOworCiAgICAgaWYgKGluZGV4ID09IC0xIHx8IHVuc2lnbmVkKGluZGV4KSA+PSBsZW5n
dGgoKSkKICAgICAgICAgc2VsZWN0LT5hZGQobmV3T3B0aW9uLCAwLCBlYyk7CiAgICAgZWxzZQpA
QCAtNjksMjEgKzcyLDI5IEBAIHZvaWQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjphZGQoUGFzc1Jl
ZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4gZWxlbWVudCwgaW50IGluZGV4CiAKIHZvaWQgSFRNTE9w
dGlvbnNDb2xsZWN0aW9uOjpyZW1vdmUoaW50IGluZGV4KQogeworICAgIGlmICghYmFzZSgpKQor
ICAgICAgICByZXR1cm47CiAgICAgdG9IVE1MU2VsZWN0RWxlbWVudChiYXNlKCkpLT5yZW1vdmUo
aW5kZXgpOwogfQogCiBpbnQgSFRNTE9wdGlvbnNDb2xsZWN0aW9uOjpzZWxlY3RlZEluZGV4KCkg
Y29uc3QKIHsKKyAgICBpZiAoIWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIC0xOwogICAgIHJldHVy
biB0b0hUTUxTZWxlY3RFbGVtZW50KGJhc2UoKSktPnNlbGVjdGVkSW5kZXgoKTsKIH0KIAogdm9p
ZCBIVE1MT3B0aW9uc0NvbGxlY3Rpb246OnNldFNlbGVjdGVkSW5kZXgoaW50IGluZGV4KQogewor
ICAgIGlmICghYmFzZSgpKQorICAgICAgICByZXR1cm47CiAgICAgdG9IVE1MU2VsZWN0RWxlbWVu
dChiYXNlKCkpLT5zZXRTZWxlY3RlZEluZGV4KGluZGV4KTsKIH0KIAogdm9pZCBIVE1MT3B0aW9u
c0NvbGxlY3Rpb246OnNldExlbmd0aCh1bnNpZ25lZCBsZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVj
KQogeworICAgIGlmICghYmFzZSgpKQorICAgICAgICByZXR1cm47CiAgICAgdG9IVE1MU2VsZWN0
RWxlbWVudChiYXNlKCkpLT5zZXRMZW5ndGgobGVuZ3RoLCBlYyk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxPcHRpb25zQ29sbGVjdGlvbi5oCmluZGV4IGJjOWJkZmE3MDFmZTZjY2Iy
MjdkNDJiYjEwNmE0NWFlMjU5YjJlMDMuLjMzMzMzNGI1ZGY5Y2ZjMzkyN2E0ODMyYTNkYTk3ZGE1
NDg1MmQzYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE9wdGlvbnNDb2xs
ZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MT3B0aW9uc0NvbGxlY3Rpb24u
aApAQCAtMzUsNyArMzUsNyBAQCB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBI
VE1MT3B0aW9uc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgot
ICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gY3JlYXRlKEhUTUxT
ZWxlY3RFbGVtZW50Kik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTE9wdGlvbnNDb2xsZWN0
aW9uPiBjcmVhdGUoSFRNTFNlbGVjdEVsZW1lbnQqKTsKIAogICAgIHZvaWQgYWRkKFBhc3NSZWZQ
dHI8SFRNTE9wdGlvbkVsZW1lbnQ+LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBhZGQoUGFz
c1JlZlB0cjxIVE1MT3B0aW9uRWxlbWVudD4sIGludCBpbmRleCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MUHJvcGVydGllc0NvbGxlY3Rpb24uY3BwCmlu
ZGV4IDg2ZmNlY2ZhZTNhYWZjM2VlNDBiNjJmZTI3ZTYyZmUyMDc5ODcxNGUuLjQzOWJhZTY4YzIx
Y2U0ZTk5NWNjZTRhYWVmOTg2ZTk3OTI3MjA2NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5jcHAKQEAgLTQ5LDkgKzQ5LDkgQEAgc3RhdGlj
IGlubGluZSBib29sIGNvbXBhcmVUcmVlT3JkZXIoTm9kZSogbm9kZTEsIE5vZGUqIG5vZGUyKQog
ICAgIHJldHVybiAobm9kZTItPmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKG5vZGUxKSAmIChOb2Rl
OjpET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkcgfCBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9E
SVNDT05ORUNURUQpKSA9PSBOb2RlOjpET0NVTUVOVF9QT1NJVElPTl9QUkVDRURJTkc7CiB9CiAK
LVBhc3NPd25QdHI8SFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uPiBIVE1MUHJvcGVydGllc0NvbGxl
Y3Rpb246OmNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGl0ZW1Ob2RlKQorUGFzc1JlZlB0cjxIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24+IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbjo6Y3JlYXRlKFBh
c3NSZWZQdHI8Tm9kZT4gaXRlbU5vZGUpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb24oaXRlbU5vZGUpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3
IEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihpdGVtTm9kZSkpOwogfQogCiBIVE1MUHJvcGVydGll
c0NvbGxlY3Rpb246OkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGl0
ZW1Ob2RlKQpAQCAtMTIzLDYgKzEyMyw5IEBAIHZvaWQgSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
OjpmaW5kUHJvcGV0aWVzT2ZBbkl0ZW0oTm9kZSogcm9vdCkgY29uc3QKIAogdW5zaWduZWQgSFRN
TFByb3BlcnRpZXNDb2xsZWN0aW9uOjpsZW5ndGgoKSBjb25zdAogeworICAgIGlmICghYmFzZSgp
KQorICAgICAgICByZXR1cm4gMDsKKwogICAgIGlmICghYmFzZSgpLT5pc0hUTUxFbGVtZW50KCkg
fHwgIXRvSFRNTEVsZW1lbnQoYmFzZSgpKS0+ZmFzdEhhc0F0dHJpYnV0ZShpdGVtc2NvcGVBdHRy
KSkKICAgICAgICAgcmV0dXJuIDA7CiAKQEAgLTEzMyw2ICsxMzYsOSBAQCB1bnNpZ25lZCBIVE1M
UHJvcGVydGllc0NvbGxlY3Rpb246Omxlbmd0aCgpIGNvbnN0CiAKIE5vZGUqIEhUTUxQcm9wZXJ0
aWVzQ29sbGVjdGlvbjo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKIHsKKyAgICBpZiAoIWJh
c2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoIWJhc2UoKS0+aXNIVE1MRWxlbWVu
dCgpIHx8ICF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRyaWJ1dGUoaXRlbXNjb3Bl
QXR0cikpCiAgICAgICAgIHJldHVybiAwOwogCkBAIC0xNTEsNiArMTU3LDkgQEAgUGFzc1JlZlB0
cjxET01TdHJpbmdMaXN0PiBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb246Om5hbWVzKCkgY29uc3QK
ICAgICBtX3Byb3BlcnRpZXMuY2xlYXIoKTsKICAgICBtX3Byb3BlcnR5TmFtZXMtPmNsZWFyKCk7
CiAKKyAgICBpZiAoIWJhc2UoKSkKKyAgICAgICAgcmV0dXJuIDA7CisKICAgICBpZiAoIWJhc2Uo
KS0+aXNIVE1MRWxlbWVudCgpIHx8ICF0b0hUTUxFbGVtZW50KGJhc2UoKSktPmZhc3RIYXNBdHRy
aWJ1dGUoaXRlbXNjb3BlQXR0cikpCiAgICAgICAgIHJldHVybiBtX3Byb3BlcnR5TmFtZXM7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbi5oCmluZGV4
IGU3NTI0Zjk4M2IyMDI5MTU3N2RiNzM0ZTIxYTQyZDAyMjFiNzNlNTMuLmNhODIyZjE2MGM2YzJj
OGZkOWQwYzhmMjEwMTUzZTFiNDJhZDBhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFByb3BlcnRpZXNDb2xsZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MUHJvcGVydGllc0NvbGxlY3Rpb24uaApAQCAtNDEsNyArNDEsNyBAQCBjbGFzcyBET01TdHJp
bmdMaXN0OwogCiBjbGFzcyBIVE1MUHJvcGVydGllc0NvbGxlY3Rpb24gOiBwdWJsaWMgSFRNTENv
bGxlY3Rpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPEhUTUxQcm9wZXJ0aWVz
Q29sbGVjdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4pOworICAgIHN0YXRpYyBQYXNzUmVm
UHRyPEhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4pOwog
ICAgIHZpcnR1YWwgfkhUTUxQcm9wZXJ0aWVzQ29sbGVjdGlvbigpOwogCiAgICAgdW5zaWduZWQg
bGVuZ3RoKCkgY29uc3QgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVs
ZW1lbnQuY3BwCmluZGV4IGJmZWJmOGU2NDc5YTc2Y2ExYzY2ZjBmNzM5OWViNjc5MWMyMmJhMjYu
Ljk1NDIxZjMwYjhhNmExN2I0N2NmYmRhZjc1MDE2NTQ3ZDAzNWVkM2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC05Miw2ICs5MiwxMiBAQCBIVE1MU2Vs
ZWN0RWxlbWVudDo6SFRNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFt
ZSwgRG9jdW1lbnQqIGRvYwogICAgIEFTU0VSVChoYXNUYWdOYW1lKHNlbGVjdFRhZykpOwogfQog
CitIVE1MU2VsZWN0RWxlbWVudDo6fkhUTUxTZWxlY3RFbGVtZW50KCkKK3sKKyAgICBpZiAobV9v
cHRpb25zQ29sbGVjdGlvbikKKyAgICAgICAgbV9vcHRpb25zQ29sbGVjdGlvbi0+ZGV0YWNoRnJv
bU5vZGUoKTsKK30KKwogUGFzc1JlZlB0cjxIVE1MU2VsZWN0RWxlbWVudD4gSFRNTFNlbGVjdEVs
ZW1lbnQ6OmNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9j
dW1lbnQsIEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAgICBBU1NFUlQodGFnTmFtZS5tYXRj
aGVzKHNlbGVjdFRhZykpOwpAQCAtMzI1LDExICszMzEsMTEgQEAgUmVuZGVyT2JqZWN0KiBIVE1M
U2VsZWN0RWxlbWVudDo6Y3JlYXRlUmVuZGVyZXIoUmVuZGVyQXJlbmEqIGFyZW5hLCBSZW5kZXJT
dHlsZSoKICAgICByZXR1cm4gbmV3IChhcmVuYSkgUmVuZGVyTGlzdEJveCh0aGlzKTsKIH0KIAot
SFRNTE9wdGlvbnNDb2xsZWN0aW9uKiBIVE1MU2VsZWN0RWxlbWVudDo6b3B0aW9ucygpCitQYXNz
UmVmUHRyPEhUTUxPcHRpb25zQ29sbGVjdGlvbj4gSFRNTFNlbGVjdEVsZW1lbnQ6Om9wdGlvbnMo
KQogewogICAgIGlmICghbV9vcHRpb25zQ29sbGVjdGlvbikKICAgICAgICAgbV9vcHRpb25zQ29s
bGVjdGlvbiA9IEhUTUxPcHRpb25zQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMpOwotICAgIHJldHVy
biBtX29wdGlvbnNDb2xsZWN0aW9uLmdldCgpOworICAgIHJldHVybiBtX29wdGlvbnNDb2xsZWN0
aW9uOwogfQogCiB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0SXRlbVNlbGVjdGVk
U3RhdGVzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAppbmRleCA1YzFh
YmRlODZlMjY0ZThjZjMxMTUwNGQyZWQxY2ZhZGFkNjZiNzk1Li41MzYzY2M3ODFjZTgwNjkxYjli
MThjNzg4YjIzZTAxMzEyYjM2ODVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oCkBAIC0yOCwxNyArMjgsMTkgQEAKIAogI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5oIgotI2luY2x1ZGUgIkhUTUxPcHRp
b25zQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBIVE1MT3B0aW9uRWxlbWVudDsKK2NsYXNzIEhUTUxPcHRpb25zQ29s
bGVjdGlvbjsKIAogY2xhc3MgSFRNTFNlbGVjdEVsZW1lbnQgOiBwdWJsaWMgSFRNTEZvcm1Db250
cm9sRWxlbWVudFdpdGhTdGF0ZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TFNlbGVjdEVsZW1lbnQ+IGNyZWF0ZShjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQqLCBI
VE1MRm9ybUVsZW1lbnQqKTsKIAorICAgIHZpcnR1YWwgfkhUTUxTZWxlY3RFbGVtZW50KCk7CisK
ICAgICBpbnQgc2VsZWN0ZWRJbmRleCgpIGNvbnN0OwogICAgIHZvaWQgc2V0U2VsZWN0ZWRJbmRl
eChpbnQpOwogCkBAIC02MSw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgdmFsdWUoKSBj
b25zdDsKICAgICB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYpOwogCi0gICAgSFRNTE9wdGlv
bnNDb2xsZWN0aW9uKiBvcHRpb25zKCk7CisgICAgUGFzc1JlZlB0cjxIVE1MT3B0aW9uc0NvbGxl
Y3Rpb24+IG9wdGlvbnMoKTsKIAogICAgIHZvaWQgb3B0aW9uRWxlbWVudENoaWxkcmVuQ2hhbmdl
ZCgpOwogCkBAIC0xNzMsNyArMTc1LDcgQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBj
aGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIgPSBmYWxzZSwgTm9kZSogYmVmb3Jl
Q2hhbmdlID0gMCwgTm9kZSogYWZ0ZXJDaGFuZ2UgPSAwLCBpbnQgY2hpbGRDb3VudERlbHRhID0g
MCk7CiAKLSAgICBPd25QdHI8SFRNTE9wdGlvbnNDb2xsZWN0aW9uPiBtX29wdGlvbnNDb2xsZWN0
aW9uOworICAgIFJlZlB0cjxIVE1MT3B0aW9uc0NvbGxlY3Rpb24+IG1fb3B0aW9uc0NvbGxlY3Rp
b247CiAKICAgICAvLyBtX2xpc3RJdGVtcyBjb250YWlucyBIVE1MT3B0aW9uRWxlbWVudCwgSFRN
TE9wdEdyb3VwRWxlbWVudCwgYW5kIEhUTUxIUkVsZW1lbnQgb2JqZWN0cy4KICAgICBtdXRhYmxl
IFZlY3RvcjxIVE1MRWxlbWVudCo+IG1fbGlzdEl0ZW1zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRhYmxlRWxlbWVudC5jcHAKaW5kZXggYWQ0ODhiNmJlMDIyMmIxODBlMGRjMjNmOTk5ZmUwYzc2
YTgzNTc1My4uYjZhNGE1YTZkNzY2ZGQ3M2FlNjAwODBjMGM3MjBjYjE0NGQyOWY2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUYWJsZUVsZW1lbnQuY3BwCkBAIC01Niw2ICs1Niw4IEBAIEhU
TUxUYWJsZUVsZW1lbnQ6OkhUTUxUYWJsZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFn
TmFtZSwgRG9jdW1lbnQqIGRvY3VtCiAKIEhUTUxUYWJsZUVsZW1lbnQ6On5IVE1MVGFibGVFbGVt
ZW50KCkKIHsKKyAgICBpZiAobV9yb3dzQ29sbGVjdGlvbikKKyAgICAgICAgbV9yb3dzQ29sbGVj
dGlvbi0+ZGV0YWNoRnJvbU5vZGUoKTsKIH0KIAogUGFzc1JlZlB0cjxIVE1MVGFibGVFbGVtZW50
PiBIVE1MVGFibGVFbGVtZW50OjpjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIw
NDA5ZWQ3ZjcyYTIzNTIxOTE4MWFkNjY5ZjU5NWEyY2RjNDk2NzkuLjcwZGJiMzY0YjZiNDU2ZDg0
Y2Q5MjBiYzAxOGE3OWE1YjU4ZmVlMmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wMS0w
NiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAg
VW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEwNDM3MyBhbmQgcjEwNDM3NC4KKyAgICAgICAgaHR0
cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTA0MzczCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwNDM3NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU3NjkKKworICAgICAgICBUb28gbWFueSBhc3NlcnRpb24g
ZmFpbHVyZXMuIChSZXF1ZXN0ZWQgYnkga2xpbmcgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBm
YXN0L2RvbS9odG1sY29sbGVjdGlvbi1wcm90ZWN0cy1iYXNlLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBmYXN0L2RvbS9odG1sY29sbGVjdGlvbi1wcm90ZWN0cy1iYXNlLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9kb20vaHRtbGNvbGxlY3Rpb24tem9tYmllcy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXpvbWJp
ZXMuaHRtbDogQWRkZWQuCisKIDIwMTItMDEtMDYgIEFuZHJlYXMgS2xpbmcgIDxhd2Vzb21la2xp
bmdAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IEhUTUxDb2xsZWN0aW9uIG93bmVyc2hp
cCBtb2RlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9u
LXByb3RlY3RzLWJhc2UtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaHRtbGNv
bGxlY3Rpb24tcHJvdGVjdHMtYmFzZS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IGNmYWI3Njk1MzgwY2VhNjYxZWRmMzBiZmVmM2YzMmQ3Mjc2OTA1YmQuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaHRtbGNvbGxlY3Rpb24tcHJvdGVjdHMtYmFzZS1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSwxMCArMCwwIEBACi1UaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBhIEhUTUxDb2xs
ZWN0aW9uIHByb3RlY3RzIGl0cyBiYXNlIG5vZGUgZnJvbSBiZWluZyBHQydkLgotCi1PbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyBvcHRpb25zWzBdLnBhcmVudE5vZGUuZ2V0QXR0
cmlidXRlKCdmb28nKSBpcyAnYmFyJwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQot
Ci1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2h0bWxj
b2xsZWN0aW9uLXByb3RlY3RzLWJhc2UuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2h0bWxj
b2xsZWN0aW9uLXByb3RlY3RzLWJhc2UuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggZDZiOWI0NDZjNGQ3ZmE2MTI1ZjI3OWFhNDI1MzY3NGExMzFlMzhiYS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9o
dG1sY29sbGVjdGlvbi1wcm90ZWN0cy1iYXNlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHNlbGVjdCBmb289ImJhciI+Ci08b3B0aW9uIG5hbWU9
IkEiPkE8L29wdGlvbj4KLTwvc2VsZWN0PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRoaXMg
dGVzdCB2ZXJpZmllcyB0aGF0IGEgSFRNTENvbGxlY3Rpb24gcHJvdGVjdHMgaXRzIGJhc2Ugbm9k
ZSBmcm9tIGJlaW5nIEdDJ2QuIik7Ci0KLW9wdGlvbnMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgic2VsZWN0IilbMF0ub3B0aW9uczsKLQotZG9jdW1lbnQuYm9keS5yZW1vdmVDaGls
ZChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgic2VsZWN0IilbMF0pOwotCi1nYygpOwot
Ci1vcHRpb25zWzBdID0gbmV3IE9wdGlvbigiYmlrIiwgImJvayIpOwotc2hvdWxkQmUoIm9wdGlv
bnNbMF0ucGFyZW50Tm9kZS5nZXRBdHRyaWJ1dGUoJ2ZvbycpIiwgIidiYXInIik7Ci0KLTwvc2Ny
aXB0PgotPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aHRtbGNvbGxlY3Rpb24tem9tYmllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9odG1sY29sbGVjdGlvbi16b21iaWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNGNhNmJk
ODc3NTc2YmQ4MGYzOGU1ODkzMjEzMWMzZmE2YmU2YWVkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vaHRtbGNvbGxlY3Rpb24tem9tYmllcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwzMCBAQAorVGhpcyB0ZXN0IHRlc3RzIHRoZSBiZWhhdmlvciBvZiBjb2xsZWN0aW9u
cyBhZnRlciB0aGVpciBiYXNlIG5vZGUgaGFzIGJlZW4gZGVzdHJveWVkLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworVGVzdGluZyBzZWxlY3RFbGVtZW50J3Mgb3B0aW9ucyBjb2xs
ZWN0aW9uLgorUEFTUyBjb2xsZWN0aW9uLmxlbmd0aCBpcyAyCitQQVNTIGNvbGxlY3Rpb25bMF0u
Z2V0QXR0cmlidXRlKCduYW1lJykgaXMgJ2ZvbycKK1BBU1MgY29sbGVjdGlvblsxXS5nZXRBdHRy
aWJ1dGUoJ25hbWUnKSBpcyAnYmFyJworRGVzdHJveWluZyBzZWxlY3RFbGVtZW50CitQQVNTIGNv
bGxlY3Rpb24ubGVuZ3RoIGlzIDAKK1BBU1MgY29sbGVjdGlvblswXSBpcyB1bmRlZmluZWQKK1Rl
c3RpbmcgZm9ybUVsZW1lbnQncyBlbGVtZW50cyBjb2xsZWN0aW9uLgorUEFTUyBjb2xsZWN0aW9u
Lmxlbmd0aCBpcyAyCitQQVNTIGNvbGxlY3Rpb25bMF0uZ2V0QXR0cmlidXRlKCduYW1lJykgaXMg
J2ZvbycKK1BBU1MgY29sbGVjdGlvblsxXS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSBpcyAnYmFyJwor
RGVzdHJveWluZyBmb3JtRWxlbWVudAorUEFTUyBjb2xsZWN0aW9uLmxlbmd0aCBpcyAwCitQQVNT
IGNvbGxlY3Rpb25bMF0gaXMgdW5kZWZpbmVkCitUZXN0aW5nIHRhYmxlRWxlbWVudCdzIHJvd3Mg
Y29sbGVjdGlvbi4KK1BBU1MgY29sbGVjdGlvbi5sZW5ndGggaXMgMgorUEFTUyBjb2xsZWN0aW9u
WzBdLmdldEF0dHJpYnV0ZSgnbmFtZScpIGlzICdmb28nCitQQVNTIGNvbGxlY3Rpb25bMV0uZ2V0
QXR0cmlidXRlKCduYW1lJykgaXMgJ2JhcicKK0Rlc3Ryb3lpbmcgdGFibGVFbGVtZW50CitQQVNT
IGNvbGxlY3Rpb24ubGVuZ3RoIGlzIDAKK1BBU1MgY29sbGVjdGlvblswXSBpcyB1bmRlZmluZWQK
K1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi16b21iaWVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9odG1sY29sbGVjdGlvbi16b21iaWVzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTk4Y2FmMDFjM2VlM2M2MDM5M2MxNzU0ZTM5YjJkOTQ2MDIzYjFiMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2h0bWxjb2xsZWN0aW9uLXpvbWJpZXMuaHRt
bApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNlbGVjdCBpZD0ic2VsZWN0RWxl
bWVudCI+Cis8b3B0aW9uIG5hbWU9ImZvbyIvPgorPG9wdGlvbiBuYW1lPSJiYXIiLz4KKzwvc2Vs
ZWN0PgorPGZvcm0gaWQ9ImZvcm1FbGVtZW50Ij4KKzxpbnB1dCBuYW1lPSJmb28iLz4KKzxpbnB1
dCBuYW1lPSJiYXIiLz4KKzwvZm9ybT4KKzx0YWJsZSBpZD0idGFibGVFbGVtZW50Ij4KKzx0ciBu
YW1lPSJmb28iPjwvdHI+Cis8dHIgbmFtZT0iYmFyIj48L3RyPgorPC90YWJsZT4KKzxzY3JpcHQ+
CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdGVzdHMgdGhlIGJlaGF2aW9yIG9mIGNvbGxlY3Rp
b25zIGFmdGVyIHRoZWlyIGJhc2Ugbm9kZSBoYXMgYmVlbiBkZXN0cm95ZWQuIik7CisKK3ZhciBl
bGVtZW50OwordmFyIGNvbGxlY3Rpb247CisKK2Z1bmN0aW9uIHRlc3Rab21iaWVCZWhhdmlvcihp
ZCwgY29sbGVjdGlvbkdldHRlck5hbWUpCit7CisgICAgZGVidWcoIlRlc3RpbmcgIiArIGlkICsg
IidzICIgKyBjb2xsZWN0aW9uR2V0dGVyTmFtZSArICIgY29sbGVjdGlvbi4iKTsKKworICAgIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChpZCk7CisgICAgY29sbGVjdGlvbiA9IGV2
YWwoImVsZW1lbnQuIiArIGNvbGxlY3Rpb25HZXR0ZXJOYW1lKTsKKworICAgIHNob3VsZEJlKCJj
b2xsZWN0aW9uLmxlbmd0aCIsICIyIik7CisgICAgc2hvdWxkQmUoImNvbGxlY3Rpb25bMF0uZ2V0
QXR0cmlidXRlKCduYW1lJykiLCAiJ2ZvbyciKTsKKyAgICBzaG91bGRCZSgiY29sbGVjdGlvblsx
XS5nZXRBdHRyaWJ1dGUoJ25hbWUnKSIsICInYmFyJyIpOworCisgICAgZGVidWcoIkRlc3Ryb3lp
bmcgIiArIGlkKTsKKyAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGVsZW1lbnQpOworICAg
IGVsZW1lbnQgPSBudWxsOworICAgIGdjKCk7CisKKyAgICBzaG91bGRCZSgiY29sbGVjdGlvbi5s
ZW5ndGgiLCAiMCIpOworICAgIHNob3VsZEJlKCJjb2xsZWN0aW9uWzBdIiwgInVuZGVmaW5lZCIp
OworfQorCit0ZXN0Wm9tYmllQmVoYXZpb3IoInNlbGVjdEVsZW1lbnQiLCAib3B0aW9ucyIpOwor
dGVzdFpvbWJpZUJlaGF2aW9yKCJmb3JtRWxlbWVudCIsICJlbGVtZW50cyIpOwordGVzdFpvbWJp
ZUJlaGF2aW9yKCJ0YWJsZUVsZW1lbnQiLCAicm93cyIpOworCis8L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>