<?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>174961</bug_id>
          
          <creation_ts>2017-07-28 17:49:47 -0700</creation_ts>
          <short_desc>REGRESSION(r219990): &quot;broke PLT on iOS (rdar://problem/33602751)&quot; (Requested by estes on #webkit).</short_desc>
          <delta_ts>2017-07-28 17:52:39 -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>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>174880</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1333144</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:49:47 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/219990 broke the build:
&quot;broke PLT on iOS (rdar://problem/33602751)&quot; (Requested by estes on #webkit).

This is an automatic bug report generated by webkitbot. 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 fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333146</commentid>
    <comment_count>1</comment_count>
      <attachid>316687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:50:06 -0700</bug_when>
    <thetext>Created attachment 316687
ROLLOUT of r219990

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>1333147</commentid>
    <comment_count>2</comment_count>
      <attachid>316687</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:52:06 -0700</bug_when>
    <thetext>Comment on attachment 316687
ROLLOUT of r219990

Clearing flags on attachment: 316687

Committed r220037: &lt;http://trac.webkit.org/changeset/220037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333148</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-07-28 17:52:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1333149</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-07-28 17:52:39 -0700</bug_when>
    <thetext>&lt;rdar://problem/33602973&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>316687</attachid>
            <date>2017-07-28 17:50:06 -0700</date>
            <delta_ts>2017-07-28 17:52:06 -0700</delta_ts>
            <desc>ROLLOUT of r219990</desc>
            <filename>bug-174961-20170728205005.patch</filename>
            <type>text/plain</type>
            <size>69205</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIwMDM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3YWMzYjE1ZGEwNjNhYWMy
NzUyNzMyZjhkMjU4NzFmZGI5ODAzYjguLmUxYjI3NGE5MmFhMTFmYWQ5NWY4ZWQwNWIwZWQyYThi
NzNiMzMzZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDctMjggIENvbW1pdCBR
dWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgorCisgICAgICAgIFVucmV2aWV3ZWQsIHJv
bGxpbmcgb3V0IHIyMTk5OTAuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzQ5NjEKKworICAgICAgICAiYnJva2UgUExUIG9uIGlPUyAocmRhcjovL3By
b2JsZW0vMzM2MDI3NTEpIiAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGVzdGVzIG9uICN3ZWJraXQp
LgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNldDoKKworICAgICAgICAiUGFydCAyIG9mOiBS
ZW5hbWUgRGF0YWJhc2VQcm9jZXNzIHRvIFN0b3JhZ2VQcm9jZXNzLiIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDg4MAorICAgICAgICBodHRwOi8v
dHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8yMTk5OTAKKwogMjAxNy0wNy0yOCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQVBJIHRlc3RzIHRoYXQgdXNlIFVS
TFNjaGVtZUhhbmRsZXIgYXJlIGZhaWxpbmcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmlu
ZGV4IDVmODI5OTJhZjdkNTYxYzhmZDdjNzY4NGY3MGQxZDZlMjViOTUwNTYuLjM0OWJjNDdlZmEy
MzZkZWU1M2M4YzcxZWEyM2JlNzQzYzFhNTUwNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mu
Y3BwCkBAIC0zOTgsNyArMzk4LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
czo6d3JpdGVCbG9ic1RvVGVtcG9yYXJ5RmlsZXMoY29uc3QgVmVjdG9yPFN0cmkKICAgICAgICAg
Zm9yIChhdXRvJiBmaWxlIDogZmlsZVJlZmVyZW5jZXMpCiAgICAgICAgICAgICBmaWxlLT5yZXZv
a2VGaWxlQWNjZXNzKCk7CiAKLSAgICAgICAgTmV0d29ya1Byb2Nlc3M6OnNpbmdsZXRvbigpLmdy
YW50U2FuZGJveEV4dGVuc2lvbnNUb1N0b3JhZ2VQcm9jZXNzRm9yQmxvYnMoZmlsZU5hbWVzLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVlc3RJZGVu
dGlmaWVyLCBmaWxlTmFtZXNdKCkgeworICAgICAgICBOZXR3b3JrUHJvY2Vzczo6c2luZ2xldG9u
KCkuZ3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnMoZmlsZU5h
bWVzLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyksIHJlcXVl
c3RJZGVudGlmaWVyLCBmaWxlTmFtZXNdKCkgewogICAgICAgICAgICAgaWYgKCFtX2Nvbm5lY3Rp
b24tPmlzVmFsaWQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggOGEwNjFjZDcyMjk4
MzBhYTg0OGM5MTg2YThlMTlhY2ViMjgxNDExNS4uODBhNGU1MTQxNWEzMWI3ZDQ3OTgyMTUzMGNi
M2VlNmMzOThhYmQ0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5jcHAKQEAgLTMwMywxNiArMzAzLDE2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6
OmRlc3Ryb3lTZXNzaW9uKFNlc3Npb25JRCBzZXNzaW9uSUQpCiAgICAgU2Vzc2lvblRyYWNrZXI6
OmRlc3Ryb3lTZXNzaW9uKHNlc3Npb25JRCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omdy
YW50U2FuZGJveEV4dGVuc2lvbnNUb1N0b3JhZ2VQcm9jZXNzRm9yQmxvYnMoY29uc3QgVmVjdG9y
PFN0cmluZz4mIGZpbGVuYW1lcywgRnVuY3Rpb248dm9pZCAoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmdyYW50U2FuZGJveEV4dGVuc2lvbnNUb0RhdGFiYXNl
UHJvY2Vzc0ZvckJsb2JzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZ1bmN0aW9u
PHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgc3RhdGljIHVpbnQ2NF90IGxh
c3RSZXF1ZXN0SUQ7CiAKICAgICB1aW50NjRfdCByZXF1ZXN0SUQgPSArK2xhc3RSZXF1ZXN0SUQ7
CiAgICAgbV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21wbGV0aW9uSGFuZGxlcnMuc2V0KHJl
cXVlc3RJRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OkdyYW50U2Fu
ZGJveEV4dGVuc2lvbnNUb1N0b3JhZ2VQcm9jZXNzRm9yQmxvYnMocmVxdWVzdElELCBmaWxlbmFt
ZXMpLCAwKTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpHcmFudFNhbmRib3hFeHRlbnNpb25zVG9EYXRhYmFzZVByb2Nl
c3NGb3JCbG9icyhyZXF1ZXN0SUQsIGZpbGVuYW1lcyksIDApOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjpkaWRHcmFudFNhbmRib3hFeHRlbnNpb25zVG9TdG9yYWdlUHJvY2Vzc0ZvckJsb2Jz
KHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZEdyYW50U2FuZGJv
eEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCkK
IHsKICAgICBpZiAoYXV0byBoYW5kbGVyID0gbV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21w
bGV0aW9uSGFuZGxlcnMudGFrZShyZXF1ZXN0SUQpKQogICAgICAgICBoYW5kbGVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKaW5kZXggNjc0NmJl
OTE0OTQxYmQxOWIyNDY3M2E4MGZjNWM5YjM3ZjNkOTE2Zi4uYmQyMTg4YmI0ZWMwYjdhYTg1MWUz
ZGJmOWJhODBlZDI3ODVjOTI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MuaApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZW5zdXJlUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbihXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycyYm
KTsKIAotICAgIHZvaWQgZ3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nlc3NGb3JC
bG9icyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZW5hbWVzLCBGdW5jdGlvbjx2b2lkICgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnNUb0Rh
dGFiYXNlUHJvY2Vzc0ZvckJsb2JzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIEZ1
bmN0aW9uPHZvaWQgKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpOwogCiAjaWYgSEFWRShDRk5FVFdP
UktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgdm9pZCB1cGRhdGVDb29raWVQYXJ0aXRpb25p
bmdGb3JUb3BQcml2YXRlbHlPd25lZERvbWFpbnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFp
bnNUb1JlbW92ZSwgY29uc3QgVmVjdG9yPFN0cmluZz4mIGRvbWFpbnNUb0FkZCwgYm9vbCBzaG91
bGRDbGVhckZpcnN0KTsKQEAgLTE5Nyw3ICsxOTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0
QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAgICAgdm9pZCBzeW5j
QWxsQ29va2llcygpOwogCi0gICAgdm9pZCBkaWRHcmFudFNhbmRib3hFeHRlbnNpb25zVG9TdG9y
YWdlUHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCk7CisgICAgdm9pZCBkaWRHcmFu
dFNhbmRib3hFeHRlbnNpb25zVG9EYXRhYmFzZVByb2Nlc3NGb3JCbG9icyh1aW50NjRfdCByZXF1
ZXN0SUQpOwogCiAjaWYgVVNFKFNPVVApCiAgICAgdm9pZCBzZXRJZ25vcmVUTFNFcnJvcnMoYm9v
bCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCAzNmU0Nzc3ODlmMjkyMzM2ZTg0MzA4NWExYmU0MjMyMTBk
ZWE4ZGEwLi4yMGNlNjRiODM1MDEwNmZiOGJmNWQ5ZDY0MjhhNTc3MmU4ZDM5ZWNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVz
c2FnZXMuaW4KQEAgLTgwLDcgKzgwLDcgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVn
YWN5UmVjZWl2ZXIgewogICAgIENhbmNlbFByZXBhcmVUb1N1c3BlbmQoKQogICAgIFByb2Nlc3NE
aWRSZXN1bWUoKQogCi0gICAgRGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nl
c3NGb3JCbG9icyh1aW50NjRfdCByZXF1ZXN0SUQpCisgICAgRGlkR3JhbnRTYW5kYm94RXh0ZW5z
aW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVxdWVzdElEKQogCiAjaWYg
SEFWRShDRk5FVFdPUktfU1RPUkFHRV9QQVJUSVRJT05JTkcpCiAgICAgVXBkYXRlQ29va2llUGFy
dGl0aW9uaW5nRm9yVG9wUHJpdmF0ZWx5T3duZWREb21haW5zKFZlY3RvcjxTdHJpbmc+IGRvbWFp
bnNUb1JlbW92ZSwgVmVjdG9yPFN0cmluZz4gZG9tYWluc1RvQWRkLCBib29sIHNob3VsZENsZWFy
Rmlyc3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJs
ZVBhdGguaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCmlu
ZGV4IGI1MTU5ZmJiNTY3ZDAyZTc2ZjQ5NjczMjgwOWQ0Y2YyZGM4ZjBjMDYuLmE1OGE5MDc2MDdm
OWZmMWJjZDEwYmM2MmVmZmFkYWEzODg2NGNmNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aC5oCkBAIC0zMiw2ICszMiw2IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7CiBTdHJpbmcgZXhlY3V0
YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsKIFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29y
a1Byb2Nlc3MoKTsKLVN0cmluZyBleGVjdXRhYmxlUGF0aE9mU3RvcmFnZVByb2Nlc3MoKTsKK1N0
cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCk7CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2d0ay9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKaW5k
ZXggOGIzODMzMzgwOGI1NWFkNmZmNjliMjc4ZTQ4NzY5ZmJkOTA0MDY5Ni4uZjM4ZTFjZTQyOTll
ZGEzMGIwNGJmNmNlMjI5YmQwYjNjODRhNTU0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKQEAgLTg0LDkgKzg0LDkg
QEAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpCiAgICAgcmV0dXJuIGZp
bmRXZWJLaXRQcm9jZXNzKCJXZWJLaXROZXR3b3JrUHJvY2VzcyIpOwogfQogCi1TdHJpbmcgZXhl
Y3V0YWJsZVBhdGhPZlN0b3JhZ2VQcm9jZXNzKCkKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0
YWJhc2VQcm9jZXNzKCkKIHsKLSAgICByZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldlYktpdFN0
b3JhZ2VQcm9jZXNzIik7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXZWJLaXREYXRh
YmFzZVByb2Nlc3MiKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCmluZGV4
IDIyZDQ1Y2JiYmVmYTRhMjQxNDM5NmNlNWQ1MTZmNjM2ZTFhOWMyZTEuLjllZjQ2MjliMjVkYmZm
YjhlOGRiN2UxZjVkZWQ1MTVmYjA3ZDlmNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCkBAIC03Nyw5ICs3Nyw5IEBA
IFN0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQogICAgIHJldHVybiBmaW5k
V2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKIH0KIAotU3RyaW5nIGV4ZWN1dGFi
bGVQYXRoT2ZTdG9yYWdlUHJvY2VzcygpCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNl
UHJvY2VzcygpCiB7Ci0gICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVTdG9yYWdlUHJv
Y2VzcyIpOworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9jZXNz
Iik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b0NsaWVudC5jcHAKaW5kZXggZGZlYzBmYzMwZjAyMWQ1ZDVmZDg5ZGUyOWVjOTZlNGExYWFiNmQw
Ni4uMzg5MDVjMTMxOWI3Y2RjNDlmZDViZWExMmRjN2ZhOWViMTQxMWJkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRv
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL0luZGV4ZWREQi9X
ZWJJREJDb25uZWN0aW9uVG9DbGllbnQuY3BwCkBAIC0yODgsNyArMjg4LDcgQEAgdm9pZCBXZWJJ
REJDb25uZWN0aW9uVG9DbGllbnQ6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0LCBjb25zdCBJREIKICAgICAgICAgJiYgb3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok92ZXJ3cml0ZSkK
ICAgICAgICAgJiYgb3ZlcndyaXRlTW9kZSAhPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSW5kZXhl
ZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU6Ok92ZXJ3cml0ZUZvckN1cnNvcikpIHsKICAg
ICAgICAgLy8gRklYTUU6IFRoaXMgbWVzc2FnZSBmcm9tIHRoZSBXZWJQcm9jZXNzIGlzIGNvcnJ1
cHQuCi0gICAgICAgIC8vIFRoZSBTdG9yYWdlUHJvY2VzcyBzaG91bGQgcmV0dXJuIGVhcmx5IGF0
IHRoaXMgcG9pbnQsIGJ1dCBjYW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2ViUHJvY2Vzcz8KKyAg
ICAgICAgLy8gVGhlIERhdGFiYXNlUHJvY2VzcyBzaG91bGQgcmV0dXJuIGVhcmx5IGF0IHRoaXMg
cG9pbnQsIGJ1dCBjYW4gd2UgYWxzbyBraWxsIHRoZSBiYWQgV2ViUHJvY2Vzcz8KICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLmNwcAppbmRleCAxY2M3YTZiZDQwZTM0ZjIwYjk1NWUwZTU0YzFkYjY2ZTNkMjM2
YmE5Li5mNGQ5NGJjZDM1MWFjZDIyNjI4ZDY2NTAxOTk5NGEzYjllNDM4NTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3JhZ2VQcm9jZXNzLmNwcApAQCAtMTIxLDcg
KzEyMSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVXZWJzaXRlRGF0YVN0b3Jl
KGNvbnN0IFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhCiAgICAgYWRkUmVzdWx0Lml0ZXJhdG9y
LT52YWx1ZSA9IHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5OwogICAgIFNhbmRi
b3hFeHRlbnNpb246OmNvbnN1bWVQZXJtYW5lbnRseShwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFz
ZURpcmVjdG9yeUV4dGVuc2lvbkhhbmRsZSk7CiAKLSAgICBwb3N0U3RvcmFnZVRhc2soY3JlYXRl
Q3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmU3RvcmFnZVByb2Nlc3M6OmVuc3VyZVBhdGhFeGlzdHMs
IHBhcmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5KSk7CisgICAgcG9zdERhdGFiYXNl
VGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZTdG9yYWdlUHJvY2Vzczo6ZW5zdXJl
UGF0aEV4aXN0cywgcGFyYW1ldGVycy5pbmRleGVkRGF0YWJhc2VEaXJlY3RvcnkpKTsKICNlbmRp
ZgogfQogCkBAIC0xMzMsMzkgKzEzMywzOSBAQCB2b2lkIFN0b3JhZ2VQcm9jZXNzOjplbnN1cmVQ
YXRoRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gbWFrZSBhbGwgZGlyZWN0b3JpZXMgZm9yIHBhdGggJyVzJyIsIHBhdGgudXRmOCgpLmRhdGEo
KSk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OnBvc3RTdG9yYWdlVGFzayhDcm9zc1RocmVh
ZFRhc2smJiB0YXNrKQordm9pZCBTdG9yYWdlUHJvY2Vzczo6cG9zdERhdGFiYXNlVGFzayhDcm9z
c1RocmVhZFRhc2smJiB0YXNrKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAK
LSAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0b3JhZ2VUYXNrTXV0ZXgpOworICAgIExvY2tIb2xk
ZXIgbG9ja2VyKG1fZGF0YWJhc2VUYXNrTXV0ZXgpOwogCi0gICAgbV9zdG9yYWdlVGFza3MuYXBw
ZW5kKFdURk1vdmUodGFzaykpOworICAgIG1fZGF0YWJhc2VUYXNrcy5hcHBlbmQoV1RGTW92ZSh0
YXNrKSk7CiAKICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpc10gewotICAgICAgICBwZXJmb3Jt
TmV4dFN0b3JhZ2VUYXNrKCk7CisgICAgICAgIHBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKCk7CiAg
ICAgfSk7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3M6OnBlcmZvcm1OZXh0U3RvcmFnZVRhc2so
KQordm9pZCBTdG9yYWdlUHJvY2Vzczo6cGVyZm9ybU5leHREYXRhYmFzZVRhc2soKQogewogICAg
IEFTU0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCiAgICAgQ3Jvc3NUaHJlYWRUYXNrIHRhc2s7
CiAgICAgewotICAgICAgICBMb2NrSG9sZGVyIGxvY2tlcihtX3N0b3JhZ2VUYXNrTXV0ZXgpOwot
ICAgICAgICBBU1NFUlQoIW1fc3RvcmFnZVRhc2tzLmlzRW1wdHkoKSk7Ci0gICAgICAgIHRhc2sg
PSBtX3N0b3JhZ2VUYXNrcy50YWtlRmlyc3QoKTsKKyAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIo
bV9kYXRhYmFzZVRhc2tNdXRleCk7CisgICAgICAgIEFTU0VSVCghbV9kYXRhYmFzZVRhc2tzLmlz
RW1wdHkoKSk7CisgICAgICAgIHRhc2sgPSBtX2RhdGFiYXNlVGFza3MudGFrZUZpcnN0KCk7CiAg
ICAgfQogCiAgICAgdGFzay5wZXJmb3JtVGFzaygpOwogfQogCi12b2lkIFN0b3JhZ2VQcm9jZXNz
OjpjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpCit2b2lkIFN0b3JhZ2VQcm9j
ZXNzOjpjcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewogI2lmIFVTRShV
TklYX0RPTUFJTl9TT0NLRVRTKQogICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2Nr
ZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oKTsKICAg
ICBtX2RhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbnMuYXBwZW5kKFN0b3JhZ2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uOjpjcmVhdGUoc29ja2V0UGFpci5zZXJ2ZXIpKTsKLSAgICBwYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpE
aWRDcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQoc29j
a2V0UGFpci5jbGllbnQpKSwgMCk7CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQcm94eTo6RGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlBy
b2Nlc3NDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudChzb2NrZXRQYWlyLmNsaWVudCkpLCAwKTsK
ICNlbGlmIE9TKERBUldJTikKICAgICAvLyBDcmVhdGUgdGhlIGxpc3RlbmluZyBwb3J0LgogICAg
IG1hY2hfcG9ydF90IGxpc3RlbmluZ1BvcnQ7CkBAIC0xNzUsNyArMTc1LDcgQEAgdm9pZCBTdG9y
YWdlUHJvY2Vzczo6Y3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oKQogICAgIG1f
ZGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9ucy5hcHBlbmQoU3RvcmFnZVRvV2ViUHJvY2Vz
c0Nvbm5lY3Rpb246OmNyZWF0ZShJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIobGlzdGVuaW5n
UG9ydCkpKTsKIAogICAgIElQQzo6QXR0YWNobWVudCBjbGllbnRQb3J0KGxpc3RlbmluZ1BvcnQs
IE1BQ0hfTVNHX1RZUEVfTUFLRV9TRU5EKTsKLSAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzc1Byb3h5OjpEaWRDcmVhdGVTdG9yYWdlVG9X
ZWJQcm9jZXNzQ29ubmVjdGlvbihjbGllbnRQb3J0KSwgMCk7CisgICAgcGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3NQcm94eTo6RGlkQ3JlYXRl
RGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNsaWVudFBvcnQpLCAwKTsKICNlbHNlCiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKICNlbmRpZgpAQCAtMTk2LDcgKzE5Niw3IEBAIHZvaWQgU3Rv
cmFnZVByb2Nlc3M6OmZldGNoV2Vic2l0ZURhdGEoU2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9u
U2V0PFdlYnNpdGVEYXRhCiAKICAgICBpZiAod2Vic2l0ZURhdGFUeXBlcy5jb250YWlucyhXZWJz
aXRlRGF0YVR5cGU6OkluZGV4ZWREQkRhdGFiYXNlcykpIHsKICAgICAgICAgLy8gRklYTUU6IFBp
Y2sgdGhlIHJpZ2h0IGRhdGFiYXNlIHN0b3JlIGJhc2VkIG9uIHRoZSBzZXNzaW9uIElELgotICAg
ICAgICBwb3N0U3RvcmFnZVRhc2soQ3Jvc3NUaHJlYWRUYXNrKFt0aGlzLCBjb21wbGV0aW9uSGFu
ZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBwYXRoID0gV1RGTW92ZShwYXRoKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgcG9zdERhdGFiYXNlVGFzayhDcm9zc1RocmVhZFRhc2soW3Ro
aXMsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHBhdGgg
PSBXVEZNb3ZlKHBhdGgpXSgpIG11dGFibGUgewogICAgICAgICAgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBzZWN1cml0eU9yaWdpbnMgPSBpbmRleGVkRGF0YWJhc2VPcmlnaW5zKHBhdGgpXSB7CiAgICAg
ICAgICAgICAgICAgV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGE7CiAgICAgICAgICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBzZWN1cml0eU9yaWdpbiA6IHNlY3VyaXR5T3JpZ2lucykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaCBiL1NvdXJj
ZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvU3RvcmFnZVByb2Nlc3MuaAppbmRleCAzYmM3MmUyMDZh
MjFjMjIwMzUzOTg1NTdlMGZlNzBhOWRlMjY0NGRkLi5hNjdjNDNlZTg1MjdhYmVhODBmNDc4ZmZk
YTFkYzhiMzMwYWIwNzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNz
L1N0b3JhZ2VQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9y
YWdlUHJvY2Vzcy5oCkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIFdvcmtRdWV1ZSYg
cXVldWUoKSB7IHJldHVybiBtX3F1ZXVlLmdldCgpOyB9CiAKLSAgICB2b2lkIHBvc3RTdG9yYWdl
VGFzayhDcm9zc1RocmVhZFRhc2smJik7CisgICAgdm9pZCBwb3N0RGF0YWJhc2VUYXNrKENyb3Nz
VGhyZWFkVGFzayYmKTsKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgIC8vIFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCQmFja2luZ1N0b3JlRmlsZUhhbmRsZXIKQEAgLTkwLDcgKzkw
LDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIE1lc3NhZ2UgSGFuZGxlcnMKICAgICB2b2lkIGluaXRp
YWxpemVXZWJzaXRlRGF0YVN0b3JlKGNvbnN0IFN0b3JhZ2VQcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJik7Ci0gICAgdm9pZCBjcmVhdGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpOwor
ICAgIHZvaWQgY3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCk7CiAKICAgICB2
b2lkIGZldGNoV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiB3ZWJzaXRlRGF0YVR5cGVzLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKICAgICB2
b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFdlYkNvcmU6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhVHlwZT4gd2Vic2l0ZURhdGFUeXBlcywgc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9jazo6
dGltZV9wb2ludCBtb2RpZmllZFNpbmNlLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKQEAgLTEwNSw3
ICsxMDUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICAvLyBGb3IgZXhlY3V0aW9uIG9uIHdv
cmsgcXVldWUgdGhyZWFkIG9ubHkKLSAgICB2b2lkIHBlcmZvcm1OZXh0U3RvcmFnZVRhc2soKTsK
KyAgICB2b2lkIHBlcmZvcm1OZXh0RGF0YWJhc2VUYXNrKCk7CiAgICAgdm9pZCBlbnN1cmVQYXRo
RXhpc3RzKGNvbnN0IFN0cmluZyYpOwogCiAgICAgVmVjdG9yPFJlZlB0cjxTdG9yYWdlVG9XZWJQ
cm9jZXNzQ29ubmVjdGlvbj4+IG1fZGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uczsKQEAg
LTExOSw4ICsxMTksOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2Fu
ZGJveEV4dGVuc2lvbj4+IG1fYmxvYlRlbXBvcmFyeUZpbGVTYW5kYm94RXh0ZW5zaW9uczsKICAg
ICBIYXNoTWFwPHVpbnQ2NF90LCBXVEY6OkZ1bmN0aW9uPHZvaWQgKFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZUFycmF5JiYpPj4gbV9zYW5kYm94RXh0ZW5zaW9uRm9yQmxvYnNDb21wbGV0aW9uSGFu
ZGxlcnM7CiAKLSAgICBEZXF1ZTxDcm9zc1RocmVhZFRhc2s+IG1fc3RvcmFnZVRhc2tzOwotICAg
IExvY2sgbV9zdG9yYWdlVGFza011dGV4OworICAgIERlcXVlPENyb3NzVGhyZWFkVGFzaz4gbV9k
YXRhYmFzZVRhc2tzOworICAgIExvY2sgbV9kYXRhYmFzZVRhc2tNdXRleDsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vz
cy9TdG9yYWdlUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nl
c3MvU3RvcmFnZVByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNGJkZWM3M2U2NGYxYWNmZTA2NTQ3
N2YxNGE2ZWZhMGEwMGUwODJiYi4uMDU1ODczNzU0YmU2NjU0NjAzYzEyYmRiNzU1OTI1ZjM2MTU5
NzAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TdG9yYWdlUHJvY2Vzcy9TdG9yYWdlUHJv
Y2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1N0b3JhZ2VQcm9jZXNzL1N0b3Jh
Z2VQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBAIG1lc3NhZ2VzIC0+IFN0b3Jh
Z2VQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9y
ZShzdHJ1Y3QgV2ViS2l0OjpTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBwcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzKQogCiAgICAgIyBDcmVhdGVzIGEgY29ubmVjdGlvbiBmb3IgY29t
bXVuaWNhdGlvbiB3aXRoIGEgV2ViUHJvY2VzcwotICAgIENyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nl
c3NDb25uZWN0aW9uKCkKKyAgICBDcmVhdGVEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24o
KQogCiAgICAgRmV0Y2hXZWJzaXRlRGF0YShXZWJDb3JlOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBP
cHRpb25TZXQ8V2ViS2l0OjpXZWJzaXRlRGF0YVR5cGU+IHdlYnNpdGVEYXRhVHlwZXMsIHVpbnQ2
NF90IGNhbGxiYWNrSUQpCiAgICAgRGVsZXRlV2Vic2l0ZURhdGEoV2ViQ29yZTo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYktpdDo6V2Vic2l0ZURhdGFUeXBlPiB3ZWJzaXRlRGF0
YVR5cGVzLCBzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2lu
Y2UsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1N0b3Jh
Z2VQcm9jZXNzL21hYy9TdG9yYWdlUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJLaXQvU3RvcmFn
ZVByb2Nlc3MvbWFjL1N0b3JhZ2VQcm9jZXNzTWFjLm1tCmluZGV4IGMwMzg4NjBmOGYxNDNjMGRj
ZmZjOTNhNTI3NjZkNjM0NTQ3NDFmMzkuLmQ2YWYxNjljZjU3ZTQ1OGMzOWQxOTQ1MzYwMDA5NmY1
N2IwYTc1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFjL1N0
b3JhZ2VQcm9jZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvU3RvcmFnZVByb2Nlc3MvbWFj
L1N0b3JhZ2VQcm9jZXNzTWFjLm1tCkBAIC00Niw3ICs0Niw3IEBAIHZvaWQgU3RvcmFnZVByb2Nl
c3M6OmluaXRpYWxpemVQcm9jZXNzKGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFy
YW1ldGVyCiAKIHZvaWQgU3RvcmFnZVByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25z
dCBDaGlsZFByb2Nlc3NJbml0aWFsaXphdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0g
ICAgTlNTdHJpbmcgKmFwcGxpY2F0aW9uTmFtZSA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0
OldFQl9VSV9TVFJJTkcoIiVAIFN0b3JhZ2UiLCAidmlzaWJsZSBuYW1lIG9mIHRoZSBzdG9yYWdl
IHByb2Nlc3MuIFRoZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3Ry
aW5nICopcGFyYW1ldGVycy51aVByb2Nlc3NOYW1lXTsKKyAgICBOU1N0cmluZyAqYXBwbGljYXRp
b25OYW1lID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6V0VCX1VJX1NUUklORygiJUAgRGF0
YWJhc2UgU3RvcmFnZSIsICJ2aXNpYmxlIG5hbWUgb2YgdGhlIGRhdGFiYXNlIHByb2Nlc3MuIFRo
ZSBhcmd1bWVudCBpcyB0aGUgYXBwbGljYXRpb24gbmFtZS4iKSwgKE5TU3RyaW5nICopcGFyYW1l
dGVycy51aVByb2Nlc3NOYW1lXTsKICAgICBXS1NldFZpc2libGVBcHBsaWNhdGlvbk5hbWUoKENG
U3RyaW5nUmVmKWFwcGxpY2F0aW9uTmFtZSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQy9XS0NvbnRleHQuY3BwCmluZGV4IGRiNDcwNGEwN2NiMjZiOTM3YWZhZWJiODlhYzI3
OTRhOGJmYjY1MDMuLmE1MDE5YjI1MjM2NDY0Y2Q0MTE1YmFkMDdmNjBjYWYwODU5MWNmYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmNwcApAQCAtNTkwLDUg
KzU5MCw1IEBAIHBpZF90IFdLQ29udGV4dEdldE5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcihXS0Nv
bnRleHRSZWYgY29udGV4dFJlZikKIAogcGlkX3QgV0tDb250ZXh0R2V0RGF0YWJhc2VQcm9jZXNz
SWRlbnRpZmllcihXS0NvbnRleHRSZWYgY29udGV4dFJlZikKIHsKLSAgICByZXR1cm4gdG9JbXBs
KGNvbnRleHRSZWYpLT5zdG9yYWdlUHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICByZXR1cm4gdG9J
bXBsKGNvbnRleHRSZWYpLT5kYXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCmluZGV4
IDA3NzlhMjBlYzgxMzJlZmViNGU0NWYwOTMwMTZmOTQ5MDA5MjkyYjQuLjI1MGY3MTZjMGM2OGI4
MGY1ODA0NjE0NzM0ZjcyZGQ1OGRhNmU4OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCkBAIC0zODUsOSArMzg1LDkgQEAgc3Rh
dGljIE5TRGljdGlvbmFyeSAqcG9saWNpZXNIYXNoTWFwVG9EaWN0aW9uYXJ5KGNvbnN0IEhhc2hN
YXA8U3RyaW5nLCBIYXNoTWFwPFMKICAgICBfcHJvY2Vzc1Bvb2wtPnNldEF1dG9tYXRpb25TZXNz
aW9uKGF1dG9tYXRpb25TZXNzaW9uID8gYXV0b21hdGlvblNlc3Npb24tPl9zZXNzaW9uLmdldCgp
IDogbnVsbHB0cik7CiB9CiAKLS0gKHZvaWQpX3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNzCistICh2
b2lkKV90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MKIHsKLSAgICBfcHJvY2Vzc1Bvb2wtPnRlcm1p
bmF0ZVN0b3JhZ2VQcm9jZXNzKCk7CisgICAgX3Byb2Nlc3NQb29sLT50ZXJtaW5hdGVEYXRhYmFz
ZVByb2Nlc3MoKTsKIH0KIAogLSAodm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3MKQEAgLTQw
MCw5ICs0MDAsOSBAQCBzdGF0aWMgTlNEaWN0aW9uYXJ5ICpwb2xpY2llc0hhc2hNYXBUb0RpY3Rp
b25hcnkoY29uc3QgSGFzaE1hcDxTdHJpbmcsIEhhc2hNYXA8UwogICAgIHJldHVybiBfcHJvY2Vz
c1Bvb2wtPm5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpOwogfQogCi0tIChwaWRfdClfc3RvcmFn
ZVByb2Nlc3NJZGVudGlmaWVyCistIChwaWRfdClfZGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcgog
ewotICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPnN0b3JhZ2VQcm9jZXNzSWRlbnRpZmllcigpOwor
ICAgIHJldHVybiBfcHJvY2Vzc1Bvb2wtPmRhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0K
IAogLSAodm9pZClfc3luY05ldHdvcmtQcm9jZXNzQ29va2llcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAppbmRl
eCBkYTMxOTY5ZTEzYTYyMzcyMmVkZGRiOTdiOTU4MDBlMTQ1NjhjNTg4Li4xYTZjNmNjMTAzMGI0
ZDNlMDA5OWFjNTk3YzlmMWU0ZWNiNDcxOTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbFByaXZhdGUuaApAQCAtNzIsMTIg
KzcyLDEyIEBACiAtICh2b2lkKV9zZXRBdXRvbWF0aW9uU2Vzc2lvbjooX1dLQXV0b21hdGlvblNl
c3Npb24gKilhdXRvbWF0aW9uU2Vzc2lvbiBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMiks
IGlvcygxMC4wKSk7CiAKIC8vIFRlc3Qgb25seS4gU2hvdWxkIGJlIGNhbGxlZCBvbmx5IHdoaWxl
IG5vIHdlYiBjb250ZW50IHByb2Nlc3NlcyBhcmUgcnVubmluZy4KLS0gKHZvaWQpX3Rlcm1pbmF0
ZVN0b3JhZ2VQcm9jZXNzOworLSAodm9pZClfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzOwogLSAo
dm9pZClfdGVybWluYXRlTmV0d29ya1Byb2Nlc3M7CiAKIC8vIFRlc3Qgb25seS4KIC0gKHBpZF90
KV9uZXR3b3JrUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFD
X1RCQSksIGlvcyhXS19JT1NfVEJBKSk7Ci0tIChwaWRfdClfc3RvcmFnZVByb2Nlc3NJZGVudGlm
aWVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkp
OworLSAocGlkX3QpX2RhdGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIC8vIFRlc3Qgb25seS4KIC0g
KHNpemVfdClfd2ViUHJvY2Vzc0NvdW50IFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KFdLX01BQ19U
QkEpLCBpb3MoV0tfSU9TX1RCQSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwCmluZGV4IGE2ZTRkOGFmYjQ3YmNkYTgxY2E3NmIyZGU5MTYxN2RlNzlh
NDk0NTMuLmZlZjc2ODA1YTE5Y2QxZjM1ZjBjMzIyNWZiMDdiZTEyNzhjY2QzOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTcwLDggKzcw
LDggQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1
bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE8KICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6Ok5ldHdvcms6CiAgICAgICAgIHZhcm5hbWUgPSAiTkVUV09SS19QUk9DRVNT
X0NNRF9QUkVGSVgiOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6OlN0b3JhZ2U6Ci0gICAgICAgIHZhcm5hbWUgPSAiU1RPUkFHRV9QUk9DRVNT
X0NNRF9QUkVGSVgiOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0
YWJhc2U6CisgICAgICAgIHZhcm5hbWUgPSAiREFUQUJBU0VfUFJPQ0VTU19DTURfUFJFRklYIjsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNvbnN0IGNoYXIqIHByb2Nlc3NDbWRQcmVmaXgg
PSBnZXRlbnYodmFybmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5j
aGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDY3OThmYzlmOWQwZjI5OWQ2ZTY2ZjNlMzU2ZWNj
ZTk5YmVmMTcwYmUuLjhhNTYyNDZhNzcyM2I2NTJkZmJhZTQ0MTZlY2QyYjVkNzUxYmFmNGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hl
ci5oCkBAIC01MSw3ICs1MSw3IEBAIHB1YmxpYzoKICAgICAgICAgUGx1Z2luNjQsCiAjZW5kaWYK
ICAgICAgICAgTmV0d29yaywKLSAgICAgICAgU3RvcmFnZSwKKyAgICAgICAgRGF0YWJhc2UsCiAg
ICAgfTsKIAogICAgIHN0cnVjdCBMYXVuY2hPcHRpb25zIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAK
aW5kZXggMjU2YmZmM2ZhZWJjNjJjODRjNDFmNjkwMjY3NGRlMzkwOTQxMDkwOC4uNmVkNDk1MDhh
M2M1N2VjNWQwNTdmMTgwZGJkNjMxZTRlZTYwZDdmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAK
QEAgLTgxLDggKzgxLDggQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQog
ICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6TmV0d29yazoKICAgICAgICAg
ZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKICAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpTdG9yYWdl
OgotICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZTdG9yYWdlUHJvY2Vz
cygpOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6Cisg
ICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2Vzcygp
OwogICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Q
cm9jZXNzTGF1bmNoZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9t
YWMvUHJvY2Vzc0xhdW5jaGVyTWFjLm1tCmluZGV4IDYwNTdiNGE5NDg4MDA2MDFkZWFhYzhhODYy
Yzc1ZmRiOTNhMGNhZWYuLjM5MGNmZTk1MjkxNGFhMjY0N2M1YjE1NjViYTYwODBiNTdjMDU0YmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL21hYy9Qcm9jZXNz
TGF1bmNoZXJNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvbWFj
L1Byb2Nlc3NMYXVuY2hlck1hYy5tbQpAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogc2VydmljZU5hbWUoY29uc3QgUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPcHRpbwogICAgICAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCI7CiAg
ICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgogICAgICAgICBy
ZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuTmV0d29ya2luZyI7Ci0gICAgY2FzZSBQcm9jZXNzTGF1
bmNoZXI6OlByb2Nlc3NUeXBlOjpTdG9yYWdlOgorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZTo6RGF0YWJhc2U6CiAgICAgICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5T
dG9yYWdlIjsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICBjYXNlIFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlBsdWdpbjMyOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApp
bmRleCAyYzYyMzg0N2QwZjg1NmRjNjFkZjlhY2IwMGRkMzJjNzNkOWM1NmNmLi41OTU4YWIwOWEy
OTk5YTRkMGEzZTI5YTUwNTg1NzkzMmI4OWYwZjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApA
QCAtNjcsOCArNjcsOCBAQCB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCiAg
ICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgogICAgICAgICBl
eGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOwogICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OlN0b3JhZ2U6
Ci0gICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZlN0b3JhZ2VQcm9jZXNz
KCk7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZToKKyAg
ICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggY2YzOTZmNGIxMGY1NWQ2Yzk4MDg1YTM2ZGQyOGQ3YTgy
MmY5NzJjMS4uMGU5YzA3ODVjYjc3ZmUxMTAyYTE4M2E4NzE1N2UyYjQ2MzVmYWRmMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuY3BwCkBAIC0yODksMTkgKzI4OSwxOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmRpZERlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQogICAg
IGNhbGxiYWNrKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z3JhbnRTYW5kYm94
RXh0ZW5zaW9uc1RvU3RvcmFnZVByb2Nlc3NGb3JCbG9icyh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBwYXRocykKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z3Jh
bnRTYW5kYm94RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnModWludDY0X3QgcmVx
dWVzdElELCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgcGF0aHMpCiB7CiAjaWYgRU5BQkxFKFNBTkRC
T1hfRVhURU5TSU9OUykKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGVBcnJheSBleHRlbnNp
b25zOwogICAgIGV4dGVuc2lvbnMuYWxsb2NhdGUocGF0aHMuc2l6ZSgpKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHBhdGhzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIC8vIFJlYWRXcml0
ZSBpcyByZXF1aXJlZCBmb3IgY3JlYXRpbmcgaGFyZCBsaW5rcyBhcyB3ZWxsIGFzIGRlbGV0aW5n
IHRoZSB0ZW1wb3JhcnkgZmlsZSwgd2hpY2ggdGhlIFN0b3JhZ2VQcm9jZXNzIHdpbGwgZG8uCisg
ICAgICAgIC8vIFJlYWRXcml0ZSBpcyByZXF1aXJlZCBmb3IgY3JlYXRpbmcgaGFyZCBsaW5rcyBh
cyB3ZWxsIGFzIGRlbGV0aW5nIHRoZSB0ZW1wb3JhcnkgZmlsZSwgd2hpY2ggdGhlIERhdGFiYXNl
UHJvY2VzcyB3aWxsIGRvLgogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUo
cGF0aHNbaV0sIFNhbmRib3hFeHRlbnNpb246OlJlYWRXcml0ZSwgZXh0ZW5zaW9uc1tpXSk7CiAg
ICAgfQogCi0gICAgbV9wcm9jZXNzUG9vbC5zZW5kVG9TdG9yYWdlUHJvY2Vzc1JlbGF1bmNoaW5n
SWZOZWNlc3NhcnkoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpHcmFudFNhbmRib3hFeHRlbnNp
b25zRm9yQmxvYnMocGF0aHMsIGV4dGVuc2lvbnMpKTsKKyAgICBtX3Byb2Nlc3NQb29sLnNlbmRU
b0RhdGFiYXNlUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpHcmFudFNhbmRib3hFeHRlbnNpb25zRm9yQmxvYnMocGF0aHMsIGV4dGVuc2lvbnMp
KTsKICNlbmRpZgotICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OkRpZEdyYW50U2FuZGJveEV4dGVuc2lvbnNUb1N0b3JhZ2VQcm9jZXNzRm9yQmxvYnMocmVx
dWVzdElEKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6RGlkR3JhbnRTYW5kYm94RXh0ZW5zaW9uc1RvRGF0YWJhc2VQcm9jZXNzRm9yQmxvYnMo
cmVxdWVzdElEKSwgMCk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNo
TGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNoZXIsIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggOTIzZGQyYTkwODcz
MDkyMjk1M2FkYzFjNzU1MjA4Mzk2ODY1ZDYyMy4uZTliZGM2M2Q5OTZiZjliZmRjNDU5MjI2NGEx
Mzg5M2ZmNzUzNzMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTExMSw3ICsxMTEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkRmV0Y2hXZWJzaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBX
ZWJzaXRlRGF0YSYpOwogICAgIHZvaWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2Fs
bGJhY2tJRCk7CiAgICAgdm9pZCBkaWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0
X3QgY2FsbGJhY2tJRCk7Ci0gICAgdm9pZCBncmFudFNhbmRib3hFeHRlbnNpb25zVG9TdG9yYWdl
UHJvY2Vzc0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHBhdGhzKTsKKyAgICB2b2lkIGdyYW50U2FuZGJveEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vz
c0ZvckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHBhdGhz
KTsKICAgICB2b2lkIGxvZ0RpYWdub3N0aWNNZXNzYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0aW9uLCBXZWJDb3JlOjpTaG91
bGRTYW1wbGUpOwogICAgIHZvaWQgbG9nRGlhZ25vc3RpY01lc3NhZ2VXaXRoUmVzdWx0KHVpbnQ2
NF90IHBhZ2VJRCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlc2NyaXB0
aW9uLCB1aW50MzJfdCByZXN1bHQsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CiAgICAgdm9pZCBs
b2dEaWFnbm9zdGljTWVzc2FnZVdpdGhWYWx1ZSh1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZXNjcmlwdGlvbiwgZG91YmxlIHZhbHVlLCB1bnNp
Z25lZCBzaWduaWZpY2FudEZpZ3VyZXMsIFdlYkNvcmU6OlNob3VsZFNhbXBsZSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjA4ZDg1ZmFiZTA1NzJjZmQxYmYxYzQxMjZhNWMy
MmE1MTgwNDU1Ny4uMGM5MDJlZDdhYzBjNjlmY2ZmYzU5MjlmY2M2YWYzZWQ3YjRmY2VjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjksNyArMjksNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKICAgICBEaWREZWxldGVXZWJz
aXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKQogICAgIERpZERlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyh1aW50NjRfdCBjYWxsYmFja0lEKQogCi0gICAgR3JhbnRTYW5kYm94RXh0ZW5zaW9u
c1RvU3RvcmFnZVByb2Nlc3NGb3JCbG9icyh1aW50NjRfdCByZXF1ZXN0SUQsIFZlY3RvcjxTdHJp
bmc+IHBhdGhzKQorICAgIEdyYW50U2FuZGJveEV4dGVuc2lvbnNUb0RhdGFiYXNlUHJvY2Vzc0Zv
ckJsb2JzKHVpbnQ2NF90IHJlcXVlc3RJRCwgVmVjdG9yPFN0cmluZz4gcGF0aHMpCiAKICAgICBQ
cm9jZXNzUmVhZHlUb1N1c3BlbmQoKQogICAgIFNldElzSG9sZGluZ0xvY2tlZEZpbGVzKGJvb2wg
aXNIb2xkaW5nTG9ja2VkRmlsZXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvU3RvcmFnZS9TdG9yYWdlUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyMGQyMGUwZWUzY2YzOTg0
ODY1MjVhY2QxYjJjYmVjZGE0ZDA0ZDM0Li41ZTc4YzdkMGEzNjY4MmNmZDUxM2NmMGE3YjNmNTY1
ZjJkNDUxODE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0
b3JhZ2VQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3Jh
Z2UvU3RvcmFnZVByb2Nlc3NQcm94eS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgU3RvcmFnZVByb2Nl
c3NQcm94eTo6flN0b3JhZ2VQcm9jZXNzUHJveHkoKQogCiB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJv
eHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPcHRpb25zKQogewotICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPSBQcm9jZXNzTGF1
bmNoZXI6OlByb2Nlc3NUeXBlOjpTdG9yYWdlOworICAgIGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5
cGUgPSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZTsKICAgICBDaGlsZFBy
b2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zKTsKIH0KIApAQCAtMTEx
LDcgKzExMSw3IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGVsZXRlV2Vic2l0ZURhdGFG
b3JPcmlnaW5zKFNlc3Npb25JRCBzZXNzaW9uSUQsIE9wdGlvCiAgICAgc2VuZChNZXNzYWdlczo6
U3RvcmFnZVByb2Nlc3M6OkRlbGV0ZVdlYnNpdGVEYXRhRm9yT3JpZ2lucyhzZXNzaW9uSUQsIGRh
dGFUeXBlcywgb3JpZ2lucywgY2FsbGJhY2tJRCksIDApOwogfQogCi12b2lkIFN0b3JhZ2VQcm9j
ZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYg
cmVwbHkpCit2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nv
bm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKIHsKICAgICBtX3BlbmRpbmdDb25uZWN0
aW9uUmVwbGllcy5hcHBlbmQoV1RGTW92ZShyZXBseSkpOwogCkBAIC0xMjAsMTIgKzEyMCwxMiBA
QCB2b2lkIFN0b3JhZ2VQcm9jZXNzUHJveHk6OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihS
ZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6OkNyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKCksIDAsIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5X
YWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6
Q3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKCksIDAsIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAogdm9p
ZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mKQogewotICAg
IC8vIFRoZSBzdG9yYWdlIHByb2Nlc3MgbXVzdCBoYXZlIGNyYXNoZWQgb3IgZXhpdGVkLCBzbyBz
ZW5kIGFueSBwZW5kaW5nIHN5bmMgcmVwbGllcyB3ZSBtaWdodCBoYXZlLgorICAgIC8vIFRoZSBk
YXRhYmFzZSBwcm9jZXNzIG11c3QgaGF2ZSBjcmFzaGVkIG9yIGV4aXRlZCwgc28gc2VuZCBhbnkg
cGVuZGluZyBzeW5jIHJlcGxpZXMgd2UgbWlnaHQgaGF2ZS4KICAgICB3aGlsZSAoIW1fcGVuZGlu
Z0Nvbm5lY3Rpb25SZXBsaWVzLmlzRW1wdHkoKSkgewogICAgICAgICBhdXRvIHJlcGx5ID0gbV9w
ZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CiAKQEAgLTE1MCwxOSArMTUwLDE5
IEBAIHZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoSVBDOjpDb25uZWN0aW9uJikK
ICAgICAgICAgY2FsbGJhY2soKTsKICAgICBtX3BlbmRpbmdEZWxldGVXZWJzaXRlRGF0YUZvck9y
aWdpbnNDYWxsYmFja3MuY2xlYXIoKTsKIAotICAgIC8vIFRlbGwgUHJvY2Vzc1Bvb2wgdG8gZm9y
Z2V0IGFib3V0IHRoaXMgc3RvcmFnZSBwcm9jZXNzLiBUaGlzIG1heSBjYXVzZSB1cyB0byBiZSBk
ZWxldGVkLgotICAgIG1fcHJvY2Vzc1Bvb2wtPnN0b3JhZ2VQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsK
KyAgICAvLyBUZWxsIFByb2Nlc3NQb29sIHRvIGZvcmdldCBhYm91dCB0aGlzIGRhdGFiYXNlIHBy
b2Nlc3MuIFRoaXMgbWF5IGNhdXNlIHVzIHRvIGJlIGRlbGV0ZWQuCisgICAgbV9wcm9jZXNzUG9v
bC0+ZGF0YWJhc2VQcm9jZXNzQ3Jhc2hlZCh0aGlzKTsKIH0KIAogdm9pZCBTdG9yYWdlUHJvY2Vz
c1Byb3h5OjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpT
dHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFtZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2Ug
bWVzc2FnZU5hbWUpCiB7CiB9CiAKLXZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRl
U3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgSVBDOjpBdHRhY2htZW50JiBjb25u
ZWN0aW9uSWRlbnRpZmllcikKK3ZvaWQgU3RvcmFnZVByb2Nlc3NQcm94eTo6ZGlkQ3JlYXRlRGF0
YWJhc2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYgY29ubmVj
dGlvbklkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdDb25uZWN0aW9uUmVwbGll
cy5pc0VtcHR5KCkpOwogCi0gICAgUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSA9IG1fcGVuZGlu
Z0Nvbm5lY3Rpb25SZXBsaWVzLnRha2VGaXJzdCgpOworICAgIFJlZlB0cjxNZXNzYWdlczo6V2Vi
UHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+
IHJlcGx5ID0gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXMudGFrZUZpcnN0KCk7CiAKICNpZiBV
U0UoVU5JWF9ET01BSU5fU09DS0VUUykKICAgICByZXBseS0+c2VuZChjb25uZWN0aW9uSWRlbnRp
Zmllcik7CkBAIC0yMTUsNyArMjE1LDcgQEAgdm9pZCBTdG9yYWdlUHJvY2Vzc1Byb3h5OjpkaWRG
aW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwgSVBDOjpDb24KICAgICB9
CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJl
cXVlc3RzOyArK2kpCi0gICAgICAgIHNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQcm9jZXNzOjpDcmVh
dGVTdG9yYWdlVG9XZWJQcm9jZXNzQ29ubmVjdGlvbigpLCAwKTsKKyAgICAgICAgc2VuZChNZXNz
YWdlczo6U3RvcmFnZVByb2Nlc3M6OkNyZWF0ZURhdGFiYXNlVG9XZWJQcm9jZXNzQ29ubmVjdGlv
bigpLCAwKTsKICAgICAKICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJv
Y2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9j
ZXNzUHJveHkuaAppbmRleCA1YzExMDZkMzY4YjA3OGNmODFlMWEyY2FmYzc1NDExYTIwZTIwNGNj
Li5iYmNhNzBlMDU1YjkxZDNiZGU0NjY4MTI5NjRhMjcwNjIwZjhiYmEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkuaApA
QCAtNTIsNyArNTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShXZWJD
b3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBzdGQ6OmNocm9ubzo6
c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50IG1vZGlmaWVkU2luY2UsIFdURjo6RnVuY3Rpb248dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhRm9y
T3JpZ2lucyhXZWJDb3JlOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiYsIFdURjo6RnVuY3Rpb248
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKIAotICAgIHZvaWQgZ2V0U3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRTdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CisgICAgdm9pZCBnZXREYXRhYmFzZVBy
b2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFz
ZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYpOwogCiBwcml2YXRlOgogICAgIFN0
b3JhZ2VQcm9jZXNzUHJveHkoV2ViUHJvY2Vzc1Bvb2wqKTsKQEAgLTY5LDcgKzY5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVTdG9yYWdlUHJvY2Vzc1Byb3h5TWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKIAogICAgIC8vIE1lc3NhZ2UgaGFuZGxlcnMK
LSAgICB2b2lkIGRpZENyZWF0ZVN0b3JhZ2VUb1dlYlByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IElQ
Qzo6QXR0YWNobWVudCYpOworICAgIHZvaWQgZGlkQ3JlYXRlRGF0YWJhc2VUb1dlYlByb2Nlc3ND
b25uZWN0aW9uKGNvbnN0IElQQzo6QXR0YWNobWVudCYpOwogICAgIHZvaWQgZGlkRmV0Y2hXZWJz
aXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBXZWJzaXRlRGF0YSYpOwogICAgIHZv
aWQgZGlkRGVsZXRlV2Vic2l0ZURhdGEodWludDY0X3QgY2FsbGJhY2tJRCk7CiAgICAgdm9pZCBk
aWREZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnModWludDY0X3QgY2FsbGJhY2tJRCk7CkBAIC04
Myw3ICs4Myw3IEBAIHByaXZhdGU6CiAgICAgV2ViUHJvY2Vzc1Bvb2wqIG1fcHJvY2Vzc1Bvb2w7
CiAKICAgICB1bnNpZ25lZCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHM7Ci0gICAgRGVx
dWU8UmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFN0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5Pj4gbV9wZW5kaW5nQ29ubmVjdGlvblJlcGxpZXM7CisgICAgRGVx
dWU8UmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRlbGF5ZWRSZXBseT4+IG1fcGVuZGluZ0Nvbm5lY3Rpb25SZXBsaWVzOwogCiAgICAg
SGFzaE1hcDx1aW50NjRfdCwgV1RGOjpGdW5jdGlvbjx2b2lkIChXZWJzaXRlRGF0YSk+PiBtX3Bl
bmRpbmdGZXRjaFdlYnNpdGVEYXRhQ2FsbGJhY2tzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIFdU
Rjo6RnVuY3Rpb248dm9pZCAoKT4+IG1fcGVuZGluZ0RlbGV0ZVdlYnNpdGVEYXRhQ2FsbGJhY2tz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9TdG9yYWdlUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvU3RvcmFnZS9T
dG9yYWdlUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDJhNzhhNmIxYzcxMzA0ZjIyYmQ2
ZDAzM2FhNGU4NzRlZTU5ZDdiZDUuLmZlMTc2OTMzM2Q2YzA0NGY0NTUyYTdiYzUxMmFiYjZiNzU0
ZTgzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFn
ZVByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9T
dG9yYWdlL1N0b3JhZ2VQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAK
ICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gU3RvcmFnZVByb2Nlc3NQcm94eSBMZWdhY3lS
ZWNlaXZlciB7Ci0gICAgRGlkQ3JlYXRlU3RvcmFnZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24oSVBD
OjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlmaWVyKQorICAgIERpZENyZWF0ZURhdGFiYXNl
VG9XZWJQcm9jZXNzQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbklkZW50aWZp
ZXIpCiAKICAgICBEaWRGZXRjaFdlYnNpdGVEYXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHN0cnVj
dCBXZWJLaXQ6OldlYnNpdGVEYXRhIHdlYnNpdGVEYXRhKQogICAgIERpZERlbGV0ZVdlYnNpdGVE
YXRhKHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
bnRleHRDbGllbnQuY3BwCmluZGV4IDQxYzBjMjU3MjdjYTQ2NjFhZmZmNWJkMWQ2MDhiNjJkNDUz
YWRiOTkuLjY0ZGJkZWZhZjBiYTI3MjBkZDdiZWEyZDkzOWI4MTYwN2U2YWQ5YWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIHZvaWQgV2ViQ29udGV4dENsaWVudDo6bmV0d29ya1Byb2Nlc3NEaWRDcmFzaChXZWJQcm9j
ZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAgICAgbV9jbGllbnQubmV0d29ya1Byb2Nlc3NEaWRDcmFz
aCh0b0FQSShwcm9jZXNzUG9vbCksIG1fY2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CiB9CiAKLXZv
aWQgV2ViQ29udGV4dENsaWVudDo6c3RvcmFnZVByb2Nlc3NEaWRDcmFzaChXZWJQcm9jZXNzUG9v
bCogcHJvY2Vzc1Bvb2wpCit2b2lkIFdlYkNvbnRleHRDbGllbnQ6OmRhdGFiYXNlUHJvY2Vzc0Rp
ZENyYXNoKFdlYlByb2Nlc3NQb29sKiBwcm9jZXNzUG9vbCkKIHsKICAgICBpZiAoIW1fY2xpZW50
LmRhdGFiYXNlUHJvY2Vzc0RpZENyYXNoKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmgKaW5kZXggMDM4ZjYzYTVjNDA4Y2Q1MzIxODAy
NjBkNWFkOGVjNTRhNGU5YmJjYi4uYjI1YzRkM2I5ZDRhOTJlZGUxNjI2ODBiYWE3NDYxZDc3Y2Qy
MTVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuaApAQCAt
NDUsNyArNDUsNyBAQCBjbGFzcyBXZWJDb250ZXh0Q2xpZW50IDogcHVibGljIEFQSTo6Q2xpZW50
PFdLQ29udGV4dENsaWVudEJhc2U+IHsKIHB1YmxpYzoKICAgICB2b2lkIHBsdWdJbkF1dG9TdGFy
dE9yaWdpbkhhc2hlc0NoYW5nZWQoV2ViUHJvY2Vzc1Bvb2wqKTsKICAgICB2b2lkIG5ldHdvcmtQ
cm9jZXNzRGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKLSAgICB2b2lkIHN0b3JhZ2VQcm9jZXNz
RGlkQ3Jhc2goV2ViUHJvY2Vzc1Bvb2wqKTsKKyAgICB2b2lkIGRhdGFiYXNlUHJvY2Vzc0RpZENy
YXNoKFdlYlByb2Nlc3NQb29sKik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCA4M2YzYTY3M2Y3MjRi
NmZiOGI5OWIxNWQxMTYzZmQwNmQwOTQzMWY2Li5mMjhmMDk5Nzg2MTBjNTFkMDAzMGIxOWQ2ZjYy
OWMyYWIyNTQ1NjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC01MTQsMTQgKzUxNCwxNCBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpnZXROZXR3b3Jr
UHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OgogICAgIG1f
bmV0d29ya1Byb2Nlc3MtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZVN0b3JhZ2VQcm9jZXNzQW5kV2Vi
c2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlKiByZWxldmFudERhdGFTdG9yZSkKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OmVuc3VyZURhdGFiYXNlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZSogcmVsZXZhbnREYXRhU3RvcmUpCiB7CiAgICAgLy8gKioqKioqKioq
CiAgICAgLy8gSU1QT1JUQU5UOiBEbyBub3QgY2hhbmdlIHRoZSBkaXJlY3Rvcnkgc3RydWN0dXJl
IGZvciBpbmRleGVkIGRhdGFiYXNlcyBvbiBkaXNrIHdpdGhvdXQgZmlyc3QgY29uc3VsdGluZyBh
IHJldmlld2VyIGZyb20gQXBwbGUgKDxyZGFyOi8vcHJvYmxlbS8xNzQ1NDcxMj4pCiAgICAgLy8g
KioqKioqKioqCiAKLSAgICBpZiAoIW1fc3RvcmFnZVByb2Nlc3MpIHsKLSAgICAgICAgbV9zdG9y
YWdlUHJvY2VzcyA9IFN0b3JhZ2VQcm9jZXNzUHJveHk6OmNyZWF0ZSh0aGlzKTsKKyAgICBpZiAo
IW1fZGF0YWJhc2VQcm9jZXNzKSB7CisgICAgICAgIG1fZGF0YWJhc2VQcm9jZXNzID0gU3RvcmFn
ZVByb2Nlc3NQcm94eTo6Y3JlYXRlKHRoaXMpOwogCiAgICAgICAgIFN0b3JhZ2VQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0Up
CkBAIC01MzMsMzIgKzUzMywzMiBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjplbnN1cmVTdG9yYWdl
UHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSogcgogI2VuZGlmCiAK
ICAgICAgICAgQVNTRVJUKCFwYXJhbWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeS5pc0Vt
cHR5KCkpOwotICAgICAgICBtX3N0b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdl
UHJvY2Vzczo6SW5pdGlhbGl6ZVdlYnNpdGVEYXRhU3RvcmUocGFyYW1ldGVycyksIDApOworICAg
ICAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6U3RvcmFnZVByb2Nlc3M6Oklu
aXRpYWxpemVXZWJzaXRlRGF0YVN0b3JlKHBhcmFtZXRlcnMpLCAwKTsKICAgICB9CiAKICAgICBp
ZiAoIXJlbGV2YW50RGF0YVN0b3JlIHx8IHJlbGV2YW50RGF0YVN0b3JlID09ICZ3ZWJzaXRlRGF0
YVN0b3JlKCkud2Vic2l0ZURhdGFTdG9yZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3N0
b3JhZ2VQcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpTdG9yYWdlUHJvY2Vzczo6SW5pdGlhbGl6ZVdl
YnNpdGVEYXRhU3RvcmUocmVsZXZhbnREYXRhU3RvcmUtPnN0b3JhZ2VQcm9jZXNzUGFyYW1ldGVy
cygpKSwgMCk7CisgICAgbV9kYXRhYmFzZVByb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OlN0b3JhZ2VQ
cm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShyZWxldmFudERhdGFTdG9yZS0+ZGF0
YWJhc2VQcm9jZXNzUGFyYW1ldGVycygpKSwgMCk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OmdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+JiYgcmVwbHkpCit2
b2lkIFdlYlByb2Nlc3NQb29sOjpnZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpEZWxh
eWVkUmVwbHk+JiYgcmVwbHkpCiB7Ci0gICAgZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRl
RGF0YVN0b3JlKG51bGxwdHIpOworICAgIGVuc3VyZURhdGFiYXNlUHJvY2Vzc0FuZFdlYnNpdGVE
YXRhU3RvcmUobnVsbHB0cik7CiAKLSAgICBtX3N0b3JhZ2VQcm9jZXNzLT5nZXRTdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShyZXBseSkpOworICAgIG1fZGF0YWJhc2VQcm9jZXNzLT5n
ZXREYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKFdURk1vdmUocmVwbHkpKTsKIH0KIAotdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6c3RvcmFnZVByb2Nlc3NDcmFzaGVkKFN0b3JhZ2VQcm9jZXNzUHJveHkq
IHN0b3JhZ2VQcm9jZXNzUHJveHkpCit2b2lkIFdlYlByb2Nlc3NQb29sOjpkYXRhYmFzZVByb2Nl
c3NDcmFzaGVkKFN0b3JhZ2VQcm9jZXNzUHJveHkqIGRhdGFiYXNlUHJvY2Vzc1Byb3h5KQogewot
ICAgIEFTU0VSVChtX3N0b3JhZ2VQcm9jZXNzKTsKLSAgICBBU1NFUlQoc3RvcmFnZVByb2Nlc3NQ
cm94eSA9PSBtX3N0b3JhZ2VQcm9jZXNzLmdldCgpKTsKKyAgICBBU1NFUlQobV9kYXRhYmFzZVBy
b2Nlc3MpOworICAgIEFTU0VSVChkYXRhYmFzZVByb2Nlc3NQcm94eSA9PSBtX2RhdGFiYXNlUHJv
Y2Vzcy5nZXQoKSk7CiAKICAgICBmb3IgKGF1dG8mIHN1cHBsZW1lbnQgOiBtX3N1cHBsZW1lbnRz
LnZhbHVlcygpKQotICAgICAgICBzdXBwbGVtZW50LT5wcm9jZXNzRGlkQ2xvc2Uoc3RvcmFnZVBy
b2Nlc3NQcm94eSk7CisgICAgICAgIHN1cHBsZW1lbnQtPnByb2Nlc3NEaWRDbG9zZShkYXRhYmFz
ZVByb2Nlc3NQcm94eSk7CiAKLSAgICBtX2NsaWVudC5zdG9yYWdlUHJvY2Vzc0RpZENyYXNoKHRo
aXMpOwotICAgIG1fc3RvcmFnZVByb2Nlc3MgPSBudWxscHRyOworICAgIG1fY2xpZW50LmRhdGFi
YXNlUHJvY2Vzc0RpZENyYXNoKHRoaXMpOworICAgIG1fZGF0YWJhc2VQcm9jZXNzID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBXZWJQcm9jZXNzUG9vbDo6d2lsbFN0YXJ0VXNpbmdQcml2YXRlQnJvd3Np
bmcoKQpAQCAtOTU5LDkgKzk1OSw5IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBhZ2VBZGRlZFRv
UHJvY2VzcyhXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgICAgIHBhZ2UucHJvY2VzcygpLnNlbmQo
TWVzc2FnZXM6OldlYlByb2Nlc3M6OkFkZFdlYnNpdGVEYXRhU3RvcmUocGFnZS53ZWJzaXRlRGF0
YVN0b3JlKCkucGFyYW1ldGVycygpKSwgMCk7CiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFT
RSkKLSAgICAgICAgYXV0byBzdG9yYWdlUGFyYW1ldGVycyA9IHBhZ2Uud2Vic2l0ZURhdGFTdG9y
ZSgpLnN0b3JhZ2VQcm9jZXNzUGFyYW1ldGVycygpOwotICAgICAgICBpZiAoIXN0b3JhZ2VQYXJh
bWV0ZXJzLmluZGV4ZWREYXRhYmFzZURpcmVjdG9yeS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBz
ZW5kVG9TdG9yYWdlUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OlN0b3Jh
Z2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShzdG9yYWdlUGFyYW1ldGVycykp
OworICAgICAgICBhdXRvIGRhdGFiYXNlUGFyYW1ldGVycyA9IHBhZ2Uud2Vic2l0ZURhdGFTdG9y
ZSgpLmRhdGFiYXNlUHJvY2Vzc1BhcmFtZXRlcnMoKTsKKyAgICAgICAgaWYgKCFkYXRhYmFzZVBh
cmFtZXRlcnMuaW5kZXhlZERhdGFiYXNlRGlyZWN0b3J5LmlzRW1wdHkoKSkKKyAgICAgICAgICAg
IHNlbmRUb0RhdGFiYXNlUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNlc3NhcnkoTWVzc2FnZXM6OlN0
b3JhZ2VQcm9jZXNzOjpJbml0aWFsaXplV2Vic2l0ZURhdGFTdG9yZShkYXRhYmFzZVBhcmFtZXRl
cnMpKTsKICNlbmRpZgogICAgIH0KIH0KQEAgLTEwNzMsMTIgKzEwNzMsMTIgQEAgcGlkX3QgV2Vi
UHJvY2Vzc1Bvb2w6Om5ldHdvcmtQcm9jZXNzSWRlbnRpZmllcigpCiAgICAgcmV0dXJuIG1fbmV0
d29ya1Byb2Nlc3MtPnByb2Nlc3NJZGVudGlmaWVyKCk7CiB9CiAKLXBpZF90IFdlYlByb2Nlc3NQ
b29sOjpzdG9yYWdlUHJvY2Vzc0lkZW50aWZpZXIoKQorcGlkX3QgV2ViUHJvY2Vzc1Bvb2w6OmRh
dGFiYXNlUHJvY2Vzc0lkZW50aWZpZXIoKQogewotICAgIGlmICghbV9zdG9yYWdlUHJvY2VzcykK
KyAgICBpZiAoIW1fZGF0YWJhc2VQcm9jZXNzKQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJl
dHVybiBtX3N0b3JhZ2VQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIHJldHVybiBt
X2RhdGFiYXNlUHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKTsKIH0KIAogdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6c2V0QWx3YXlzVXNlc0NvbXBsZXhUZXh0Q29kZVBhdGgoYm9vbCBhbHdheXNVc2VD
b21wbGV4VGV4dCkKQEAgLTEzMDIsMTMgKzEzMDIsMTMgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6
Y2xlYXJDYWNoZWRDcmVkZW50aWFscygpCiAgICAgICAgIG1fbmV0d29ya1Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhckNhY2hlZENyZWRlbnRpYWxzKCksIDApOwog
fQogCi12b2lkIFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVTdG9yYWdlUHJvY2VzcygpCit2b2lk
IFdlYlByb2Nlc3NQb29sOjp0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MoKQogewotICAgIGlmICgh
bV9zdG9yYWdlUHJvY2VzcykKKyAgICBpZiAoIW1fZGF0YWJhc2VQcm9jZXNzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX3N0b3JhZ2VQcm9jZXNzLT50ZXJtaW5hdGUoKTsKLSAgICBtX3N0b3Jh
Z2VQcm9jZXNzID0gbnVsbHB0cjsKKyAgICBtX2RhdGFiYXNlUHJvY2Vzcy0+dGVybWluYXRlKCk7
CisgICAgbV9kYXRhYmFzZVByb2Nlc3MgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQ
b29sOjp0ZXJtaW5hdGVOZXR3b3JrUHJvY2VzcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAppbmRleCBkOGNhNjM0ZTFkYWEyZGMwNTYwNzdiNzczNzUyNjA5OGM4ZTgx
N2E5Li5kZjllZTJhMzZhMjM1OWFjZjliN2NkNWY1NDJjZjIyOWY0MmQ3NTI0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTE2MCw4ICsxNjAsOCBAQCBwdWJs
aWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gdm9pZCBzZW5kU3luY1Rv
TmV0d29ya2luZ1Byb2Nlc3MoVCYmIG1lc3NhZ2UsIFUmJiByZXBseSk7CiAgICAgdGVtcGxhdGU8
dHlwZW5hbWUgVD4gdm9pZCBzZW5kVG9OZXR3b3JraW5nUHJvY2Vzc1JlbGF1bmNoaW5nSWZOZWNl
c3NhcnkoVCYmIG1lc3NhZ2UpOwogCi0gICAgLy8gU2VuZHMgdGhlIG1lc3NhZ2UgdG8gV2ViUHJv
Y2VzcyBvciBTdG9yYWdlUHJvY2VzcyBhcyBhcHByb3BvcmlhdGUgZm9yIGN1cnJlbnQgcHJvY2Vz
cyBtb2RlbC4KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRUb1N0b3JhZ2VQcm9j
ZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSk7CisgICAgLy8gU2VuZHMgdGhl
IG1lc3NhZ2UgdG8gV2ViUHJvY2VzcyBvciBEYXRhYmFzZVByb2Nlc3MgYXMgYXBwcm9wb3JpYXRl
IGZvciBjdXJyZW50IHByb2Nlc3MgbW9kZWwuCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9p
ZCBzZW5kVG9EYXRhYmFzZVByb2Nlc3NSZWxhdW5jaGluZ0lmTmVjZXNzYXJ5KFQmJiBtZXNzYWdl
KTsKIAogICAgIHZvaWQgcHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkq
KTsKIApAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgcGlkX3QgbmV0
d29ya1Byb2Nlc3NJZGVudGlmaWVyKCk7Ci0gICAgcGlkX3Qgc3RvcmFnZVByb2Nlc3NJZGVudGlm
aWVyKCk7CisgICAgcGlkX3QgZGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcigpOwogCiAgICAgdm9p
ZCBzZXRBbHdheXNVc2VzQ29tcGxleFRleHRDb2RlUGF0aChib29sKTsKICAgICB2b2lkIHNldFNo
b3VsZFVzZUZvbnRTbW9vdGhpbmcoYm9vbCk7CkBAIC0yNTUsNyArMjU1LDcgQEAgcHVibGljOgog
ICAgIHZvaWQgc2V0QWxsb3dzQW55U1NMQ2VydGlmaWNhdGVGb3JXZWJTb2NrZXQoYm9vbCk7CiAK
ICAgICB2b2lkIGNsZWFyQ2FjaGVkQ3JlZGVudGlhbHMoKTsKLSAgICB2b2lkIHRlcm1pbmF0ZVN0
b3JhZ2VQcm9jZXNzKCk7CisgICAgdm9pZCB0ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3MoKTsKICAg
ICB2b2lkIHRlcm1pbmF0ZU5ldHdvcmtQcm9jZXNzKCk7CiAKICAgICB2b2lkIHN5bmNOZXR3b3Jr
UHJvY2Vzc0Nvb2tpZXMoKTsKQEAgLTMxMiwxMCArMzEyLDEwIEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7CiAKLSAg
ICB2b2lkIGVuc3VyZVN0b3JhZ2VQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0
YVN0b3JlKiByZWxldmFudERhdGFTdG9yZSk7Ci0gICAgU3RvcmFnZVByb2Nlc3NQcm94eSogc3Rv
cmFnZVByb2Nlc3MoKSB7IHJldHVybiBtX3N0b3JhZ2VQcm9jZXNzLmdldCgpOyB9Ci0gICAgdm9p
ZCBnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKLSAgICB2
b2lkIHN0b3JhZ2VQcm9jZXNzQ3Jhc2hlZChTdG9yYWdlUHJvY2Vzc1Byb3h5Kik7CisgICAgdm9p
ZCBlbnN1cmVEYXRhYmFzZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3Rv
cmUqIHJlbGV2YW50RGF0YVN0b3JlKTsKKyAgICBTdG9yYWdlUHJvY2Vzc1Byb3h5KiBkYXRhYmFz
ZVByb2Nlc3MoKSB7IHJldHVybiBtX2RhdGFiYXNlUHJvY2Vzcy5nZXQoKTsgfQorICAgIHZvaWQg
Z2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihSZWY8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKKyAgICB2
b2lkIGRhdGFiYXNlUHJvY2Vzc0NyYXNoZWQoU3RvcmFnZVByb2Nlc3NQcm94eSopOwogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkgY29u
c3Q7CkBAIC01NDksNyArNTQ5LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fY2FuSGFuZGxlSFRU
UFNTZXJ2ZXJUcnVzdEV2YWx1YXRpb247CiAgICAgYm9vbCBtX2RpZE5ldHdvcmtQcm9jZXNzQ3Jh
c2g7CiAgICAgUmVmUHRyPE5ldHdvcmtQcm9jZXNzUHJveHk+IG1fbmV0d29ya1Byb2Nlc3M7Ci0g
ICAgUmVmUHRyPFN0b3JhZ2VQcm9jZXNzUHJveHk+IG1fc3RvcmFnZVByb2Nlc3M7CisgICAgUmVm
UHRyPFN0b3JhZ2VQcm9jZXNzUHJveHk+IG1fZGF0YWJhc2VQcm9jZXNzOwogCiAgICAgSGFzaE1h
cDx1aW50NjRfdCwgUmVmUHRyPERpY3Rpb25hcnlDYWxsYmFjaz4+IG1fZGljdGlvbmFyeUNhbGxi
YWNrczsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8U3RhdGlzdGljc1JlcXVlc3Q+PiBt
X3N0YXRpc3RpY3NSZXF1ZXN0czsKQEAgLTYyNywxMCArNjI3LDEwIEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNlbmRUb05ldHdvcmtpbmdQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYg
bWVzc2FnZSkKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgV2ViUHJvY2Vzc1Bvb2w6
OnNlbmRUb1N0b3JhZ2VQcm9jZXNzUmVsYXVuY2hpbmdJZk5lY2Vzc2FyeShUJiYgbWVzc2FnZSkK
K3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnNlbmRUb0RhdGFiYXNlUHJvY2Vzc1JlbGF1bmNoaW5nSWZO
ZWNlc3NhcnkoVCYmIG1lc3NhZ2UpCiB7Ci0gICAgZW5zdXJlU3RvcmFnZVByb2Nlc3NBbmRXZWJz
aXRlRGF0YVN0b3JlKG51bGxwdHIpOwotICAgIG1fc3RvcmFnZVByb2Nlc3MtPnNlbmQoc3RkOjpm
b3J3YXJkPFQ+KG1lc3NhZ2UpLCAwKTsKKyAgICBlbnN1cmVEYXRhYmFzZVByb2Nlc3NBbmRXZWJz
aXRlRGF0YVN0b3JlKG51bGxwdHIpOworICAgIG1fZGF0YWJhc2VQcm9jZXNzLT5zZW5kKHN0ZDo6
Zm9yd2FyZDxUPihtZXNzYWdlKSwgMCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3MDg1Y2U5MjQw
NmE2NmJiMTU0NGE5YTMwYTk0NjAxNmJlMzI3NzNiLi4zMTY4Mzg0NzQ4NTIxYjE0NGExNDIzNGM1
MWJhODZhNmRkZTliMGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5jcHAKQEAgLTU3Myw5ICs1NzMsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OgogICAg
IG1fcHJvY2Vzc1Bvb2wtPmdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXVEZNb3ZlKHJlcGx5
KSk7CiB9CiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFN0b3JhZ2VQcm9jZXNzQ29ubmVj
dGlvbjo6RGVsYXllZFJlcGx5PiYmIHJlcGx5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldERh
dGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6Okdl
dERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJiByZXBseSkKIHsKLSAg
ICBtX3Byb2Nlc3NQb29sLT5nZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oV1RGTW92ZShyZXBs
eSkpOworICAgIG1fcHJvY2Vzc1Bvb2wtPmdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oV1RG
TW92ZShyZXBseSkpOwogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCAxZWU0OGY3Y2IyZGE4ZWIzNzUyYmMwMDc4
YzUzNTU0YzBhYjk2ZTAyLi44YWZlYmYzZjk3YmM5OTY0NjEzY2VmYWUwNDRkYjU0MjYwZTRhYzFj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjE0LDcg
KzIxNCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1
aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIFJlZjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYmKTsKICNlbmRpZgog
ICAgIHZvaWQgZ2V0TmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uKFJlZjxNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4mJik7
Ci0gICAgdm9pZCBnZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFN0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiYm
KTsKKyAgICB2b2lkIGdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oUmVmPE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBs
eT4mJik7CiAKICAgICBib29sIHBsYXRmb3JtSXNCZWluZ0RlYnVnZ2VkKCkgY29uc3Q7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
bgppbmRleCBhZDY5YzUyZjQwMGM4NjVmM2E0OWViZjBmZmRiZDJjNTJlZGVjMjYxLi4xZmY3NjU3
MWVmYjA4YWE0MTgxMGEyZjI1NmVmOTBjNjJjMDQxNzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC0zNyw3ICszNyw3
IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgR2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKSAtPiAo
SVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25v
dXNJbml0aWFsaXphdGlvbikgRGVsYXllZAogI2VuZGlmCiAgICAgR2V0TmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlKSBEZWxheWVk
Ci0gICAgR2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKCkgLT4gKElQQzo6QXR0YWNobWVudCBj
b25uZWN0aW9uSGFuZGxlKSBEZWxheWVkCisgICAgR2V0RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlv
bigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkgRGVsYXllZAogICAgIFBy
b2Nlc3NSZWFkeVRvU3VzcGVuZCgpCiAgICAgRGlkQ2FuY2VsUHJvY2Vzc1N1c3BlbnNpb24oKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCmluZGV4IDkxYzAzZTYwZDhiMjY0MzFiZDE4MWE4MmI4ZjFjZjkzY2Rl
MWRmZTkuLjMwMGI1YmZlNmU4MWMxMWQxYWQ4ZDc5MzJmZjhjMzEzZjU0OWQ5MWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRh
U3RvcmUuY3BwCkBAIC00MzMsMTAgKzQzMywxMCBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmZl
dGNoRGF0YUFuZEFwcGx5KE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgTwog
CiAgICAgaWYgKGRhdGFUeXBlcy5jb250YWlucyhXZWJzaXRlRGF0YVR5cGU6OkluZGV4ZWREQkRh
dGFiYXNlcykgJiYgaXNQZXJzaXN0ZW50KCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBwcm9jZXNz
UG9vbCA6IHByb2Nlc3NQb29scygpKSB7Ci0gICAgICAgICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJl
U3RvcmFnZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKHRoaXMpOworICAgICAgICAgICAgcHJv
Y2Vzc1Bvb2wtPmVuc3VyZURhdGFiYXNlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUodGhpcyk7
CiAKICAgICAgICAgICAgIGNhbGxiYWNrQWdncmVnYXRvci0+YWRkUGVuZGluZ0NhbGxiYWNrKCk7
Ci0gICAgICAgICAgICBwcm9jZXNzUG9vbC0+c3RvcmFnZVByb2Nlc3MoKS0+ZmV0Y2hXZWJzaXRl
RGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5cGVzLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBwcm9jZXNz
UG9vbF0oV2Vic2l0ZURhdGEgd2Vic2l0ZURhdGEpIHsKKyAgICAgICAgICAgIHByb2Nlc3NQb29s
LT5kYXRhYmFzZVByb2Nlc3MoKS0+ZmV0Y2hXZWJzaXRlRGF0YShtX3Nlc3Npb25JRCwgZGF0YVR5
cGVzLCBbY2FsbGJhY2tBZ2dyZWdhdG9yLCBwcm9jZXNzUG9vbF0oV2Vic2l0ZURhdGEgd2Vic2l0
ZURhdGEpIHsKICAgICAgICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPnJlbW92ZVBlbmRp
bmdDYWxsYmFjayhXVEZNb3ZlKHdlYnNpdGVEYXRhKSk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgfQpAQCAtNzI3LDEwICs3MjcsMTAgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZW1vdmVE
YXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgc3RkOjpjaHIKIAogICAg
IGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpJbmRleGVkREJEYXRhYmFz
ZXMpICYmIGlzUGVyc2lzdGVudCgpKSB7CiAgICAgICAgIGZvciAoYXV0byYgcHJvY2Vzc1Bvb2wg
OiBwcm9jZXNzUG9vbHMoKSkgewotICAgICAgICAgICAgcHJvY2Vzc1Bvb2wtPmVuc3VyZVN0b3Jh
Z2VQcm9jZXNzQW5kV2Vic2l0ZURhdGFTdG9yZSh0aGlzKTsKKyAgICAgICAgICAgIHByb2Nlc3NQ
b29sLT5lbnN1cmVEYXRhYmFzZVByb2Nlc3NBbmRXZWJzaXRlRGF0YVN0b3JlKHRoaXMpOwogCiAg
ICAgICAgICAgICBjYWxsYmFja0FnZ3JlZ2F0b3ItPmFkZFBlbmRpbmdDYWxsYmFjaygpOwotICAg
ICAgICAgICAgcHJvY2Vzc1Bvb2wtPnN0b3JhZ2VQcm9jZXNzKCktPmRlbGV0ZVdlYnNpdGVEYXRh
KG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVkU2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0
b3IsIHByb2Nlc3NQb29sXSB7CisgICAgICAgICAgICBwcm9jZXNzUG9vbC0+ZGF0YWJhc2VQcm9j
ZXNzKCktPmRlbGV0ZVdlYnNpdGVEYXRhKG1fc2Vzc2lvbklELCBkYXRhVHlwZXMsIG1vZGlmaWVk
U2luY2UsIFtjYWxsYmFja0FnZ3JlZ2F0b3IsIHByb2Nlc3NQb29sXSB7CiAgICAgICAgICAgICAg
ICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5kaW5nQ2FsbGJhY2soKTsKICAgICAgICAg
ICAgIH0pOwogICAgICAgICB9CkBAIC0xMDA0LDEwICsxMDA0LDEwIEBAIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6cmVtb3ZlRGF0YShPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMs
IGNvbnN0IFZlCiAKICAgICBpZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6
SW5kZXhlZERCRGF0YWJhc2VzKSAmJiBpc1BlcnNpc3RlbnQoKSkgewogICAgICAgICBmb3IgKGF1
dG8mIHByb2Nlc3NQb29sIDogcHJvY2Vzc1Bvb2xzKCkpIHsKLSAgICAgICAgICAgIHByb2Nlc3NQ
b29sLT5lbnN1cmVTdG9yYWdlUHJvY2Vzc0FuZFdlYnNpdGVEYXRhU3RvcmUodGhpcyk7CisgICAg
ICAgICAgICBwcm9jZXNzUG9vbC0+ZW5zdXJlRGF0YWJhc2VQcm9jZXNzQW5kV2Vic2l0ZURhdGFT
dG9yZSh0aGlzKTsKIAogICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5hZGRQZW5kaW5n
Q2FsbGJhY2soKTsKLSAgICAgICAgICAgIHByb2Nlc3NQb29sLT5zdG9yYWdlUHJvY2VzcygpLT5k
ZWxldGVXZWJzaXRlRGF0YUZvck9yaWdpbnMobV9zZXNzaW9uSUQsIGRhdGFUeXBlcywgb3JpZ2lu
cywgW2NhbGxiYWNrQWdncmVnYXRvciwgcHJvY2Vzc1Bvb2xdIHsKKyAgICAgICAgICAgIHByb2Nl
c3NQb29sLT5kYXRhYmFzZVByb2Nlc3MoKS0+ZGVsZXRlV2Vic2l0ZURhdGFGb3JPcmlnaW5zKG1f
c2Vzc2lvbklELCBkYXRhVHlwZXMsIG9yaWdpbnMsIFtjYWxsYmFja0FnZ3JlZ2F0b3IsIHByb2Nl
c3NQb29sXSB7CiAgICAgICAgICAgICAgICAgY2FsbGJhY2tBZ2dyZWdhdG9yLT5yZW1vdmVQZW5k
aW5nQ2FsbGJhY2soKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CkBAIC0xMzE1LDcgKzEz
MTUsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmVuYWJsZVJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NBbmRTZXRUZXN0aW5nQ2FsbGJhY2soRnVuY3RpbwogICAgICAgICBwcm9jZXNzUG9vbC0+c2V0
UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQodHJ1ZSk7CiB9CiAKLVN0b3JhZ2VQcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzIFdlYnNpdGVEYXRhU3RvcmU6OnN0b3JhZ2VQcm9jZXNzUGFyYW1l
dGVycygpCitTdG9yYWdlUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyBXZWJzaXRlRGF0YVN0b3Jl
OjpkYXRhYmFzZVByb2Nlc3NQYXJhbWV0ZXJzKCkKIHsKICAgICByZXNvbHZlRGlyZWN0b3JpZXNJ
Zk5lY2Vzc2FyeSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJz
aXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggNDI5NzQwNzA3OWE3NWI1YTdlYWJlZDc1
N2NmMmQ5ODQ0YjE2ZmU3OS4uYjU0OTIyY2UyOThkM2YwYjYzZTI5NTY2MmI1ODhiMjg0MDMyM2Vh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dl
YnNpdGVEYXRhU3RvcmUuaApAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
QXNzb2NpYXRlZFByb2Nlc3NQb29sKFdlYlByb2Nlc3NQb29sJikgY29uc3Q7CiAKICAgICBXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycyBwYXJhbWV0ZXJzKCk7Ci0gICAgU3RvcmFnZVByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMgc3RvcmFnZVByb2Nlc3NQYXJhbWV0ZXJzKCk7CisgICAgU3RvcmFn
ZVByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMgZGF0YWJhc2VQcm9jZXNzUGFyYW1ldGVycygpOwog
CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvb2tpZT4gcGVuZGluZ0Nvb2tpZXMoKSBjb25zdDsKICAg
ICB2b2lkIGFkZFBlbmRpbmdDb29raWUoY29uc3QgV2ViQ29yZTo6Q29va2llJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0RhdGFiYXNl
cy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCA0ZDc2ZmJiNDNl
MGNkYWQ5MmI4ZDdlZjIyODUxNDgxNDg1MmNlNGI3Li41NGMyZDI4OTEwNTFmMDMyMjI2OWQ1NWFl
NGY0YzUwMzU1ZGMzM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0
YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQkNvbm5lY3Rpb25U
b1NlcnZlci5jcHAKQEAgLTc3LDcgKzc3LDcgQEAgV2ViSURCQ29ubmVjdGlvblRvU2VydmVyOjp+
V2ViSURCQ29ubmVjdGlvblRvU2VydmVyKCkKIAogSVBDOjpDb25uZWN0aW9uKiBXZWJJREJDb25u
ZWN0aW9uVG9TZXJ2ZXI6Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKIHsKLSAgICByZXR1cm4g
JldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKCkt
PmNvbm5lY3Rpb24oKTsKKyAgICByZXR1cm4gJldlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCk7CiB9CiAKIElEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblRvU2VydmVyJiBXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmNvcmVD
b25uZWN0aW9uVG9TZXJ2ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaAppbmRleCBjNzllMDQxZDRmMThhMzIwOGFkMWFmMjgxODE4ZjE1NDNkNDhlZjM0Li5k
MTYzYzA5MGJmZWNmMjAyMTNhMDg1YmNjYjdmOWVlNTA4MWNiNjAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJDb25uZWN0aW9u
VG9TZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4
ZWREQi9XZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCByZWYoKSBvdmVycmlkZSB7IFJlZkNvdW50ZWQ8V2ViSURCQ29ubmVjdGlvblRv
U2VydmVyPjo6cmVmKCk7IH0KICAgICB2b2lkIGRlcmVmKCkgb3ZlcnJpZGUgeyBSZWZDb3VudGVk
PFdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcj46OmRlcmVmKCk7IH0KIAotICAgIC8vIE1lc3NhZ2Vz
IHJlY2VpdmVkIGZyb20gU3RvcmFnZVByb2Nlc3MKKyAgICAvLyBNZXNzYWdlcyByZWNlaXZlZCBm
cm9tIERhdGFiYXNlUHJvY2VzcwogICAgIHZvaWQgZGlkRGVsZXRlRGF0YWJhc2UoY29uc3QgV2Vi
Q29yZTo6SURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkT3BlbkRhdGFiYXNlKGNvbnN0IFdl
YkNvcmU6OklEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEFib3J0VHJhbnNhY3Rpb24oY29u
c3QgV2ViQ29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OklEQkVycm9yJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0RhdGFiYXNlcy9XZWJEYXRhYmFzZVByb3ZpZGVyLmNwcAppbmRleCAyYjg3
YmFmOTRlN2JkMjUxYzA2MjA0MGE4NzFjZTIyM2I5YmZiZGZkLi41Y2Y3ZmQyYjMyNTgxMzE5MDU5
NjMyNTY2NjM2MjUyNzViMzE4Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvRGF0YWJhc2VzL1dlYkRhdGFiYXNlUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvV2ViRGF0YWJhc2VQcm92aWRlci5jcHAKQEAgLTc5LDggKzc5
LDggQEAgV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYkRhdGFi
YXNlUHJvdmlkZXI6OmlkYkNvbm5lY3Rpb25Ub1MKICAgICAgICAgcmV0dXJuIHJlc3VsdC5pdGVy
YXRvci0+dmFsdWUtPmNvbm5lY3Rpb25Ub1NlcnZlcigpOwogICAgIH0KIAotICAgIEFTU0VSVChX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbigpKTsK
LSAgICByZXR1cm4gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLmNv
cmVDb25uZWN0aW9uVG9TZXJ2ZXIoKTsKKyAgICBBU1NFUlQoV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkud2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCkpOworICAgIHJldHVybiBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKS0+aWRiQ29u
bmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihzZXNzaW9uSUQpLmNvcmVDb25uZWN0aW9uVG9TZXJ2
ZXIoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5k
ZXggNmIyN2Q3ODFkMmQxOWJlMjRiNDc0MDNjZTRiYmQ2OGYxZmVhMTgyYi4uMDAxMjE4NTNlZmQz
MjhhOWU1M2YyYWZlODNjMzc2NjFjOWM1MmVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25u
ZWN0aW9uLmNwcApAQCAtMzUsMTcgKzM1LDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246Oldl
YlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKK1dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6V2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKICAgICA6IG1fY29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZUNsaWVudENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsICp0aGlzKSkKIHsK
ICAgICBtX2Nvbm5lY3Rpb24tPm9wZW4oKTsKIH0KIAotV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb246On5XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbigpCitXZWJUb0RhdGFiYXNlUHJv
Y2Vzc0Nvbm5lY3Rpb246On5XZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewogfQog
Ci12b2lkIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKK3ZvaWQg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikKIHsKICNpZiBFTkFC
TEUoSU5ERVhFRF9EQVRBQkFTRSkKICAgICBpZiAoZGVjb2Rlci5tZXNzYWdlUmVjZWl2ZXJOYW1l
KCkgPT0gTWVzc2FnZXM6OldlYklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKSB7CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvCiAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5l
Y3Rpb246OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3ZvaWQgV2ViVG9E
YXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRDbG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5l
Y3Rpb24pCiB7CiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgZm9yIChhdXRvJiBj
b25uZWN0aW9uIDogbV93ZWJJREJDb25uZWN0aW9uc0J5SWRlbnRpZmllci52YWx1ZXMoKSkKQEAg
LTY5LDE1ICs2OSwxNSBAQCB2b2lkIFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRD
bG9zZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCiAgICAgbV93ZWJJREJDb25uZWN0aW9u
c0J5U2Vzc2lvbi5jbGVhcigpOwogI2VuZGlmCiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS53ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZCh0aGlzKTsKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS53ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQodGhp
cyk7CiB9CiAKLXZvaWQgV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb246OmRpZFJlY2VpdmVJ
bnZhbGlkTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNz
YWdlUmVjZWl2ZXJOYW1lLCBJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlTmFtZSkKK3ZvaWQg
V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uOjpkaWRSZWNlaXZlSW52YWxpZE1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZVJlY2VpdmVyTmFt
ZSwgSVBDOjpTdHJpbmdSZWZlcmVuY2UgbWVzc2FnZU5hbWUpCiB7CiB9CiAKICNpZiBFTkFCTEUo
SU5ERVhFRF9EQVRBQkFTRSkKLVdlYklEQkNvbm5lY3Rpb25Ub1NlcnZlciYgV2ViVG9TdG9yYWdl
UHJvY2Vzc0Nvbm5lY3Rpb246OmlkYkNvbm5lY3Rpb25Ub1NlcnZlckZvclNlc3Npb24oY29uc3Qg
U2Vzc2lvbklEJiBzZXNzaW9uSUQpCitXZWJJREJDb25uZWN0aW9uVG9TZXJ2ZXImIFdlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6aWRiQ29ubmVjdGlvblRvU2VydmVyRm9yU2Vzc2lvbihj
b25zdCBTZXNzaW9uSUQmIHNlc3Npb25JRCkKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1fd2ViSURC
Q29ubmVjdGlvbnNCeVNlc3Npb24uYWRkKHNlc3Npb25JRCwgbnVsbHB0cik7CiAgICAgaWYgKHJl
c3VsdC5pc05ld0VudHJ5KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1N0b3JhZ2UvV2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24uaAppbmRleCAy
NDI2ZTZjYWZiMjBmMzViMjU3NGNmMjc4Y2I4NTgwOTVmNmE4YWUwLi4wZjFjYTkyNGFmZjI2OTdl
OTM5N2Q2YThiMjY5ZjgzNjUwZjYwMTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9u
LmgKQEAgLTM4LDEzICszOCwxMyBAQCBjbGFzcyBTZXNzaW9uSUQ7CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCi1jbGFzcyBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZD
b3VudGVkPFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uPiwgcHVibGljIElQQzo6Q29ubmVj
dGlvbjo6Q2xpZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlU2VuZGVyIHsKK2NsYXNzIFdlYlRvRGF0
YWJhc2VQcm9jZXNzQ29ubmVjdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlRvRGF0YWJhc2VQ
cm9jZXNzQ29ubmVjdGlvbj4sIHB1YmxpYyBJUEM6OkNvbm5lY3Rpb246OkNsaWVudCwgcHVibGlj
IElQQzo6TWVzc2FnZVNlbmRlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJUb1N0b3Jh
Z2VQcm9jZXNzQ29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBj
b25uZWN0aW9uSWRlbnRpZmllcikKKyAgICBzdGF0aWMgUmVmPFdlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbj4gY3JlYXRlKElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9u
SWRlbnRpZmllcikKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlRvU3Rv
cmFnZVByb2Nlc3NDb25uZWN0aW9uKGNvbm5lY3Rpb25JZGVudGlmaWVyKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbihjb25uZWN0
aW9uSWRlbnRpZmllcikpOwogICAgIH0KLSAgICB+V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rp
b24oKTsKKyAgICB+V2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKCk7CiAgICAgCiAgICAg
SVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgp
OyB9CiAKQEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAg
V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
KTsKKyAgICBXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyKTsKIAogICAgIC8vIElQQzo6Q29ubmVjdGlvbjo6Q2xpZW50CiAgICAgdm9pZCBk
aWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA2YmFiNTQ1ZjFk
ZDUyNzY1OWY2YTFmZTFlMzQzMzI5ZjMyZTAzYjlmLi5jNjQ4MTA1MDkyNjVmNjFhNDc3YWIxMTcx
YjMwNzZlMDVmNTQ1MDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CkBAIC0xMTM5LDMwICsxMTM5LDMxIEBAIFdlYkxvYWRlclN0cmF0ZWd5JiBXZWJQcm9jZXNzOjp3
ZWJMb2FkZXJTdHJhdGVneSgpCiAgICAgcmV0dXJuIG1fd2ViTG9hZGVyU3RyYXRlZ3k7CiB9CiAK
LXZvaWQgV2ViUHJvY2Vzczo6d2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCit2b2lkIFdlYlByb2Nlc3M6
OndlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbkNsb3NlZChXZWJUb0RhdGFiYXNlUHJvY2Vz
c0Nvbm5lY3Rpb24qIGNvbm5lY3Rpb24pCiB7Ci0gICAgQVNTRVJUKG1fd2ViVG9TdG9yYWdlUHJv
Y2Vzc0Nvbm5lY3Rpb24pOwotICAgIEFTU0VSVChtX3dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uID09IGNvbm5lY3Rpb24pOworICAgIEFTU0VSVChtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29u
bmVjdGlvbik7CisgICAgQVNTRVJUKG1fd2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uID09
IGNvbm5lY3Rpb24pOwogCi0gICAgbV93ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbiA9IG51
bGxwdHI7CisgICAgbV93ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24gPSBudWxscHRyOwog
fQogCi1XZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbiogV2ViUHJvY2Vzczo6d2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24oKQorV2ViVG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKiBX
ZWJQcm9jZXNzOjp3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKQogewotICAgIGlmICgh
bV93ZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbikKLSAgICAgICAgZW5zdXJlV2ViVG9TdG9y
YWdlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBpZiAoIW1fd2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uKQorICAgICAgICBlbnN1cmVXZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24o
KTsKIAotICAgIHJldHVybiBtX3dlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uLmdldCgpOwor
ICAgIHJldHVybiBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5nZXQoKTsKIH0KIAot
dm9pZCBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbigpCit2
b2lkIFdlYlByb2Nlc3M6OmVuc3VyZVdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbigpCiB7
Ci0gICAgaWYgKG1fd2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24pCisgICAgaWYgKG1fd2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKQogICAgICAgICByZXR1cm47CiAKICAgICBJUEM6
OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyOwogCi0gICAgaWYgKCFwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5
OjpHZXRTdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24oKSwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94
eTo6R2V0U3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uOjpSZXBseShlbmNvZGVkQ29ubmVjdGlvbklk
ZW50aWZpZXIpLCAwKSkKKyAgICBpZiAoIXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldERhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rp
b24oKSwKKyAgICAgICAgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0RGF0YWJhc2VQcm9j
ZXNzQ29ubmVjdGlvbjo6UmVwbHkoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyKSwgMCkpCiAg
ICAgICAgIHJldHVybjsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQpAQCAtMTE3NCw3
ICsxMTc1LDcgQEAgdm9pZCBXZWJQcm9jZXNzOjplbnN1cmVXZWJUb1N0b3JhZ2VQcm9jZXNzQ29u
bmVjdGlvbigpCiAjZW5kaWYKICAgICBpZiAoSVBDOjpDb25uZWN0aW9uOjppZGVudGlmaWVySXNO
dWxsKGNvbm5lY3Rpb25JZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fd2ViVG9T
dG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24gPSBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjo6
Y3JlYXRlKGNvbm5lY3Rpb25JZGVudGlmaWVyKTsKKyAgICBtX3dlYlRvRGF0YWJhc2VQcm9jZXNz
Q29ubmVjdGlvbiA9IFdlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKGNvbm5l
Y3Rpb25JZGVudGlmaWVyKTsKIH0KIAogdm9pZCBXZWJQcm9jZXNzOjpzZXRFbmhhbmNlZEFjY2Vz
c2liaWxpdHkoYm9vbCBmbGFnKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKaW5k
ZXggZTBiZjg2YTYzMmRmNzhkZjVjZmQ3Y2EzZGRkZDM2YTRjOTFjNTEwMi4uNjBkM2VkNDBhYmNh
NmZmMmFkNDNhMTI0YmU5YjMxZGRkNTk5OGQzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oCkBAIC04Niw3ICs4Niw3IEBAIGNsYXNzIFdlYkxvYWRlclN0cmF0ZWd5OwogY2xh
c3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1N1
cHBsZW1lbnQ7Ci1jbGFzcyBXZWJUb1N0b3JhZ2VQcm9jZXNzQ29ubmVjdGlvbjsKK2NsYXNzIFdl
YlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBl
Owogc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgV2ViUGFnZUdyb3Vw
RGF0YTsKQEAgLTE2NCw4ICsxNjQsOCBAQCBwdWJsaWM6CiAgICAgTGliV2ViUlRDTmV0d29yayYg
bGliV2ViUlRDTmV0d29yaygpOwogI2VuZGlmCiAKLSAgICB2b2lkIHdlYlRvU3RvcmFnZVByb2Nl
c3NDb25uZWN0aW9uQ2xvc2VkKFdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0aW9uKik7Ci0gICAg
V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24qIHdlYlRvU3RvcmFnZVByb2Nlc3NDb25uZWN0
aW9uKCk7CisgICAgdm9pZCB3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb25DbG9zZWQoV2Vi
VG9EYXRhYmFzZVByb2Nlc3NDb25uZWN0aW9uKik7CisgICAgV2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uKiB3ZWJUb0RhdGFiYXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAogICAgIHZvaWQg
c2V0Q2FjaGVNb2RlbCh1aW50MzJfdCk7CiAKQEAgLTM4Myw4ICszODMsOCBAQCBwcml2YXRlOgog
CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk+IG1fYXV0b21h
dGlvblNlc3Npb25Qcm94eTsKIAotICAgIHZvaWQgZW5zdXJlV2ViVG9TdG9yYWdlUHJvY2Vzc0Nv
bm5lY3Rpb24oKTsKLSAgICBSZWZQdHI8V2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb24+IG1f
d2ViVG9TdG9yYWdlUHJvY2Vzc0Nvbm5lY3Rpb247CisgICAgdm9pZCBlbnN1cmVXZWJUb0RhdGFi
YXNlUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKKyAgICBSZWZQdHI8V2ViVG9EYXRhYmFzZVByb2Nlc3ND
b25uZWN0aW9uPiBtX3dlYlRvRGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbjsKIAogI2lmIEVOQUJM
RShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXI+IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDhhZDk0ZWQxMzdlYjkwMDMy
N2M1ZDc5MzlmODVjZDM2MGUxNjJlOTguLjAxMjlkMzRhMThjY2JkMzIxMWQyNGZlMmU0MzU1YzM4
OTc3NDcyNWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNy0yOCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxOTk5
MC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDk2
MQorCisgICAgICAgICJicm9rZSBQTFQgb24gaU9TIChyZGFyOi8vcHJvYmxlbS8zMzYwMjc1MSki
IChSZXF1ZXN0ZWQgYnkKKyAgICAgICAgZXN0ZXMgb24gI3dlYmtpdCkuCisKKyAgICAgICAgUmV2
ZXJ0ZWQgY2hhbmdlc2V0OgorCisgICAgICAgICJQYXJ0IDIgb2Y6IFJlbmFtZSBEYXRhYmFzZVBy
b2Nlc3MgdG8gU3RvcmFnZVByb2Nlc3MuIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTc0ODgwCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
Y2hhbmdlc2V0LzIxOTk5MAorCiAyMDE3LTA3LTI4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBBUEkgdGVzdHMgdGhhdCB1c2UgVVJMU2NoZW1lSGFuZGxlciBh
cmUgZmFpbGluZy4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0lEQkRlbGV0ZVJlY292ZXJ5Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSURCRGVsZXRlUmVjb3ZlcnkubW0KaW5kZXggZDFmZmYyZjg3MDRhM2I4NjVl
MmQ0OGQzODZlYjk2NzE3MWE1ZTBjYy4uNTlhNDQ2NTYwMzMxNmI0MDRjZjg2ZTlmMTg2NjJmOTBh
N2MxZmQ0MCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvSURCRGVsZXRlUmVjb3ZlcnkubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyQ29jb2EvSURCRGVsZXRlUmVjb3ZlcnkubW0KQEAgLTU5LDcgKzU5LDcgQEAgVEVTVChJ
bmRleGVkREIsIERlbGV0ZVJlY292ZXJ5KQogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1
cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24g
YWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVy
XSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxl
ciJdOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZVN0
b3JhZ2VQcm9jZXNzXTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfdGVy
bWluYXRlRGF0YWJhc2VQcm9jZXNzXTsKIAogICAgIC8vIENvcHkgdGhlIGluY29uc2lzdGVudCBk
YXRhYmFzZSBmaWxlcyB0byB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5CiAgICAgTlNVUkwgKnVybDEg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSURCRGVsZXRlUmVjb3Zl
cnkiIHdpdGhFeHRlbnNpb246QCJzcWxpdGUzIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJ
LnJlc291cmNlcyJdOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvSURCSW5kZXhVcGdyYWRlVG9WMi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0lEQkluZGV4VXBncmFkZVRvVjIubW0KaW5kZXggZTA4NWJlYzgwNzYz
YWU3NDk3NWU3NTY4NjQzMWMxZDhiODYzMTZhZS4uMzZjNDc5ZDc1NWU1NThhZjg4NGYyYTUxZGEx
MzQxNDdhODc2MWMwMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvSURCSW5kZXhVcGdyYWRlVG9WMi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdDJDb2NvYS9JREJJbmRleFVwZ3JhZGVUb1YyLm1tCkBAIC01OSw3ICs1OSw3
IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleFVwZ3JhZGVUb1YyKQogICAgIFJldGFpblB0cjxXS1dl
YlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKICAgICBbW2NvbmZpZ3VyYXRpb24gdXNlckNvbnRl
bnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6
QCJ0ZXN0SGFuZGxlciJdOwogCi0gICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJvY2Vzc1Bvb2wg
X3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNzXTsKKyAgICBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9j
ZXNzUG9vbCBfdGVybWluYXRlRGF0YWJhc2VQcm9jZXNzXTsKIAogICAgIC8vIENvcHkgdGhlIGlu
Y29uc2lzdGVudCBkYXRhYmFzZSBmaWxlcyB0byB0aGUgZGF0YWJhc2UgZGlyZWN0b3J5CiAgICAg
TlNVUkwgKnVybDEgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiSW5k
ZXhVcGdyYWRlIiB3aXRoRXh0ZW5zaW9uOkAic3FsaXRlMyIgc3ViZGlyZWN0b3J5OkAiVGVzdFdl
YktpdEFQSS5yZXNvdXJjZXMiXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vzc0tpbGwubW0gYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9JbmRleGVkREJEYXRhYmFzZVByb2Nlc3NL
aWxsLm1tCmluZGV4IDM5MWMxYzRlOWE2YWQwYTI5ZGJlNzBjMTM3ODQ1MWNiZmMyZjAyNTguLjc5
MDRmYWM2NjhjZWJiYTZlM2IxOGNkZDVkYWQyNzgxZWMxNjNkZWQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0luZGV4ZWREQkRhdGFiYXNlUHJvY2Vz
c0tpbGwubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5k
ZXhlZERCRGF0YWJhc2VQcm9jZXNzS2lsbC5tbQpAQCAtOTQsNyArOTQsNyBAQCBURVNUKEluZGV4
ZWREQiwgRGF0YWJhc2VQcm9jZXNzS2lsbCkKICAgICAgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFNjcmlwdE1lc3NhZ2UpOwogICAgICAgICBpZiAoIWtpbGxlZERCUHJvY2Vz
cyAmJiBvcGVuUmVxdWVzdFVwZ3JhZGVOZWVkZWQpIHsKICAgICAgICAgICAgIGtpbGxlZERCUHJv
Y2VzcyA9IHRydWU7Ci0gICAgICAgICAgICBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9v
bCBfdGVybWluYXRlU3RvcmFnZVByb2Nlc3NdOworICAgICAgICAgICAgW2NvbmZpZ3VyYXRpb24u
Z2V0KCkucHJvY2Vzc1Bvb2wgX3Rlcm1pbmF0ZURhdGFiYXNlUHJvY2Vzc107CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNv
Y29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0luZGV4ZWREQk11bHRpUHJvY2Vzcy5tbQppbmRleCAxZjcwOWRlOGM0N2Uw
YjkxM2I4ODcyODE0NWRlNTRhMzc1ZmU3NjkyLi40ODBjNDFkN2UwMzU1MWI2ZTM5MzRiOTAwY2Qy
NjI1ODQ2NTk3MmYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9JbmRleGVkREJNdWx0aVByb2Nlc3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCTXVsdGlQcm9jZXNzLm1tCkBAIC03MSw3ICs3
MSw3IEBAIFRFU1QoSW5kZXhlZERCLCBJbmRleGVkREJNdWx0aVByb2Nlc3MpCiAgICAgUmV0YWlu
UHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tX
ZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwogICAgIFtbY29uZmlndXJhdGlvbiB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0
KCkgbmFtZTpAInRlc3RIYW5kbGVyIl07CiAKLSAgICBbY29uZmlndXJhdGlvbi5nZXQoKS5wcm9j
ZXNzUG9vbCBfdGVybWluYXRlU3RvcmFnZVByb2Nlc3NdOworICAgIFtjb25maWd1cmF0aW9uLmdl
dCgpLnByb2Nlc3NQb29sIF90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3NdOwogCiAgICAgUmV0YWlu
UHRyPFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRX
aXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1
cmF0aW9uLmdldCgpXSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0luZGV4ZWREQlBlcnNpc3RlbmNlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW0KaW5kZXggZGE2Zjky
NGQxNWM5NDA1MTlkMzQ5ZGRkNTg0NDllM2U5NzhmODQ1NC4uY2QxYmM5NWQ0OTY0M2QxZjQ0ZTNl
ZGYyOGMwZjE0Zjc3Yjc1YWYxOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvSW5kZXhlZERCUGVyc2lzdGVuY2UubW0KQEAgLTc1
LDggKzc1LDggQEAgVEVTVChJbmRleGVkREIsIEluZGV4ZWREQlBlcnNpc3RlbmNlKQogICAgIC8v
IERpdGNoIHRoaXMgd2ViIHZpZXcgKGRpdGNoaW5nIGl0cyB3ZWIgcHJvY2VzcykKICAgICB3ZWJW
aWV3ID0gbmlsOwogCi0gICAgLy8gVGVybWluYXRlIHRoZSBzdG9yYWdlIHByb2Nlc3MKLSAgICBb
Y29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzUG9vbCBfdGVybWluYXRlU3RvcmFnZVByb2Nlc3Nd
OworICAgIC8vIFRlcm1pbmF0ZSB0aGUgZGF0YWJhc2UgcHJvY2VzcworICAgIFtjb25maWd1cmF0
aW9uLmdldCgpLnByb2Nlc3NQb29sIF90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3NdOwogCiAgICAg
Ly8gTWFrZSBhIG5ldyB3ZWIgdmlldyB0byBmaW5pc2ggdGhlIHRlc3QKICAgICB3ZWJWaWV3ID0g
YWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Jlc291cmNlTG9hZFN0
YXRpc3RpY3MubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9SZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLm1tCmluZGV4IGM4MTcwN2I0Njc1YmYyZmJlNjcxNTdlMjZjOGVj
ZGY4MjFiNTUwNzIuLjdmNzIxMDkxZDk1ZWZhMzcxN2FiMTM3OGExZWYyZWMxZTg4OTk0YWIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1Jlc291cmNl
TG9hZFN0YXRpc3RpY3MubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIFRFU1Qo
UmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQcm9jZXNzZXNOb3RMYXVuY2hlZCkKICAgICAv
LyBFbnN1cmUgdGhlIHNoYXJlZCBwcm9jZXNzIHBvb2wgZXhpc3RzIHNvIHRoZSBkYXRhIHN0b3Jl
IG9wZXJhdGlvbnMgd2UncmUgYWJvdXQgdG8gZG8gd29yayB3aXRoIGl0LgogICAgIFdLUHJvY2Vz
c1Bvb2wgKnNoYXJlZFByb2Nlc3NQb29sID0gW1dLUHJvY2Vzc1Bvb2wgX3NoYXJlZFByb2Nlc3NQ
b29sXTsKIAotICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9zdG9y
YWdlUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyAgICBFWFBFQ1RfRVEoKHBpZF90KTAsIFtzaGFyZWRQ
cm9jZXNzUG9vbCBfZGF0YWJhc2VQcm9jZXNzSWRlbnRpZmllcl0pOwogICAgIEVYUEVDVF9FUSgo
c2l6ZV90KTAsIFtzaGFyZWRQcm9jZXNzUG9vbCBfcGx1Z2luUHJvY2Vzc0NvdW50XSk7CiAKICAg
ICBhdXRvICpkYXRhU3RvcmUgPSBbV0tXZWJzaXRlRGF0YVN0b3JlIGRlZmF1bHREYXRhU3RvcmVd
OwpAQCAtMTQ4LDcgKzE0OCw3IEBAIFRFU1QoUmVzb3VyY2VMb2FkU3RhdGlzdGljcywgQ2hpbGRQ
cm9jZXNzZXNOb3RMYXVuY2hlZCkKIAogICAgIEVYUEVDVF9UUlVFKFtbTlNGaWxlTWFuYWdlciBk
ZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDp0YXJnZXRVUkwucGF0aF0pOwogCi0gICAg
RVhQRUNUX0VRKChwaWRfdCkwLCBbc2hhcmVkUHJvY2Vzc1Bvb2wgX3N0b3JhZ2VQcm9jZXNzSWRl
bnRpZmllcl0pOworICAgIEVYUEVDVF9FUSgocGlkX3QpMCwgW3NoYXJlZFByb2Nlc3NQb29sIF9k
YXRhYmFzZVByb2Nlc3NJZGVudGlmaWVyXSk7CiAgICAgRVhQRUNUX0VRKChzaXplX3QpMCwgW3No
YXJlZFByb2Nlc3NQb29sIF9wbHVnaW5Qcm9jZXNzQ291bnRdKTsKIH0KIApkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2ViUHJvY2Vzc0tpbGxJREJD
bGVhbnVwLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvV2ViUHJv
Y2Vzc0tpbGxJREJDbGVhbnVwLm1tCmluZGV4IGM1YzljMzEzZGExNjYwMzNkYmFmMzc0Y2M3MmZj
YjQ4ZDAwMWQ2YzguLmViNDA5N2YzNWZjYjgyNDg1Y2FkNzc5N2I2ODY1YTg2MTljYWU3YTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJDb2NvYS9XZWJQcm9jZXNzS2lsbElEQkNsZWFudXAubW0KQEAgLTcyLDcgKzcyLDcgQEAgVEVT
VChJbmRleGVkREIsIFdlYlByb2Nlc3NLaWxsSURCQ2xlYW51cCkKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdD
b25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CiAgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250
ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1l
OkAidGVzdEhhbmRsZXIiXTsKIAotICAgIFtjb25maWd1cmF0aW9uLmdldCgpLnByb2Nlc3NQb29s
IF90ZXJtaW5hdGVTdG9yYWdlUHJvY2Vzc107CisgICAgW2NvbmZpZ3VyYXRpb24uZ2V0KCkucHJv
Y2Vzc1Bvb2wgX3Rlcm1pbmF0ZURhdGFiYXNlUHJvY2Vzc107CiAKICAgICBSZXRhaW5QdHI8V0tX
ZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24u
Z2V0KCldKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQyQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzLm1tCmluZGV4
IDliMWJhMWU5ZmNmNmNmMTBmZWVlMGE3ZGE3ZDNkNjhhNGQyNDEzNTMuLjBiM2NlOWE3ZGU2YTQ4
NjQxZDA4OTVhNTY0ZTZlNDcwOGRjMWM2ODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL1dlYnNpdGVEYXRhU3RvcmVDdXN0b21QYXRocy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q3VzdG9tUGF0aHMubW0KQEAgLTEyMSw3ICsxMjEsNyBAQCBURVNUKFdlYktpdDIsIFdlYnNpdGVE
YXRhU3RvcmVDdXN0b21QYXRocykKICAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByb2Nl
c3NQb29sXSBfc3luY05ldHdvcmtQcm9jZXNzQ29va2llc107CiAKICAgICAvLyBGb3JjaWJseSBz
aHV0IGRvd24gZXZlcnl0aGluZyBvZiBXZWJLaXQgdGhhdCB3ZSBjYW4uCi0gICAgW1tbd2ViVmll
dyBjb25maWd1cmF0aW9uXSBwcm9jZXNzUG9vbF0gX3Rlcm1pbmF0ZVN0b3JhZ2VQcm9jZXNzXTsK
KyAgICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByb2Nlc3NQb29sXSBfdGVybWluYXRlRGF0
YWJhc2VQcm9jZXNzXTsKICAgICBhdXRvIHBpZCA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRp
Zmllcl07CiAgICAgaWYgKHBpZCkKICAgICAgICAga2lsbChwaWQsIFNJR0tJTEwpOwpAQCAtMTU5
LDcgKzE1OSw3IEBAIFRFU1QoV2ViS2l0MiwgV2Vic2l0ZURhdGFTdG9yZUN1c3RvbVBhdGhzKQog
CiAgICAgLy8gRGF0YSBzdG9yZXMgY2FuJ3QgZGVsZXRlIGFueXRoaW5nIHVubGVzcyBhIFdLUHJv
Y2Vzc1Bvb2wgZXhpc3RzLCBzbyBtYWtlIHN1cmUgdGhlIHNoYXJlZCBkYXRhIHN0b3JlIGV4aXN0
cy4KICAgICBhdXRvICpwcm9jZXNzUG9vbCA9IFtXS1Byb2Nlc3NQb29sIF9zaGFyZWRQcm9jZXNz
UG9vbF07Ci0gICAgW3Byb2Nlc3NQb29sIF90ZXJtaW5hdGVTdG9yYWdlUHJvY2Vzc107CisgICAg
W3Byb2Nlc3NQb29sIF90ZXJtaW5hdGVEYXRhYmFzZVByb2Nlc3NdOwogICAgIFJldGFpblB0cjxX
S1dlYnNpdGVEYXRhU3RvcmU+IGRhdGFTdG9yZSA9IFtbV0tXZWJzaXRlRGF0YVN0b3JlIGFsbG9j
XSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOndlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmdl
dCgpXTsKICAgICBSZXRhaW5QdHI8TlNTZXQ+IHR5cGVzID0gYWRvcHROUyhbW05TU2V0IGFsbG9j
XSBpbml0V2l0aE9iamVjdHM6V0tXZWJzaXRlRGF0YVR5cGVJbmRleGVkREJEYXRhYmFzZXMsIG5p
bF0pOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>