<?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>151669</bug_id>
          
          <creation_ts>2015-11-30 12:34:53 -0800</creation_ts>
          <short_desc>REGRESSION(r192812): This change seems to have broken the iOS builds (Requested by ryanhaddad on #webkit).</short_desc>
          <delta_ts>2015-11-30 12:45:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>151010</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1144877</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-30 12:34:53 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/192812 broke the build:
This change seems to have broken the iOS builds (Requested by ryanhaddad 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>1144879</commentid>
    <comment_count>1</comment_count>
      <attachid>266259</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-30 12:35:22 -0800</bug_when>
    <thetext>Created attachment 266259
ROLLOUT of r192812

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>1144881</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-30 12:42:31 -0800</bug_when>
    <thetext>Looks like I accidentally committed the FTL_USES_B3 change to DFGCommon.h.  Just running that part out will fix the issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144883</commentid>
    <comment_count>3</comment_count>
      <attachid>266259</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-30 12:43:14 -0800</bug_when>
    <thetext>Comment on attachment 266259
ROLLOUT of r192812

Landing a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1144884</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-30 12:45:31 -0800</bug_when>
    <thetext>Landed a fix in http://trac.webkit.org/changeset/192815.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>266259</attachid>
            <date>2015-11-30 12:35:22 -0800</date>
            <delta_ts>2015-11-30 12:45:52 -0800</delta_ts>
            <desc>ROLLOUT of r192812</desc>
            <filename>bug-151669-20151130123500.patch</filename>
            <type>text/plain</type>
            <size>49907</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkyODEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA3
NTQwYmE3NDExYzZjNzY2OTIzYTM1ZWI1OWViOWMwY2FiNDJlMGYwLi41YzM0NTY5OWU3ZjQ0Yzg0
MGIwYzA1YTRhYzZjMzlmYTQ5ODc5ZTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAxNS0xMS0zMCAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MjgxMi4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MTY2OQorCisgICAg
ICAgIFRoaXMgY2hhbmdlIHNlZW1zIHRvIGhhdmUgYnJva2VuIHRoZSBpT1MgYnVpbGRzIChSZXF1
ZXN0ZWQgYnkKKyAgICAgICAgcnlhbmhhZGRhZCBvbiAjd2Via2l0KS4KKworICAgICAgICBSZXZl
cnRlZCBjaGFuZ2VzZXQ6CisKKyAgICAgICAgIk1hY3JvQXNzZW1ibGVyIG5lZWRzIGFuIEFQSSBm
b3IgZGlzYWJsaW5nIHNjcmF0Y2ggcmVnaXN0ZXJzIgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxMDEwCisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtp
dC5vcmcvY2hhbmdlc2V0LzE5MjgxMgorCiAyMDE1LTExLTMwICBGaWxpcCBQaXpsbyAgPGZwaXps
b0BhcHBsZS5jb20+CiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXIgbmVlZHMgYW4gQVBJIGZvciBk
aXNhYmxpbmcgc2NyYXRjaCByZWdpc3RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggN2FiYTNhZjQ2M2JlNDMyZTg2MzA3MzMyM2UwYjUwMzQyYmRhYTE0Ny4uYjNjMjVlNmQ2Mzkx
OTc1ZDJlZDFjNTI2OTliMTA1NzE2NzY0YmZkNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTMwNiw4ICszMDYsNiBAQAogCQkwRjMzOEUxRTFCRjI4NkVBMDAxM0M4OEYgLyogQjNM
b3dlck1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzMzhFMUExQkYyODZFQTAwMTNDODhGIC8qIEIzTG93ZXJNYWNyb3MuaCAqLzsgfTsKIAkJ
MEYzNEIxNDkxNkQ0MjAxMDAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVB
IC8qIERGR1VzZUtpbmQuY3BwICovOyB9OwogCQkwRjM0QjE0QTE2RDQyMDEzMDAxQ0RBNUEgLyog
REZHVXNlS2luZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzNEIxNDgxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuaCAqLzsgfTsKLQkJMEYz
NzMwOEYxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYzNzMw
OEUxQzBDRDY4NTAwMDUyQkZBIC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5o
ICovOyB9OwotCQkwRjM3MzA5MTFDMENENzBDMDAwNTJCRkEgLyogQWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRjM3MzA5MDFDMENENzBDMDAwNTJCRkEgLyogQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlLmggKi87IH07CiAJCTBGMzhCMDExMTdDRjA3ODAwMEIxNDREMyAvKiBMTEludEVudHJ5
cG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEYzOEIwMEYxN0NGMDc3RjAwQjE0NEQzIC8qIExMSW50RW50cnlwb2ludC5jcHAgKi87IH07CiAJ
CTBGMzhCMDEyMTdDRjA3ODMwMEIxNDREMyAvKiBMTEludEVudHJ5cG9pbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMzhCMDEwMTdDRjA3N0YwMEIx
NDREMyAvKiBMTEludEVudHJ5cG9pbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQkwRjM4QjAxNzE3Q0ZFNzU1MDBCMTQ0RDMgLyogREZHQ29tcGls
YXRpb25LZXkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMEYzOEIwMTMxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9uS2V5LmNwcCAqLzsg
fTsKQEAgLTIzNjksOCArMjM2Nyw2IEBACiAJCTBGMzM4RTFBMUJGMjg2RUEwMDEzQzg4RiAvKiBC
M0xvd2VyTWFjcm9zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEIzTG93ZXJN
YWNyb3MuaDsgcGF0aCA9IGIzL0IzTG93ZXJNYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEYzNEIxNDcxNkQ0MjAwRTAwMUNEQTVBIC8qIERGR1VzZUtpbmQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHVXNlS2luZC5jcHA7IHBhdGggPSBk
ZmcvREZHVXNlS2luZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzRCMTQ4
MTZENDIwMEUwMDFDREE1QSAvKiBERkdVc2VLaW5kLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IERGR1VzZUtpbmQuaDsgcGF0aCA9IGRmZy9ERkdVc2VLaW5kLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGMzczMDhFMUMwQ0Q2ODUwMDA1MkJGQSAvKiBEaXNhbGxv
d01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTBGMzczMDkwMUMwQ0Q3MEMwMDA1MkJGQSAvKiBBbGxvd01hY3JvU2Ny
YXRjaFJlZ2lzdGVyVXNhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxs
b3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTBGMzhCMDBGMTdDRjA3N0YwMEIxNDREMyAvKiBMTEludEVudHJ5cG9pbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gTExJbnRFbnRyeXBvaW50LmNwcDsgcGF0aCA9IGxsaW50L0xMSW50RW50
cnlwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGMzhCMDEwMTdDRjA3
N0YwMEIxNDREMyAvKiBMTEludEVudHJ5cG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTExJbnRFbnRy
eXBvaW50Lmg7IHBhdGggPSBsbGludC9MTEludEVudHJ5cG9pbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEYzOEIwMTMxN0NGRTc1NTAwQjE0NEQzIC8qIERGR0NvbXBpbGF0aW9u
S2V5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0NvbXBpbGF0
aW9uS2V5LmNwcDsgcGF0aCA9IGRmZy9ERkdDb21waWxhdGlvbktleS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CkBAIC02MTY5LDcgKzYxNjUsNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJMEYxRkU1MUIxOTIyQTNCQzAwNjk4N0M1IC8qIEFib3J0UmVhc29uLmggKi8sCiAJCQkJODYw
MTYxREYwRjNBODNDMTAwRjg0NzEwIC8qIEFic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaCAqLywKLQkJ
CQkwRjM3MzA5MDFDMENENzBDMDAwNTJCRkEgLyogQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVz
YWdlLmggKi8sCiAJCQkJODY0MDkyM0IxNTZFRUQzQjAwNTY2Q0IyIC8qIEFSTTY0QXNzZW1ibGVy
LmggKi8sCiAJCQkJODZEM0IyQkYxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5jcHAg
Ki8sCiAJCQkJODZEM0IyQzAxMDE1NkJERTAwMjg2NUU3IC8qIEFSTUFzc2VtYmxlci5oICovLApA
QCAtNjE3Nyw3ICs2MTcyLDYgQEAKIAkJCQk5Njg4Q0IxMzBFRDEyQjRFMDAxRDY0OUYgLyogQXNz
ZW1ibGVyQnVmZmVyLmggKi8sCiAJCQkJODZEM0IyQzExMDE1NkJERTAwMjg2NUU3IC8qIEFzc2Vt
YmxlckJ1ZmZlcldpdGhDb25zdGFudFBvb2wuaCAqLywKIAkJCQk4NkUxMTZCMDBGRTc1QUM4MDBC
NTEyQkMgLyogQ29kZUxvY2F0aW9uLmggKi8sCi0JCQkJMEYzNzMwOEUxQzBDRDY4NTAwMDUyQkZB
IC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oICovLAogCQkJCTBGRjQyNzU2
MTU5MTRBMjAwMDRDQjlGRiAvKiBMaW5rQnVmZmVyLmNwcCAqLywKIAkJCQk4NkQzQjNDMTEwMTU5
RDdGMDAyODY1RTcgLyogTGlua0J1ZmZlci5oICovLAogCQkJCTBGRUIzRUNFMTYyMzdGNjcwMEFC
NjdBRCAvKiBNYWNyb0Fzc2VtYmxlci5jcHAgKi8sCkBAIC02MTkzLDggKzYxODcsOCBAQAogCQkJ
CUZFNjhDNjM1MUI5MERERDkwMDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIuY3BwICov
LAogCQkJCUZFNjhDNjM2MUI5MERERDkwMDQyQkNCMyAvKiBNYWNyb0Fzc2VtYmxlclByaW50ZXIu
aCAqLywKIAkJCQk4NkFFNjRBNjEzNUU1RTFDMDA5NjMwMTIgLyogTWFjcm9Bc3NlbWJsZXJTSDQu
aCAqLywKLQkJCQk4NjAxNjFFMTBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJYODZf
NjQuaCAqLywKIAkJCQk4NjAxNjFFMDBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJY
ODYuaCAqLywKKwkJCQk4NjAxNjFFMTBGM0E4M0MxMDBGODQ3MTAgLyogTWFjcm9Bc3NlbWJsZXJY
ODZfNjQuaCAqLywKIAkJCQlBN0E0QUUwNzE3OTczQjI2MDA1NjEyQjEgLyogTWFjcm9Bc3NlbWJs
ZXJYODZDb21tb24uY3BwICovLAogCQkJCTg2MDE2MUUyMEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNy
b0Fzc2VtYmxlclg4NkNvbW1vbi5oICovLAogCQkJCTY1ODYwMTc3MTg1QThGNUUwMDAzMEVFRSAv
KiBNYXhGcmFtZUV4dGVudEZvclNsb3dQYXRoQ2FsbC5oICovLApAQCAtNzAwMCw3ICs2OTk0LDYg
QEAKIAkJCQkwRjJCOUNFRDE5RDBCQTdEMDBCMUQxQjUgLyogREZHUHJvbW90ZWRIZWFwTG9jYXRp
b24uaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRkM5MjE2MUI5NEZCM0UwMDcxREQ2NiAvKiBERkdQ
cm9wZXJ0eVR5cGVLZXkuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGQjE3NjYzMTk2QjhGOUUwMDkx
MDUyQSAvKiBERkdQdXJlVmFsdWUuaCBpbiBIZWFkZXJzICovLAotCQkJCTBGMzczMDkxMUMwQ0Q3
MEMwMDA1MkJGQSAvKiBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTBGM0ExQkZBMUE5RUNCN0QwMDBERTAxQSAvKiBERkdQdXRTdGFja1NpbmtpbmdQ
aGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFQzlERDExMzI4REY4MjAwMkIyQUQ3IC8qIERG
R1JlZ2lzdGVyQmFuay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyRkNDRkMxOEE2MDA3MDAwMUEy
N0Y4IC8qIERGR1NhZmVwb2ludC5oIGluIEhlYWRlcnMgKi8sCkBAIC03NDg0LDcgKzc0NzcsNiBA
QAogCQkJCTg2MDE2MUU2MEYzQTgzQzEwMEY4NDcxMCAvKiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1v
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTcwMDg3M0ExN0NCRTg1MzAwQzNFNjQzIC8qIE1hcENv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzg1MDdENzE3Q0JDNkZEMDAxMUY2RTcg
LyogTWFwRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJMEYzNzMwOEYxQzBDRDY4NTAwMDUyQkZB
IC8qIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMEE2NDQxNTE5NDIwQTZDNjFBRDE4ODJFIC8qIE1hcERhdGFJbmxpbmVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBNzRERUY5NDE4MkQ5OTE0MDA1MjJDMjIgLyogTWFwSXRlcmF0b3JQcm90b3R5
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3MDA4NzNFMTdDQkU4RDMwMEMzRTY0MyAvKiBNYXBQ
cm90b3R5cGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAppbmRleCBjYzk5NWEyYzk2
NGVkY2Y4ZWQ4MzM5NjI1YjBiNWZlNzk0YmExNWQ5Li42ZTlhMjczMzYzMTMyNjUwMzk1MGE2MDc1
NTcyODc0MGQyYjZjOWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
YXNzZW1ibGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaApAQCAtODIsOCArODIsNiBAQCBpbmxp
bmUgYm9vbCBvcHRpbWl6ZUZvclg4NigpCiAgICAgcmV0dXJuIGlzWDg2KCkgJiYgT3B0aW9uczo6
dXNlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25zKCk7CiB9CiAKLWNsYXNzIEFsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZTsKLWNsYXNzIERpc2FsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZTsKIGNsYXNzIExpbmtCdWZmZXI7CiBjbGFzcyBXYXRjaHBvaW50OwogbmFtZXNw
YWNlIERGRyB7CkBAIC0xMTIwLDEwICsxMTE4LDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBtX3Rl
bXBSZWdpc3RlcnNWYWxpZEJpdHMgfD0gcmVnaXN0ZXJNYXNrOwogICAgIH0KIAotICAgIGZyaWVu
ZCBjbGFzcyBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2U7Ci0gICAgZnJpZW5kIGNsYXNz
IERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZTsKICAgICB1bnNpZ25lZCBtX3RlbXBS
ZWdpc3RlcnNWYWxpZEJpdHM7Ci0gICAgYm9vbCBtX2FsbG93U2NyYXRjaFJlZ2lzdGVyIHsgdHJ1
ZSB9OwogCiAgICAgVmVjdG9yPFJlZlB0cjxTaGFyZWRUYXNrPHZvaWQoTGlua0J1ZmZlciYpPj4+
IG1fbGlua1Rhc2tzOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2Fzc2VtYmxlci9BbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UuaApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggNzMzZDA1NzQ2OWRiN2UxNjhiYTliZTNjMDUxZjBmZDdkZjVk
MWM0Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2Fn
ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
Ci0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0
ZXJVc2FnZV9oCi0jZGVmaW5lIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZV9oCi0KLSNp
ZiBFTkFCTEUoQVNTRU1CTEVSKQotCi0jaW5jbHVkZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLQotbmFt
ZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSB7Ci1w
dWJsaWM6Ci0gICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlKE1hY3JvQXNzZW1ibGVy
JiBtYXNtKQotICAgICAgICA6IG1fbWFzbShtYXNtKQotICAgICAgICAsIG1fb2xkVmFsdWVPZkFs
bG93U2NyYXRjaFJlZ2lzdGVyKG1hc20ubV9hbGxvd1NjcmF0Y2hSZWdpc3RlcikKLSAgICB7Ci0g
ICAgICAgIG1hc20ubV9hbGxvd1NjcmF0Y2hSZWdpc3RlciA9IHRydWU7Ci0gICAgfQotCi0gICAg
fkFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSgpCi0gICAgewotICAgICAgICBtX21hc20u
bV9hbGxvd1NjcmF0Y2hSZWdpc3RlciA9IG1fb2xkVmFsdWVPZkFsbG93U2NyYXRjaFJlZ2lzdGVy
OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBNYWNyb0Fzc2VtYmxlciYgbV9tYXNtOwotICAgIGJv
b2wgbV9vbGRWYWx1ZU9mQWxsb3dTY3JhdGNoUmVnaXN0ZXI7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBKU0MKLQotI2VuZGlmIC8vIEVOQUJMRShBU1NFTUJMRVIpCi0KLSNlbmRpZiAvLyBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2VfaAotCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvYXNzZW1ibGVyL0Rpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9EaXNhbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVy
VXNhZ2UuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTk0YWQwODMwNjRhNzM0NjUy
NjNlNmMzZDRjOGU4Nzk1MjkyMDNhNy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Rpc2FsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaWZuZGVmIERp
c2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZV9oCi0jZGVmaW5lIERpc2FsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZV9oCi0KLSNpZiBFTkFCTEUoQVNTRU1CTEVSKQotCi0jaW5jbHVk
ZSAiTWFjcm9Bc3NlbWJsZXIuaCIKLQotbmFtZXNwYWNlIEpTQyB7Ci0KLWNsYXNzIERpc2FsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSB7Ci1wdWJsaWM6Ci0gICAgRGlzYWxsb3dNYWNyb1Nj
cmF0Y2hSZWdpc3RlclVzYWdlKE1hY3JvQXNzZW1ibGVyJiBtYXNtKQotICAgICAgICA6IG1fbWFz
bShtYXNtKQotICAgICAgICAsIG1fb2xkVmFsdWVPZkFsbG93U2NyYXRjaFJlZ2lzdGVyKG1hc20u
bV9hbGxvd1NjcmF0Y2hSZWdpc3RlcikKLSAgICB7Ci0gICAgICAgIG1hc20ubV9hbGxvd1NjcmF0
Y2hSZWdpc3RlciA9IGZhbHNlOwotICAgIH0KLQotICAgIH5EaXNhbGxvd01hY3JvU2NyYXRjaFJl
Z2lzdGVyVXNhZ2UoKQotICAgIHsKLSAgICAgICAgbV9tYXNtLm1fYWxsb3dTY3JhdGNoUmVnaXN0
ZXIgPSBtX29sZFZhbHVlT2ZBbGxvd1NjcmF0Y2hSZWdpc3RlcjsKLSAgICB9Ci0KLXByaXZhdGU6
Ci0gICAgTWFjcm9Bc3NlbWJsZXImIG1fbWFzbTsKLSAgICBib29sIG1fb2xkVmFsdWVPZkFsbG93
U2NyYXRjaFJlZ2lzdGVyOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBF
TkFCTEUoQVNTRU1CTEVSKQotCi0jZW5kaWYgLy8gRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlX2gKLQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9N
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxl
ci9NYWNyb0Fzc2VtYmxlclg4NkNvbW1vbi5oCmluZGV4IDMwMGVhYzczOWM0M2QzNzgwZjFjOTA2
OWZkN2MxNzk4NzJmNDVjNDUuLmQ3NjIwNjliNGM4MjhkZmRkNmRkNmQ2MWI5YzY0MDkwMDlmODI4
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3Nl
bWJsZXJYODZDb21tb24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL01h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uLmgKQEAgLTM2LDE2ICszNiw3IEBAIG5hbWVzcGFjZSBKU0Mg
ewogY2xhc3MgTWFjcm9Bc3NlbWJsZXJYODZDb21tb24gOiBwdWJsaWMgQWJzdHJhY3RNYWNyb0Fz
c2VtYmxlcjxYODZBc3NlbWJsZXIsIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uPiB7CiBwdWJsaWM6
CiAjaWYgQ1BVKFg4Nl82NCkKLSAgICAvLyBVc2UgdGhpcyBkaXJlY3RseSBvbmx5IGlmIHlvdSdy
ZSBub3QgZ2VuZXJhdGluZyBjb2RlIHdpdGggaXQuCi0gICAgc3RhdGljIGNvbnN0IFg4NlJlZ2lz
dGVyczo6UmVnaXN0ZXJJRCBzX3NjcmF0Y2hSZWdpc3RlciA9IFg4NlJlZ2lzdGVyczo6cjExOwot
Ci0gICAgLy8gVXNlIHRoaXMgd2hlbiBnZW5lcmF0aW5nIGNvZGUgc28gdGhhdCB3ZSBnZXQgZW5m
b3JjZW1lbnQgb2YgdGhlIGRpc2FsbG93aW5nIG9mIHNjcmF0Y2ggcmVnaXN0ZXIKLSAgICAvLyB1
c2FnZS4KLSAgICBYODZSZWdpc3RlcnM6OlJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyKCkKLSAg
ICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fYWxsb3dTY3JhdGNoUmVnaXN0ZXIpOwotICAg
ICAgICByZXR1cm4gc19zY3JhdGNoUmVnaXN0ZXI7Ci0gICAgfQorICAgIHN0YXRpYyBjb25zdCBY
ODZSZWdpc3RlcnM6OlJlZ2lzdGVySUQgc2NyYXRjaFJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpy
MTE7CiAjZW5kaWYKIAogcHJvdGVjdGVkOgpAQCAtNzUxLDggKzc0Miw4IEBAIHB1YmxpYzoKICAg
ICAgICAgQVNTRVJUKGlzU1NFMlByZXNlbnQoKSk7CiAgICAgICAgIG1fYXNzZW1ibGVyLm1vdnNk
X21yKGFkZHJlc3MubV92YWx1ZSwgZGVzdCk7CiAjZWxzZQotICAgICAgICBtb3ZlKGFkZHJlc3Ms
IHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgbG9hZERvdWJsZShzY3JhdGNoUmVnaXN0ZXIo
KSwgZGVzdCk7CisgICAgICAgIG1vdmUoYWRkcmVzcywgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAg
ICAgbG9hZERvdWJsZShzY3JhdGNoUmVnaXN0ZXIsIGRlc3QpOwogI2VuZGlmCiAgICAgfQogCkBA
IC05NzMsOCArOTY0LDggQEAgcHVibGljOgogI2lmIENQVShYODZfNjQpCiAgICAgICAgIGlmIChu
ZWdaZXJvQ2hlY2spIHsKICAgICAgICAgICAgIEp1bXAgdmFsdWVJc05vblplcm8gPSBicmFuY2hU
ZXN0MzIoTm9uWmVybywgZGVzdCk7Ci0gICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3Ztc2twZF9y
cihzcmMsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBl
bmQoYnJhbmNoVGVzdDMyKE5vblplcm8sIHNjcmF0Y2hSZWdpc3RlcigpLCBUcnVzdGVkSW1tMzIo
MSkpKTsKKyAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdm1za3BkX3JyKHNyYywgc2NyYXRjaFJl
Z2lzdGVyKTsKKyAgICAgICAgICAgIGZhaWx1cmVDYXNlcy5hcHBlbmQoYnJhbmNoVGVzdDMyKE5v
blplcm8sIHNjcmF0Y2hSZWdpc3RlciwgVHJ1c3RlZEltbTMyKDEpKSk7CiAgICAgICAgICAgICB2
YWx1ZUlzTm9uWmVyby5saW5rKHRoaXMpOwogICAgICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9NYWNyb0Fzc2VtYmxlclg4Nl82NC5oCmlu
ZGV4IDZlNjIyMWVjOTA3YzNmZjRkZGVhMDBkNDQ0YjQ0NjdjMzQ3NmIzNjIuLjQ4ZjM2NjY5OTIy
NjFhZWYzY2FmYWM4ZGVlM2JiZGU4NTk5MzgwMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9hc3NlbWJsZXIvTWFjcm9Bc3NlbWJsZXJYODZfNjQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYXNzZW1ibGVyL01hY3JvQXNzZW1ibGVyWDg2XzY0LmgKQEAgLTYwLDM4ICs2
MCwzOCBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghaW1tLm1fdmFsdWUpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBzY3Jh
dGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIGFkZDMyKGltbSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0
ZXIoKSkpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIHNjcmF0
Y2hSZWdpc3Rlcik7CisgICAgICAgIGFkZDMyKGltbSwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIp
KTsKICAgICB9CiAgICAgCiAgICAgdm9pZCBhbmQzMihUcnVzdGVkSW1tMzIgaW1tLCBBYnNvbHV0
ZUFkZHJlc3MgYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBhbmQzMihpbW0sIEFkZHJl
c3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MubV9wdHIpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBhbmQzMihpbW0sIEFkZHJlc3Mo
c2NyYXRjaFJlZ2lzdGVyKSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgYWRkMzIoQWJzb2x1dGVB
ZGRyZXNzIGFkZHJlc3MsIFJlZ2lzdGVySUQgZGVzdCkKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBh
ZGQzMihBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CisgICAgICAgIG1vdmUoVHJ1
c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgYWRk
MzIoQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIpLCBkZXN0KTsKICAgICB9CiAgICAgCiAgICAgdm9p
ZCBvcjMyKFRydXN0ZWRJbW0zMiBpbW0sIEFic29sdXRlQWRkcmVzcyBhZGRyZXNzKQogICAgIHsK
LSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MubV9wdHIpLCBzY3JhdGNoUmVnaXN0
ZXIoKSk7Ci0gICAgICAgIG9yMzIoaW1tLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSk7Cisg
ICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVy
KTsKKyAgICAgICAgb3IzMihpbW0sIEFkZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSk7CiAgICAgfQog
CiAgICAgdm9pZCBvcjMyKFJlZ2lzdGVySUQgcmVnLCBBYnNvbHV0ZUFkZHJlc3MgYWRkcmVzcykK
ICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRj
aFJlZ2lzdGVyKCkpOwotICAgICAgICBvcjMyKHJlZywgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIo
KSkpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIHNjcmF0Y2hS
ZWdpc3Rlcik7CisgICAgICAgIG9yMzIocmVnLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcikpOwog
ICAgIH0KIAogICAgIHZvaWQgc3ViMzIoVHJ1c3RlZEltbTMyIGltbSwgQWJzb2x1dGVBZGRyZXNz
IGFkZHJlc3MpCiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0
ciksIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgc3ViMzIoaW1tLCBBZGRyZXNzKHNjcmF0
Y2hSZWdpc3RlcigpKSk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRy
KSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgc3ViMzIoaW1tLCBBZGRyZXNzKHNjcmF0Y2hS
ZWdpc3RlcikpOwogICAgIH0KICAgICAKICAgICB2b2lkIGxvYWQ4KGNvbnN0IHZvaWQqIGFkZHJl
c3MsIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTExMiwyMCArMTEyLDIwIEBAIHB1YmxpYzoKIAogICAg
IHZvaWQgYWRkRG91YmxlKEFic29sdXRlQWRkcmVzcyBhZGRyZXNzLCBGUFJlZ2lzdGVySUQgZGVz
dCkKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2Ny
YXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBtX2Fzc2VtYmxlci5hZGRzZF9tcigwLCBzY3JhdGNo
UmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1f
cHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuYWRkc2RfbXIoMCwg
c2NyYXRjaFJlZ2lzdGVyLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGNvbnZlcnRJbnQzMlRv
RG91YmxlKFRydXN0ZWRJbW0zMiBpbW0sIEZQUmVnaXN0ZXJJRCBkZXN0KQogICAgIHsKLSAgICAg
ICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgbV9hc3NlbWJsZXIuY3Z0
c2kyc2RfcnIoc2NyYXRjaFJlZ2lzdGVyKCksIGRlc3QpOworICAgICAgICBtb3ZlKGltbSwgc2Ny
YXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgbV9hc3NlbWJsZXIuY3Z0c2kyc2RfcnIoc2NyYXRjaFJl
Z2lzdGVyLCBkZXN0KTsKICAgICB9CiAKICAgICB2b2lkIHN0b3JlMzIoVHJ1c3RlZEltbTMyIGlt
bSwgdm9pZCogYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihhZGRy
ZXNzKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBzdG9yZTMyKGltbSwgc2NyYXRjaFJl
Z2lzdGVyKCkpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIHNjcmF0Y2hS
ZWdpc3Rlcik7CisgICAgICAgIHN0b3JlMzIoaW1tLCBzY3JhdGNoUmVnaXN0ZXIpOwogICAgIH0K
IAogICAgIHZvaWQgc3RvcmUzMihSZWdpc3RlcklEIHNvdXJjZSwgdm9pZCogYWRkcmVzcykKQEAg
LTEzMywyMSArMTMzLDIxIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKHNvdXJjZSA9PSBYODZSZWdp
c3RlcnM6OmVheCkKICAgICAgICAgICAgIG1fYXNzZW1ibGVyLm1vdmxfRUFYbShhZGRyZXNzKTsK
ICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyks
IHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIHN0b3JlMzIoc291cmNlLCBzY3JhdGNo
UmVnaXN0ZXIoKSk7CisgICAgICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcyksIHNj
cmF0Y2hSZWdpc3Rlcik7CisgICAgICAgICAgICBzdG9yZTMyKHNvdXJjZSwgc2NyYXRjaFJlZ2lz
dGVyKTsKICAgICAgICAgfQogICAgIH0KICAgICAKICAgICB2b2lkIHN0b3JlOChUcnVzdGVkSW1t
MzIgaW1tLCB2b2lkKiBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRy
KGFkZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3JlOChpbW0sIEFkZHJl
c3Moc2NyYXRjaFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTgoaW1tLCBBZGRyZXNzKHNjcmF0
Y2hSZWdpc3RlcikpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcmU4KFJlZ2lzdGVySUQgcmVnLCB2
b2lkKiBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3JlOChyZWcsIEFkZHJlc3Moc2NyYXRj
aFJlZ2lzdGVyKCkpKTsKKyAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3MpLCBzY3Jh
dGNoUmVnaXN0ZXIpOworICAgICAgICBzdG9yZTgocmVnLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3Rl
cikpOwogICAgIH0KIAogI2lmIE9TKFdJTkRPV1MpCkBAIC0xNzUsOCArMTc1LDggQEAgcHVibGlj
OgogICAgICAgICBtb3ZlKFg4NlJlZ2lzdGVyczo6ZXNwLCBYODZSZWdpc3RlcnM6OmVjeCk7CiAg
ICAgICAgIGFkZDY0KFRydXN0ZWRJbW0zMig0ICogc2l6ZW9mKGludDY0X3QpKSwgWDg2UmVnaXN0
ZXJzOjplY3gpOwogCi0gICAgICAgIERhdGFMYWJlbFB0ciBsYWJlbCA9IG1vdmVXaXRoUGF0Y2go
VHJ1c3RlZEltbVB0cigwKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBDYWxsIHJlc3Vs
dCA9IENhbGwobV9hc3NlbWJsZXIuY2FsbChzY3JhdGNoUmVnaXN0ZXIoKSksIENhbGw6Okxpbmth
YmxlKTsKKyAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQYXRjaChUcnVzdGVk
SW1tUHRyKDApLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBDYWxsIHJlc3VsdCA9IENhbGwo
bV9hc3NlbWJsZXIuY2FsbChzY3JhdGNoUmVnaXN0ZXIpLCBDYWxsOjpMaW5rYWJsZSk7CiAKICAg
ICAgICAgYWRkNjQoVHJ1c3RlZEltbTMyKDggKiBzaXplb2YoaW50NjRfdCkpLCBYODZSZWdpc3Rl
cnM6OmVzcCk7CiAKQEAgLTIwMSwyMCArMjAxLDIwIEBAIHB1YmxpYzoKICAgICAgICAgLy8gV2Ug
ZG9uJ3Qga25vdyB0aGUgbnVtYmVyIG9mIGFyZ3VtZW50cyBhdCB0aGlzIHBvaW50LCBzbyB0aGUg
YXJndW1lbnRzICg1LCA2LCAuLi4pIHNob3VsZCBhbHdheXMgYmUgY29waWVkLgogCiAgICAgICAg
IC8vIENvcHkgYXJndW1lbnQgNQotICAgICAgICBsb2FkNjQoQWRkcmVzcyhYODZSZWdpc3RlcnM6
OmVzcCwgNCAqIHNpemVvZihpbnQ2NF90KSksIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAg
c3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwgQWRkcmVzcyhYODZSZWdpc3RlcnM6OmVzcCwgLTQg
KiBzdGF0aWNfY2FzdDxpbnQzMl90PihzaXplb2YoaW50NjRfdCkpKSk7CisgICAgICAgIGxvYWQ2
NChBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNwLCA0ICogc2l6ZW9mKGludDY0X3QpKSwgc2NyYXRj
aFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIsIEFkZHJlc3MoWDg2
UmVnaXN0ZXJzOjplc3AsIC00ICogc3RhdGljX2Nhc3Q8aW50MzJfdD4oc2l6ZW9mKGludDY0X3Qp
KSkpOwogCiAgICAgICAgIC8vIENvcHkgYXJndW1lbnQgNgotICAgICAgICBsb2FkNjQoQWRkcmVz
cyhYODZSZWdpc3RlcnM6OmVzcCwgNSAqIHNpemVvZihpbnQ2NF90KSksIHNjcmF0Y2hSZWdpc3Rl
cigpKTsKLSAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0ZXIoKSwgQWRkcmVzcyhYODZSZWdp
c3RlcnM6OmVzcCwgLTMgKiBzdGF0aWNfY2FzdDxpbnQzMl90PihzaXplb2YoaW50NjRfdCkpKSk7
CisgICAgICAgIGxvYWQ2NChBZGRyZXNzKFg4NlJlZ2lzdGVyczo6ZXNwLCA1ICogc2l6ZW9mKGlu
dDY0X3QpKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmU2NChzY3JhdGNoUmVnaXN0
ZXIsIEFkZHJlc3MoWDg2UmVnaXN0ZXJzOjplc3AsIC0zICogc3RhdGljX2Nhc3Q8aW50MzJfdD4o
c2l6ZW9mKGludDY0X3QpKSkpOwogCiAgICAgICAgIC8vIFdlIGFsc28gbmVlZCB0byBhbGxvY2F0
ZSB0aGUgc2hhZG93IHNwYWNlIG9uIHRoZSBzdGFjayBmb3IgdGhlIDQgcGFyYW1ldGVyIHJlZ2lz
dGVycy4KICAgICAgICAgLy8gQWxzbywgd2Ugc2hvdWxkIGFsbG9jYXRlIDE2IGJ5dGVzIGZvciB0
aGUgZnJhbWUgcG9pbnRlciwgYW5kIHJldHVybiBhZGRyZXNzIChub3QgcG9wdWxhdGVkKS4KICAg
ICAgICAgLy8gSW4gYWRkaXRpb24sIHdlIG5lZWQgdG8gYWxsb2NhdGUgMTYgYnl0ZXMgZm9yIHR3
byBtb3JlIHBhcmFtZXRlcnMsIHNpbmNlIHRoZSBjYWxsIGNhbiBoYXZlIHVwIHRvIDYgcGFyYW1l
dGVycy4KICAgICAgICAgc3ViNjQoVHJ1c3RlZEltbTMyKDggKiBzaXplb2YoaW50NjRfdCkpLCBY
ODZSZWdpc3RlcnM6OmVzcCk7CiAjZW5kaWYKLSAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0g
bW92ZVdpdGhQYXRjaChUcnVzdGVkSW1tUHRyKDApLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAg
ICAgIENhbGwgcmVzdWx0ID0gQ2FsbChtX2Fzc2VtYmxlci5jYWxsKHNjcmF0Y2hSZWdpc3Rlcigp
KSwgQ2FsbDo6TGlua2FibGUpOworICAgICAgICBEYXRhTGFiZWxQdHIgbGFiZWwgPSBtb3ZlV2l0
aFBhdGNoKFRydXN0ZWRJbW1QdHIoMCksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIENhbGwg
cmVzdWx0ID0gQ2FsbChtX2Fzc2VtYmxlci5jYWxsKHNjcmF0Y2hSZWdpc3RlciksIENhbGw6Okxp
bmthYmxlKTsKICNpZiBPUyhXSU5ET1dTKQogICAgICAgICBhZGQ2NChUcnVzdGVkSW1tMzIoOCAq
IHNpemVvZihpbnQ2NF90KSksIFg4NlJlZ2lzdGVyczo6ZXNwKTsKICNlbmRpZgpAQCAtMjI1LDE0
ICsyMjUsMTQgQEAgcHVibGljOgogICAgIC8vIEFkZHJlc3MgaXMgYSBtZW1vcnkgbG9jYXRpb24g
Y29udGFpbmluZyB0aGUgYWRkcmVzcyB0byBqdW1wIHRvCiAgICAgdm9pZCBqdW1wKEFic29sdXRl
QWRkcmVzcyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJl
c3MubV9wdHIpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIGp1bXAoQWRkcmVzcyhzY3Jh
dGNoUmVnaXN0ZXIoKSkpOworICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0
ciksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIGp1bXAoQWRkcmVzcyhzY3JhdGNoUmVnaXN0
ZXIpKTsKICAgICB9CiAKICAgICBDYWxsIHRhaWxSZWN1cnNpdmVDYWxsKCkKICAgICB7Ci0gICAg
ICAgIERhdGFMYWJlbFB0ciBsYWJlbCA9IG1vdmVXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cigwKSwg
c2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBKdW1wIG5ld0p1bXAgPSBKdW1wKG1fYXNzZW1i
bGVyLmptcF9yKHNjcmF0Y2hSZWdpc3RlcigpKSk7CisgICAgICAgIERhdGFMYWJlbFB0ciBsYWJl
bCA9IG1vdmVXaXRoUGF0Y2goVHJ1c3RlZEltbVB0cigwKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAg
ICAgICAgSnVtcCBuZXdKdW1wID0gSnVtcChtX2Fzc2VtYmxlci5qbXBfcihzY3JhdGNoUmVnaXN0
ZXIpKTsKICAgICAgICAgQVNTRVJUX1VOVVNFRChsYWJlbCwgZGlmZmVyZW5jZUJldHdlZW4obGFi
ZWwsIG5ld0p1bXApID09IFJFUEFUQ0hfT0ZGU0VUX0NBTExfUjExKTsKICAgICAgICAgcmV0dXJu
IENhbGw6OmZyb21UYWlsSnVtcChuZXdKdW1wKTsKICAgICB9CkBAIC0yNDAsMTYgKzI0MCwxNiBA
QCBwdWJsaWM6CiAgICAgQ2FsbCBtYWtlVGFpbFJlY3Vyc2l2ZUNhbGwoSnVtcCBvbGRKdW1wKQog
ICAgIHsKICAgICAgICAgb2xkSnVtcC5saW5rKHRoaXMpOwotICAgICAgICBEYXRhTGFiZWxQdHIg
bGFiZWwgPSBtb3ZlV2l0aFBhdGNoKFRydXN0ZWRJbW1QdHIoMCksIHNjcmF0Y2hSZWdpc3Rlcigp
KTsKLSAgICAgICAgSnVtcCBuZXdKdW1wID0gSnVtcChtX2Fzc2VtYmxlci5qbXBfcihzY3JhdGNo
UmVnaXN0ZXIoKSkpOworICAgICAgICBEYXRhTGFiZWxQdHIgbGFiZWwgPSBtb3ZlV2l0aFBhdGNo
KFRydXN0ZWRJbW1QdHIoMCksIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIEp1bXAgbmV3SnVt
cCA9IEp1bXAobV9hc3NlbWJsZXIuam1wX3Ioc2NyYXRjaFJlZ2lzdGVyKSk7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQobGFiZWwsIGRpZmZlcmVuY2VCZXR3ZWVuKGxhYmVsLCBuZXdKdW1wKSA9PSBS
RVBBVENIX09GRlNFVF9DQUxMX1IxMSk7CiAgICAgICAgIHJldHVybiBDYWxsOjpmcm9tVGFpbEp1
bXAobmV3SnVtcCk7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hBZGQzMihSZXN1bHRDb25kaXRp
b24gY29uZCwgVHJ1c3RlZEltbTMyIHNyYywgQWJzb2x1dGVBZGRyZXNzIGRlc3QpCiAgICAgewot
ICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIoZGVzdC5tX3B0ciksIHNjcmF0Y2hSZWdpc3Rlcigp
KTsKLSAgICAgICAgYWRkMzIoc3JjLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSk7CisgICAg
ICAgIG1vdmUoVHJ1c3RlZEltbVB0cihkZXN0Lm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAg
ICAgICAgYWRkMzIoc3JjLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcikpOwogICAgICAgICByZXR1
cm4gSnVtcChtX2Fzc2VtYmxlci5qQ0MoeDg2Q29uZGl0aW9uKGNvbmQpKSk7CiAgICAgfQogCkBA
IC0yNjUsOCArMjY1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGQ2NChBYnNvbHV0ZUFkZHJl
c3Mgc3JjLCBSZWdpc3RlcklEIGRlc3QpCiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1Q
dHIoc3JjLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBhZGQ2NChBZGRyZXNz
KHNjcmF0Y2hSZWdpc3RlcigpKSwgZGVzdCk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihz
cmMubV9wdHIpLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBhZGQ2NChBZGRyZXNzKHNjcmF0
Y2hSZWdpc3RlciksIGRlc3QpOwogICAgIH0KIAogICAgIHZvaWQgYWRkNjQoVHJ1c3RlZEltbTMy
IGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQpAQCAtMzA5LDggKzMwOSw4IEBAIHB1YmxpYzoKICAg
ICAgICAgaWYgKCFpbW0ubV92YWx1ZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBt
b3ZlKFRydXN0ZWRJbW1QdHIoYWRkcmVzcy5tX3B0ciksIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAg
ICAgICAgYWRkNjQoaW1tLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcigpKSk7CisgICAgICAgIG1v
dmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAg
ICAgYWRkNjQoaW1tLCBBZGRyZXNzKHNjcmF0Y2hSZWdpc3RlcikpOwogICAgIH0KIAogICAgIHZv
aWQgYWRkUHRyTm9GbGFncyhUcnVzdGVkSW1tMzIgaW1tLCBSZWdpc3RlcklEIHNyY0Rlc3QpCkBA
IC0zMzAsOCArMzMwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhbmQ2NChUcnVzdGVkSW1tUHRy
IGltbSwgUmVnaXN0ZXJJRCBzcmNEZXN0KQogICAgIHsKLSAgICAgICAgbW92ZShpbW0sIHNjcmF0
Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgYW5kNjQoc2NyYXRjaFJlZ2lzdGVyKCksIHNyY0Rlc3Qp
OworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgYW5kNjQoc2Ny
YXRjaFJlZ2lzdGVyLCBzcmNEZXN0KTsKICAgICB9CiAKICAgICB2b2lkIGxzaGlmdDY0KFRydXN0
ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTQzMiw4ICs0MzIsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIG9yNjQoVHJ1c3RlZEltbTY0IGltbSwgUmVnaXN0ZXJJRCBkZXN0KQogICAg
IHsKLSAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgb3I2NChz
Y3JhdGNoUmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0
ZXIpOworICAgICAgICBvcjY0KHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CiAgICAgfQogCiAgICAg
dm9pZCBvcjY0KFRydXN0ZWRJbW0zMiBpbW0sIFJlZ2lzdGVySUQgZGVzdCkKQEAgLTQ4Miw4ICs0
ODIsOCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChpbW0ubV92YWx1ZSA9PSAxKQogICAgICAgICAg
ICAgbV9hc3NlbWJsZXIuZGVjcV9yKGRlc3QpOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IG1vdmUoaW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAgICBzdWI2NChzY3JhdGNo
UmVnaXN0ZXIoKSwgZGVzdCk7CisgICAgICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVy
KTsKKyAgICAgICAgICAgIHN1YjY0KHNjcmF0Y2hSZWdpc3RlciwgZGVzdCk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTU2MSw4ICs1NjEsOCBAQCBwdWJsaWM6CiAgICAgICAgIGlmIChzcmMgPT0g
WDg2UmVnaXN0ZXJzOjplYXgpCiAgICAgICAgICAgICBtX2Fzc2VtYmxlci5tb3ZxX0VBWG0oYWRk
cmVzcyk7CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFk
ZHJlc3MpLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgICAgICBzdG9yZTY0KHNyYywgc2Ny
YXRjaFJlZ2lzdGVyKCkpOworICAgICAgICAgICAgbW92ZShUcnVzdGVkSW1tUHRyKGFkZHJlc3Mp
LCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICAgICAgc3RvcmU2NChzcmMsIHNjcmF0Y2hSZWdp
c3Rlcik7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTU3OCwxNCArNTc4LDE0IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIG1vdmUoaW1tLCBzY3Jh
dGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHN0b3JlNjQoc2NyYXRjaFJlZ2lzdGVyKCksIGFkZHJl
c3MpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgc3RvcmU2
NChzY3JhdGNoUmVnaXN0ZXIsIGFkZHJlc3MpOwogICAgIH0KIAogICAgIHZvaWQgc3RvcmU2NChU
cnVzdGVkSW1tNjQgaW1tLCBCYXNlSW5kZXggYWRkcmVzcykKICAgICB7Ci0gICAgICAgIG1vdmUo
aW1tLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIG1fYXNzZW1ibGVyLm1vdnFfcm0oc2Ny
YXRjaFJlZ2lzdGVyKCksIGFkZHJlc3Mub2Zmc2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5k
ZXgsIGFkZHJlc3Muc2NhbGUpOworICAgICAgICBtb3ZlKGltbSwgc2NyYXRjaFJlZ2lzdGVyKTsK
KyAgICAgICAgbV9hc3NlbWJsZXIubW92cV9ybShzY3JhdGNoUmVnaXN0ZXIsIGFkZHJlc3Mub2Zm
c2V0LCBhZGRyZXNzLmJhc2UsIGFkZHJlc3MuaW5kZXgsIGFkZHJlc3Muc2NhbGUpOwogICAgIH0K
ICAgICAKICAgICBEYXRhTGFiZWwzMiBzdG9yZTY0V2l0aEFkZHJlc3NPZmZzZXRQYXRjaChSZWdp
c3RlcklEIHNyYywgQWRkcmVzcyBhZGRyZXNzKQpAQCAtNjY4LDggKzY2OCw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgIG1fYXNzZW1ibGVyLnRlc3RxX3JyKGxlZnQsIGxlZnQpOwogICAgICAgICAg
ICAgcmV0dXJuIEp1bXAobV9hc3NlbWJsZXIuakNDKHg4NkNvbmRpdGlvbihjb25kKSkpOwogICAg
ICAgICB9Ci0gICAgICAgIG1vdmUocmlnaHQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAg
cmV0dXJuIGJyYW5jaDY0KGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAg
bW92ZShyaWdodCwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNv
bmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2g2NChS
ZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgbGVmdCwgQWRkcmVzcyByaWdodCkK
QEAgLTY4MCw4ICs2ODAsOCBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaDY0KFJlbGF0aW9u
YWxDb25kaXRpb24gY29uZCwgQWJzb2x1dGVBZGRyZXNzIGxlZnQsIFJlZ2lzdGVySUQgcmlnaHQp
CiAgICAgewotICAgICAgICBtb3ZlKFRydXN0ZWRJbW1QdHIobGVmdC5tX3B0ciksIHNjcmF0Y2hS
ZWdpc3RlcigpKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNvbmQsIEFkZHJlc3Moc2NyYXRj
aFJlZ2lzdGVyKCkpLCByaWdodCk7CisgICAgICAgIG1vdmUoVHJ1c3RlZEltbVB0cihsZWZ0Lm1f
cHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNvbmQsIEFk
ZHJlc3Moc2NyYXRjaFJlZ2lzdGVyKSwgcmlnaHQpOwogICAgIH0KIAogICAgIEp1bXAgYnJhbmNo
NjQoUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGxlZnQsIFJlZ2lzdGVySUQgcmln
aHQpCkBAIC02OTIsOCArNjkyLDggQEAgcHVibGljOgogCiAgICAgSnVtcCBicmFuY2g2NChSZWxh
dGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFkZHJlc3MgbGVmdCwgVHJ1c3RlZEltbTY0IHJpZ2h0KQog
ICAgIHsKLSAgICAgICAgbW92ZShyaWdodCwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICBy
ZXR1cm4gYnJhbmNoNjQoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKCkpOworICAgICAgICBt
b3ZlKHJpZ2h0LCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4gYnJhbmNoNjQoY29u
ZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5jaDY0KFJl
bGF0aW9uYWxDb25kaXRpb24gY29uZCwgQmFzZUluZGV4IGFkZHJlc3MsIFJlZ2lzdGVySUQgcmln
aHQpCkBAIC03MDksOCArNzA5LDggQEAgcHVibGljOgogCiAgICAgSnVtcCBicmFuY2hQdHIoUmVs
YXRpb25hbENvbmRpdGlvbiBjb25kLCBCYXNlSW5kZXggbGVmdCwgVHJ1c3RlZEltbVB0ciByaWdo
dCkKICAgICB7Ci0gICAgICAgIG1vdmUocmlnaHQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAg
ICAgcmV0dXJuIGJyYW5jaFB0cihjb25kLCBsZWZ0LCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAg
ICAgIG1vdmUocmlnaHQsIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAgICAgIHJldHVybiBicmFuY2hQ
dHIoY29uZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICBKdW1wIGJyYW5j
aFRlc3Q2NChSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCByZWcsIFJlZ2lzdGVySUQg
bWFzaykKQEAgLTczMyw4ICs3MzMsOCBAQCBwdWJsaWM6CiAKICAgICBKdW1wIGJyYW5jaFRlc3Q2
NChSZXN1bHRDb25kaXRpb24gY29uZCwgUmVnaXN0ZXJJRCByZWcsIFRydXN0ZWRJbW02NCBtYXNr
KQogICAgIHsKLSAgICAgICAgbW92ZShtYXNrLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAg
IHJldHVybiBicmFuY2hUZXN0NjQoY29uZCwgcmVnLCBzY3JhdGNoUmVnaXN0ZXIoKSk7CisgICAg
ICAgIG1vdmUobWFzaywgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaFRl
c3Q2NChjb25kLCByZWcsIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgfQogCiAgICAgdm9pZCB0ZXN0
NjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIFJlZ2lzdGVySUQgcmVnLCBUcnVzdGVkSW1tMzIgbWFz
aywgUmVnaXN0ZXJJRCBkZXN0KQpAQCAtNzU2LDggKzc1Niw4IEBAIHB1YmxpYzoKIAogICAgIEp1
bXAgYnJhbmNoVGVzdDY0KFJlc3VsdENvbmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgYWRk
cmVzcywgVHJ1c3RlZEltbTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEpKQogICAgIHsKLSAgICAg
ICAgbG9hZDY0KGFkZHJlc3MubV9wdHIsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgcmV0
dXJuIGJyYW5jaFRlc3Q2NChjb25kLCBzY3JhdGNoUmVnaXN0ZXIoKSwgbWFzayk7CisgICAgICAg
IGxvYWQ2NChhZGRyZXNzLm1fcHRyLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICByZXR1cm4g
YnJhbmNoVGVzdDY0KGNvbmQsIHNjcmF0Y2hSZWdpc3RlciwgbWFzayk7CiAgICAgfQogCiAgICAg
SnVtcCBicmFuY2hUZXN0NjQoUmVzdWx0Q29uZGl0aW9uIGNvbmQsIEFkZHJlc3MgYWRkcmVzcywg
VHJ1c3RlZEltbTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIoLTEpKQpAQCAtODk2LDI4ICs4OTYsMjgg
QEAgcHVibGljOgogCiAgICAgSnVtcCBicmFuY2hQdHJXaXRoUGF0Y2goUmVsYXRpb25hbENvbmRp
dGlvbiBjb25kLCBSZWdpc3RlcklEIGxlZnQsIERhdGFMYWJlbFB0ciYgZGF0YUxhYmVsLCBUcnVz
dGVkSW1tUHRyIGluaXRpYWxSaWdodFZhbHVlID0gVHJ1c3RlZEltbVB0cigwKSkKICAgICB7Ci0g
ICAgICAgIGRhdGFMYWJlbCA9IG1vdmVXaXRoUGF0Y2goaW5pdGlhbFJpZ2h0VmFsdWUsIHNjcmF0
Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNvbmQsIGxlZnQsIHNjcmF0
Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgZGF0YUxhYmVsID0gbW92ZVdpdGhQYXRjaChpbml0aWFs
UmlnaHRWYWx1ZSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIGJyYW5jaDY0KGNv
bmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgfQogCiAgICAgSnVtcCBicmFuY2hQdHJX
aXRoUGF0Y2goUmVsYXRpb25hbENvbmRpdGlvbiBjb25kLCBBZGRyZXNzIGxlZnQsIERhdGFMYWJl
bFB0ciYgZGF0YUxhYmVsLCBUcnVzdGVkSW1tUHRyIGluaXRpYWxSaWdodFZhbHVlID0gVHJ1c3Rl
ZEltbVB0cigwKSkKICAgICB7Ci0gICAgICAgIGRhdGFMYWJlbCA9IG1vdmVXaXRoUGF0Y2goaW5p
dGlhbFJpZ2h0VmFsdWUsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgcmV0dXJuIGJyYW5j
aDY0KGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgZGF0YUxhYmVsID0g
bW92ZVdpdGhQYXRjaChpbml0aWFsUmlnaHRWYWx1ZSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAg
ICAgcmV0dXJuIGJyYW5jaDY0KGNvbmQsIGxlZnQsIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgfQog
CiAgICAgSnVtcCBicmFuY2gzMldpdGhQYXRjaChSZWxhdGlvbmFsQ29uZGl0aW9uIGNvbmQsIEFk
ZHJlc3MgbGVmdCwgRGF0YUxhYmVsMzImIGRhdGFMYWJlbCwgVHJ1c3RlZEltbTMyIGluaXRpYWxS
aWdodFZhbHVlID0gVHJ1c3RlZEltbTMyKDApKQogICAgIHsKICAgICAgICAgcGFkQmVmb3JlUGF0
Y2goKTsKLSAgICAgICAgbV9hc3NlbWJsZXIubW92bF9pMzJyKGluaXRpYWxSaWdodFZhbHVlLm1f
dmFsdWUsIHNjcmF0Y2hSZWdpc3RlcigpKTsKKyAgICAgICAgbV9hc3NlbWJsZXIubW92bF9pMzJy
KGluaXRpYWxSaWdodFZhbHVlLm1fdmFsdWUsIHNjcmF0Y2hSZWdpc3Rlcik7CiAgICAgICAgIGRh
dGFMYWJlbCA9IERhdGFMYWJlbDMyKHRoaXMpOwotICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29u
ZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKCkpOworICAgICAgICByZXR1cm4gYnJhbmNoMzIoY29u
ZCwgbGVmdCwgc2NyYXRjaFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICBEYXRhTGFiZWxQdHIgc3Rv
cmVQdHJXaXRoUGF0Y2goVHJ1c3RlZEltbVB0ciBpbml0aWFsVmFsdWUsIEltcGxpY2l0QWRkcmVz
cyBhZGRyZXNzKQogICAgIHsKLSAgICAgICAgRGF0YUxhYmVsUHRyIGxhYmVsID0gbW92ZVdpdGhQ
YXRjaChpbml0aWFsVmFsdWUsIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgc3RvcmU2NChz
Y3JhdGNoUmVnaXN0ZXIoKSwgYWRkcmVzcyk7CisgICAgICAgIERhdGFMYWJlbFB0ciBsYWJlbCA9
IG1vdmVXaXRoUGF0Y2goaW5pdGlhbFZhbHVlLCBzY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBz
dG9yZTY0KHNjcmF0Y2hSZWdpc3RlciwgYWRkcmVzcyk7CiAgICAgICAgIHJldHVybiBsYWJlbDsK
ICAgICB9CiAKQEAgLTkzNCwyMiArOTM0LDIyIEBAIHB1YmxpYzoKICAgICB1c2luZyBNYWNyb0Fz
c2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoODsKICAgICBKdW1wIGJyYW5jaDgoUmVsYXRpb25hbENv
bmRpdGlvbiBjb25kLCBBYnNvbHV0ZUFkZHJlc3MgbGVmdCwgVHJ1c3RlZEltbTMyIHJpZ2h0KQog
ICAgIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om1vdmUoVHJ1c3RlZEltbVB0
cihsZWZ0Lm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICByZXR1cm4gTWFjcm9B
c3NlbWJsZXJYODZDb21tb246OmJyYW5jaDgoY29uZCwgQWRkcmVzcyhzY3JhdGNoUmVnaXN0ZXIo
KSksIHJpZ2h0KTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om1vdmUoVHJ1c3Rl
ZEltbVB0cihsZWZ0Lm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgcmV0dXJuIE1h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2g4KGNvbmQsIEFkZHJlc3Moc2NyYXRjaFJlZ2lz
dGVyKSwgcmlnaHQpOwogICAgIH0KICAgICAKICAgICB1c2luZyBNYWNyb0Fzc2VtYmxlclg4NkNv
bW1vbjo6YnJhbmNoVGVzdDg7CiAgICAgSnVtcCBicmFuY2hUZXN0OChSZXN1bHRDb25kaXRpb24g
Y29uZCwgRXh0ZW5kZWRBZGRyZXNzIGFkZHJlc3MsIFRydXN0ZWRJbW0zMiBtYXNrID0gVHJ1c3Rl
ZEltbTMyKC0xKSkKICAgICB7CiAgICAgICAgIFRydXN0ZWRJbW1QdHIgYWRkcihyZWludGVycHJl
dF9jYXN0PHZvaWQqPihhZGRyZXNzLm9mZnNldCkpOwotICAgICAgICBNYWNyb0Fzc2VtYmxlclg4
NkNvbW1vbjo6bW92ZShhZGRyLCBzY3JhdGNoUmVnaXN0ZXIoKSk7Ci0gICAgICAgIHJldHVybiBN
YWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoVGVzdDgoY29uZCwgQmFzZUluZGV4KHNjcmF0
Y2hSZWdpc3RlcigpLCBhZGRyZXNzLmJhc2UsIFRpbWVzT25lKSwgbWFzayk7CisgICAgICAgIE1h
Y3JvQXNzZW1ibGVyWDg2Q29tbW9uOjptb3ZlKGFkZHIsIHNjcmF0Y2hSZWdpc3Rlcik7CisgICAg
ICAgIHJldHVybiBNYWNyb0Fzc2VtYmxlclg4NkNvbW1vbjo6YnJhbmNoVGVzdDgoY29uZCwgQmFz
ZUluZGV4KHNjcmF0Y2hSZWdpc3RlciwgYWRkcmVzcy5iYXNlLCBUaW1lc09uZSksIG1hc2spOwog
ICAgIH0KICAgICAKICAgICBKdW1wIGJyYW5jaFRlc3Q4KFJlc3VsdENvbmRpdGlvbiBjb25kLCBB
YnNvbHV0ZUFkZHJlc3MgYWRkcmVzcywgVHJ1c3RlZEltbTMyIG1hc2sgPSBUcnVzdGVkSW1tMzIo
LTEpKQogICAgIHsKLSAgICAgICAgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246Om1vdmUoVHJ1c3Rl
ZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKCkpOwotICAgICAgICByZXR1
cm4gTWFjcm9Bc3NlbWJsZXJYODZDb21tb246OmJyYW5jaFRlc3Q4KGNvbmQsIEFkZHJlc3Moc2Ny
YXRjaFJlZ2lzdGVyKCkpLCBtYXNrKTsKKyAgICAgICAgTWFjcm9Bc3NlbWJsZXJYODZDb21tb246
Om1vdmUoVHJ1c3RlZEltbVB0cihhZGRyZXNzLm1fcHRyKSwgc2NyYXRjaFJlZ2lzdGVyKTsKKyAg
ICAgICAgcmV0dXJuIE1hY3JvQXNzZW1ibGVyWDg2Q29tbW9uOjpicmFuY2hUZXN0OChjb25kLCBB
ZGRyZXNzKHNjcmF0Y2hSZWdpc3RlciksIG1hc2spOwogICAgIH0KIAogICAgIHZvaWQgY29udmVy
dEludDY0VG9Eb3VibGUoUmVnaXN0ZXJJRCBzcmMsIEZQUmVnaXN0ZXJJRCBkZXN0KQpAQCAtOTY3
LDggKzk2Nyw4IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIEZ1bmN0aW9uUHRyKFg4NkFzc2Vt
Ymxlcjo6cmVhZFBvaW50ZXIoY2FsbC5kYXRhTGFiZWxQdHJBdE9mZnNldCgtUkVQQVRDSF9PRkZT
RVRfQ0FMTF9SMTEpLmRhdGFMb2NhdGlvbigpKSk7CiAgICAgfQogCi0gICAgYm9vbCBoYXZlU2Ny
YXRjaFJlZ2lzdGVyRm9yQmxpbmRpbmcoKSB7IHJldHVybiBtX2FsbG93U2NyYXRjaFJlZ2lzdGVy
OyB9Ci0gICAgUmVnaXN0ZXJJRCBzY3JhdGNoUmVnaXN0ZXJGb3JCbGluZGluZygpIHsgcmV0dXJu
IHNjcmF0Y2hSZWdpc3RlcigpOyB9CisgICAgc3RhdGljIGJvb2wgaGF2ZVNjcmF0Y2hSZWdpc3Rl
ckZvckJsaW5kaW5nKCkgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHN0YXRpYyBSZWdpc3RlcklEIHNj
cmF0Y2hSZWdpc3RlckZvckJsaW5kaW5nKCkgeyByZXR1cm4gc2NyYXRjaFJlZ2lzdGVyOyB9CiAK
ICAgICBzdGF0aWMgYm9vbCBjYW5KdW1wUmVwbGFjZVBhdGNoYWJsZUJyYW5jaFB0cldpdGhQYXRj
aCgpIHsgcmV0dXJuIHRydWU7IH0KICAgICBzdGF0aWMgYm9vbCBjYW5KdW1wUmVwbGFjZVBhdGNo
YWJsZUJyYW5jaDMyV2l0aFBhdGNoKCkgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMTAwNSwxNyArMTAw
NSwxNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgc3RhdGljIHZvaWQgcmV2ZXJ0SnVtcFJlcGxhY2Vt
ZW50VG9QYXRjaGFibGVCcmFuY2hQdHJXaXRoUGF0Y2goQ29kZUxvY2F0aW9uTGFiZWwgaW5zdHJ1
Y3Rpb25TdGFydCwgQWRkcmVzcywgdm9pZCogaW5pdGlhbFZhbHVlKQogICAgIHsKLSAgICAgICAg
WDg2QXNzZW1ibGVyOjpyZXZlcnRKdW1wVG9fbW92cV9pNjRyKGluc3RydWN0aW9uU3RhcnQuZXhl
Y3V0YWJsZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5pdGlhbFZhbHVl
KSwgc19zY3JhdGNoUmVnaXN0ZXIpOworICAgICAgICBYODZBc3NlbWJsZXI6OnJldmVydEp1bXBU
b19tb3ZxX2k2NHIoaW5zdHJ1Y3Rpb25TdGFydC5leGVjdXRhYmxlQWRkcmVzcygpLCByZWludGVy
cHJldF9jYXN0PGludHB0cl90Pihpbml0aWFsVmFsdWUpLCBzY3JhdGNoUmVnaXN0ZXIpOwogICAg
IH0KIAogICAgIHN0YXRpYyB2b2lkIHJldmVydEp1bXBSZXBsYWNlbWVudFRvUGF0Y2hhYmxlQnJh
bmNoMzJXaXRoUGF0Y2goQ29kZUxvY2F0aW9uTGFiZWwgaW5zdHJ1Y3Rpb25TdGFydCwgQWRkcmVz
cywgaW50MzJfdCBpbml0aWFsVmFsdWUpCiAgICAgewotICAgICAgICBYODZBc3NlbWJsZXI6OnJl
dmVydEp1bXBUb19tb3ZsX2kzMnIoaW5zdHJ1Y3Rpb25TdGFydC5leGVjdXRhYmxlQWRkcmVzcygp
LCBpbml0aWFsVmFsdWUsIHNfc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgWDg2QXNzZW1ibGVy
OjpyZXZlcnRKdW1wVG9fbW92bF9pMzJyKGluc3RydWN0aW9uU3RhcnQuZXhlY3V0YWJsZUFkZHJl
c3MoKSwgaW5pdGlhbFZhbHVlLCBzY3JhdGNoUmVnaXN0ZXIpOwogICAgIH0KIAogICAgIHN0YXRp
YyB2b2lkIHJldmVydEp1bXBSZXBsYWNlbWVudFRvQnJhbmNoUHRyV2l0aFBhdGNoKENvZGVMb2Nh
dGlvbkxhYmVsIGluc3RydWN0aW9uU3RhcnQsIFJlZ2lzdGVySUQsIHZvaWQqIGluaXRpYWxWYWx1
ZSkKICAgICB7Ci0gICAgICAgIFg4NkFzc2VtYmxlcjo6cmV2ZXJ0SnVtcFRvX21vdnFfaTY0cihp
bnN0cnVjdGlvblN0YXJ0LmV4ZWN1dGFibGVBZGRyZXNzKCksIHJlaW50ZXJwcmV0X2Nhc3Q8aW50
cHRyX3Q+KGluaXRpYWxWYWx1ZSksIHNfc2NyYXRjaFJlZ2lzdGVyKTsKKyAgICAgICAgWDg2QXNz
ZW1ibGVyOjpyZXZlcnRKdW1wVG9fbW92cV9pNjRyKGluc3RydWN0aW9uU3RhcnQuZXhlY3V0YWJs
ZUFkZHJlc3MoKSwgcmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oaW5pdGlhbFZhbHVlKSwgc2Ny
YXRjaFJlZ2lzdGVyKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9pZCByZXBhdGNoQ2FsbChDb2Rl
TG9jYXRpb25DYWxsIGNhbGwsIENvZGVMb2NhdGlvbkxhYmVsIGRlc3RpbmF0aW9uKQpAQCAtMTA0
Miw4ICsxMDQyLDggQEAgcHJpdmF0ZToKICAgICAgICAgaWYgKGltbS5tX3ZhbHVlID09IDEpCiAg
ICAgICAgICAgICBtX2Fzc2VtYmxlci5pbmNxX3IoZGVzdCk7CiAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgbW92ZShpbW0sIHNjcmF0Y2hSZWdpc3RlcigpKTsKLSAgICAgICAgICAgIGFkZDY0
KHNjcmF0Y2hSZWdpc3RlcigpLCBkZXN0KTsKKyAgICAgICAgICAgIG1vdmUoaW1tLCBzY3JhdGNo
UmVnaXN0ZXIpOworICAgICAgICAgICAgYWRkNjQoc2NyYXRjaFJlZ2lzdGVyLCBkZXN0KTsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL2Fp
ci9BaXJHZW5lcmF0ZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVy
YXRlLmNwcAppbmRleCAyODZiMGM3MmZjNmJkMGJlMzNmZDYwMDJmZWEyMzUzZWFlZjNlYTBlLi45
MGM0NWM5Mjc5MGZkMzU0NTVlNmZjNDYwMjQ5Y2JiZDU0MTYzYmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcApAQCAtNDMsNyArNDMsNiBAQAogI2lu
Y2x1ZGUgIkIzSW5kZXhNYXAuaCIKICNpbmNsdWRlICJCM1RpbWluZ1Njb3BlLmgiCiAjaW5jbHVk
ZSAiQ0NhbGxIZWxwZXJzLmgiCi0jaW5jbHVkZSAiRGlzYWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlLmgiCiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBuYW1lc3BhY2UgQWly
IHsKIApAQCAtMTEzLDggKzExMiw2IEBAIHZvaWQgZ2VuZXJhdGUoQ29kZSYgY29kZSwgQ0NhbGxI
ZWxwZXJzJiBqaXQpCiB7CiAgICAgVGltaW5nU2NvcGUgdGltaW5nU2NvcGUoIkFpcjo6Z2VuZXJh
dGUiKTsKIAotICAgIERpc2FsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBkaXNhbGxvd1Nj
cmF0Y2goaml0KTsKLQogICAgIC8vIEFuZCBub3csIHdlIGdlbmVyYXRlIGNvZGUuCiAgICAgaml0
LmVtaXRGdW5jdGlvblByb2xvZ3VlKCk7CiAgICAgaml0LmFkZFB0cihDQ2FsbEhlbHBlcnM6OlRy
dXN0ZWRJbW0zMigtY29kZS5mcmFtZVNpemUoKSksIE1hY3JvQXNzZW1ibGVyOjpzdGFja1BvaW50
ZXJSZWdpc3Rlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvdGVzdGIz
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCmluZGV4IGQzYWQ2NjNh
YThkZDU3NjExMzdmYzFlNjBmMzg2OWQ2MDI3NDQ5ZGIuLmE3ZmZkZDZhNzJlMzI4NzZhZjZlOWYy
MTFjZTVhZGMxZTgwODVkMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90
ZXN0YjMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCkBAIC0y
NSw3ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIkFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZS5oIgogI2luY2x1ZGUgIkIzQXJndW1lbnRSZWdWYWx1ZS5o
IgogI2luY2x1ZGUgIkIzQmFzaWNCbG9ja0lubGluZXMuaCIKICNpbmNsdWRlICJCM0NDYWxsVmFs
dWUuaCIKQEAgLTMxODMsNyArMzE4Miw2IEBAIHZvaWQgdGVzdFNpbXBsZVBhdGNocG9pbnQoKQog
ICAgIHBhdGNocG9pbnQtPmFwcGVuZChDb25zdHJhaW5lZFZhbHVlKGFyZzIsIFZhbHVlUmVwOjpT
b21lUmVnaXN0ZXIpKTsKICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsm
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFy
YW1zKSB7Ci0gICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dT
Y3JhdGNoKGppdCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gMyk7
CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1swXS5pc0dQUigpKTsKICAgICAgICAgICAg
IENIRUNLKHBhcmFtcy5yZXBzWzFdLmlzR1BSKCkpOwpAQCAtMzIxMSw3ICszMjA5LDYgQEAgdm9p
ZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhvdXRPdXB1dENsb2JiZXJzR1BBcmdzKCkKICAgICBw
YXRjaHBvaW50LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShjb25zdDIsIFZhbHVlUmVwOjpTb21l
UmVnaXN0ZXIpKTsKICAgICBwYXRjaHBvaW50LT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAo
Q0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1z
KSB7Ci0gICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3Jh
dGNoKGppdCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gMik7CiAg
ICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgIENI
RUNLKHBhcmFtcy5yZXBzWzFdLmlzR1BSKCkpOwpAQCAtMzI1Niw3ICszMjUzLDYgQEAgdm9pZCB0
ZXN0U2ltcGxlUGF0Y2hwb2ludFdpdGhPdXB1dENsb2JiZXJzR1BBcmdzKCkKIAogICAgIHBhdGNo
cG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29u
c3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93
TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAg
IENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFt
cy5yZXBzWzBdLmlzR1BSKCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMV0uaXNH
UFIoKSk7CkBAIC0zMjkxLDcgKzMyODcsNiBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0
aG91dE91cHV0Q2xvYmJlcnNGUEFyZ3MoKQogICAgIHBhdGNocG9pbnQtPmFwcGVuZChDb25zdHJh
aW5lZFZhbHVlKGNvbnN0MiwgVmFsdWVSZXA6OlNvbWVSZWdpc3RlcikpOwogICAgIHBhdGNocG9p
bnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENI
RUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAyKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5y
ZXBzWzBdLmlzRlBSKCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMV0uaXNGUFIo
KSk7CkBAIC0zMzI5LDcgKzMzMjQsNiBAQCB2b2lkIHRlc3RTaW1wbGVQYXRjaHBvaW50V2l0aE91
cHV0Q2xvYmJlcnNGUEFyZ3MoKQogCiAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAg
ICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJh
bXMmIHBhcmFtcykgewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdl
IGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHMuc2l6ZSgp
ID09IDMpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMF0uaXNGUFIoKSk7CiAgICAg
ICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1sxXS5pc0ZQUigpKTsKQEAgLTMzNTksNyArMzM1Myw2
IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRDYWxsQXJnKCkKICAgICBwYXRjaHBvaW50LT5hcHBlbmQo
Q29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJlcDo6c3RhY2tBcmd1bWVudCg4KSkpOwogICAg
IHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGpp
dCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAg
IEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAg
ICAgICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKICAgICAgICAgICAgIENIRUNL
KHBhcmFtcy5yZXBzWzBdLmlzR1BSKCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNb
MV0uaXNTdGFjaygpKTsKQEAgLTMzODcsNyArMzM4MCw2IEBAIHZvaWQgdGVzdFBhdGNocG9pbnRG
aXhlZFJlZ2lzdGVyKCkKICAgICBwYXRjaHBvaW50LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShh
cmcyLCBWYWx1ZVJlcChHUFJJbmZvOjpyZWdUMSkpKTsKICAgICBwYXRjaHBvaW50LT5zZXRHZW5l
cmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2Vu
ZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJl
Z2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMu
cmVwcy5zaXplKCkgPT0gMyk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1swXS5pc0dQ
UigpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzFdID09IFZhbHVlUmVwKEdQUklu
Zm86OnJlZ1QwKSk7CkBAIC0zNDE4LDcgKzM0MTAsNiBAQCB2b2lkIHRlc3RQYXRjaHBvaW50QW55
KCkKICAgICBwYXRjaHBvaW50LT5hcHBlbmQoQ29uc3RyYWluZWRWYWx1ZShhcmcyLCBWYWx1ZVJl
cDo6QW55KSk7CiAgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKEND
YWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykg
ewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRj
aChqaXQpOwogICAgICAgICAgICAgLy8gV2Ugc2hvdWxkbid0IGhhdmUgc3BpbGxlZCB0aGUgaW5w
dXRzLCBzbyB3ZSBhc3NlcnQgdGhhdCB0aGV5J3JlIGluIHJlZ2lzdGVycy4KICAgICAgICAgICAg
IENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFt
cy5yZXBzWzBdLmlzR1BSKCkpOwpAQCAtMzQ0NSw3ICszNDM2LDYgQEAgdm9pZCB0ZXN0UGF0Y2hw
b2ludEFueUltbSgpCiAgICAgcGF0Y2hwb2ludC0+YXBwZW5kKENvbnN0cmFpbmVkVmFsdWUoYXJn
MiwgVmFsdWVSZXA6OkFueSkpOwogICAgIHBhdGNocG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAg
ICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1z
JiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBh
bGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9
PSAzKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzBdLmlzR1BSKCkpOwogICAgICAg
ICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMV0uaXNHUFIoKSk7CkBAIC0zNDk2LDcgKzM0ODYsNiBA
QCB2b2lkIHRlc3RTaW1wbGVDaGVjaygpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2sgPSByb290LT5h
cHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2ssIE9yaWdpbigpLCBhcmcpOwogICAgIGNo
ZWNrLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0
IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgICAgICBBbGxvd01h
Y3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAgICBD
SEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gMSk7CiAKICAgICAgICAgICAgIC8vIFRoaXMgc2hv
dWxkIGFsd2F5cyB3b3JrIGJlY2F1c2UgYSBmdW5jdGlvbiB0aGlzIHNpbXBsZSBzaG91bGQgbmV2
ZXIgaGF2ZSBjYWxsZWUKQEAgLTM1MjgsNyArMzUxNyw2IEBAIHZvaWQgdGVzdENoZWNrTGVzc1Ro
YW4oKQogICAgICAgICAgICAgcm9vdC0+YXBwZW5kTmV3PENvbnN0MzJWYWx1ZT4ocHJvYywgT3Jp
Z2luKCksIDQyKSkpOwogICAgIGNoZWNrLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7
Ci0gICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNo
KGppdCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gMSk7CiAKICAg
ICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIGFsd2F5cyB3b3JrIGJlY2F1c2UgYSBmdW5jdGlvbiB0
aGlzIHNpbXBsZSBzaG91bGQgbmV2ZXIgaGF2ZSBjYWxsZWUKQEAgLTM1NzQsNyArMzU2Miw2IEBA
IHZvaWQgdGVzdENoZWNrTWVnYUNvbWJvKCkKICAgICAgICAgICAgIHJvb3QtPmFwcGVuZE5ldzxD
b25zdDMyVmFsdWU+KHByb2MsIE9yaWdpbigpLCA0MikpKTsKICAgICBjaGVjay0+c2V0R2VuZXJh
dG9yKAogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVy
YXRpb25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdp
c3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJl
cHMuc2l6ZSgpID09IDEpOwogCiAgICAgICAgICAgICAvLyBUaGlzIHNob3VsZCBhbHdheXMgd29y
ayBiZWNhdXNlIGEgZnVuY3Rpb24gdGhpcyBzaW1wbGUgc2hvdWxkIG5ldmVyIGhhdmUgY2FsbGVl
CkBAIC0zNjE0LDcgKzM2MDEsNiBAQCB2b2lkIHRlc3RDaGVja0FkZEltbSgpCiAgICAgY2hlY2tB
ZGQtPmFwcGVuZChhcmcyKTsKICAgICBjaGVja0FkZC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBb
Jl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBh
cmFtcykgewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93
U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHMuc2l6ZSgpID09IDQp
OwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAg
ICBDSEVDSyhwYXJhbXMucmVwc1szXS5pc0NvbnN0YW50KCkpOwpAQCAtMzY1MCw3ICszNjM2LDYg
QEAgdm9pZCB0ZXN0Q2hlY2tBZGRJbW1Db21tdXRlKCkKICAgICBjaGVja0FkZC0+YXBwZW5kKGFy
ZzIpOwogICAgIGNoZWNrQWRkLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxw
ZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAg
ICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7
CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gNCk7CiAgICAgICAgICAg
ICBDSEVDSyhwYXJhbXMucmVwc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFt
cy5yZXBzWzNdLmlzQ29uc3RhbnQoKSk7CkBAIC0zNjg2LDcgKzM2NzEsNiBAQCB2b2lkIHRlc3RD
aGVja0FkZEltbVNvbWVSZWdpc3RlcigpCiAgICAgY2hlY2tBZGQtPmFwcGVuZFNvbWVSZWdpc3Rl
cihhcmcyKTsKICAgICBjaGVja0FkZC0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewot
ICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChq
aXQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHMuc2l6ZSgpID09IDQpOwogICAgICAg
ICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBDSEVDSyhw
YXJhbXMucmVwc1szXS5pc0dQUigpKTsKQEAgLTM3MjMsNyArMzcwNyw2IEBAIHZvaWQgdGVzdENo
ZWNrQWRkKCkKICAgICBjaGVja0FkZC0+YXBwZW5kU29tZVJlZ2lzdGVyKGFyZzIpOwogICAgIGNo
ZWNrQWRkLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNv
bnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgICAgICBBbGxv
d01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAgICAgICAgICAg
ICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gNCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJh
bXMucmVwc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzNdLmlz
R1BSKCkpOwpAQCAtMzc1Niw3ICszNzM5LDYgQEAgdm9pZCB0ZXN0Q2hlY2tBZGQ2NCgpCiAgICAg
Y2hlY2tBZGQtPmFwcGVuZFNvbWVSZWdpc3RlcihhcmcyKTsKICAgICBjaGVja0FkZC0+c2V0R2Vu
ZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdl
bmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hS
ZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1z
LnJlcHMuc2l6ZSgpID09IDQpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbMl0uaXNH
UFIoKSk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1szXS5pc0dQUigpKTsKQEAgLTM4
MDUsNyArMzc4Nyw2IEBAIHZvaWQgdGVzdENoZWNrQWRkRm9sZEZhaWwoaW50IGEsIGludCBiKQog
ICAgIENoZWNrVmFsdWUqIGNoZWNrQWRkID0gcm9vdC0+YXBwZW5kTmV3PENoZWNrVmFsdWU+KHBy
b2MsIENoZWNrQWRkLCBPcmlnaW4oKSwgYXJnMSwgYXJnMik7CiAgICAgY2hlY2tBZGQtPnNldEdl
bmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJikgewotICAgICAgICAgICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3Rl
clVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAgICAgICAgICAgaml0Lm1vdmUoQ0NhbGxIZWxw
ZXJzOjpUcnVzdGVkSW1tMzIoNDIpLCBHUFJJbmZvOjpyZXR1cm5WYWx1ZUdQUik7CiAgICAgICAg
ICAgICBqaXQuZW1pdEZ1bmN0aW9uRXBpbG9ndWUoKTsKICAgICAgICAgICAgIGppdC5yZXQoKTsK
QEAgLTM4MzAsNyArMzgxMSw2IEBAIHZvaWQgdGVzdENoZWNrU3ViSW1tKCkKICAgICBjaGVja1N1
Yi0+YXBwZW5kKGFyZzIpOwogICAgIGNoZWNrU3ViLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsm
XSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFy
YW1zKSB7Ci0gICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dT
Y3JhdGNoKGppdCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gNCk7
CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1syXS5pc0dQUigpKTsKICAgICAgICAgICAg
IENIRUNLKHBhcmFtcy5yZXBzWzNdLmlzQ29uc3RhbnQoKSk7CkBAIC0zODY3LDcgKzM4NDcsNiBA
QCB2b2lkIHRlc3RDaGVja1N1YkJhZEltbSgpCiAgICAgY2hlY2tTdWItPmFwcGVuZChhcmcyKTsK
ICAgICBjaGVja1N1Yi0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxsSGVscGVycyYg
aml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmIHBhcmFtcykgewotICAgICAgICAg
ICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAg
ICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHMuc2l6ZSgpID09IDQpOwogICAgICAgICAgICAgQ0hF
Q0socGFyYW1zLnJlcHNbMl0uaXNHUFIoKSk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVw
c1szXS5pc0NvbnN0YW50KCkpOwpAQCAtMzkwNSw3ICszODg0LDYgQEAgdm9pZCB0ZXN0Q2hlY2tT
dWIoKQogICAgIGNoZWNrU3ViLT5hcHBlbmQoYXJnMik7CiAgICAgY2hlY2tTdWItPnNldEdlbmVy
YXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5l
cmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVn
aXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5y
ZXBzLnNpemUoKSA9PSA0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzJdLmlzR1BS
KCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbM10uaXNHUFIoKSk7CkBAIC0zOTQz
LDcgKzM5MjEsNiBAQCB2b2lkIHRlc3RDaGVja1N1YjY0KCkKICAgICBjaGVja1N1Yi0+YXBwZW5k
KGFyZzIpOwogICAgIGNoZWNrU3ViLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxI
ZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0g
ICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGpp
dCk7CiAgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gNCk7CiAgICAgICAg
ICAgICBDSEVDSyhwYXJhbXMucmVwc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIENIRUNLKHBh
cmFtcy5yZXBzWzNdLmlzR1BSKCkpOwpAQCAtMzk5Miw3ICszOTY5LDYgQEAgdm9pZCB0ZXN0Q2hl
Y2tTdWJGb2xkRmFpbChpbnQgYSwgaW50IGIpCiAgICAgQ2hlY2tWYWx1ZSogY2hlY2tTdWIgPSBy
b290LT5hcHBlbmROZXc8Q2hlY2tWYWx1ZT4ocHJvYywgQ2hlY2tTdWIsIE9yaWdpbigpLCBhcmcx
LCBhcmcyKTsKICAgICBjaGVja1N1Yi0+c2V0R2VuZXJhdG9yKAogICAgICAgICBbJl0gKENDYWxs
SGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7Ci0gICAgICAg
ICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAg
ICAgICAgICAgICBqaXQubW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMig0MiksIEdQUklu
Zm86OnJldHVyblZhbHVlR1BSKTsKICAgICAgICAgICAgIGppdC5lbWl0RnVuY3Rpb25FcGlsb2d1
ZSgpOwogICAgICAgICAgICAgaml0LnJldCgpOwpAQCAtNDAxNiw3ICszOTkyLDYgQEAgdm9pZCB0
ZXN0Q2hlY2tOZWcoKQogICAgIGNoZWNrTmVnLT5hcHBlbmQoYXJnMik7CiAgICAgY2hlY2tOZWct
PnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3Rh
Y2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFjcm9T
Y3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENIRUNL
KHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBz
WzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQzMlRvRG91YmxlKHBhcmFt
cy5yZXBzWzJdLmdwcigpLCBGUFJJbmZvOjpmcFJlZ1QxKTsKQEAgLTQwNDYsNyArNDAyMSw2IEBA
IHZvaWQgdGVzdENoZWNrTmVnNjQoKQogICAgIGNoZWNrTmVnLT5hcHBlbmQoYXJnMik7CiAgICAg
Y2hlY2tOZWctPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwg
Y29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFs
bG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAg
ICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKICAgICAgICAgICAgIENIRUNLKHBh
cmFtcy5yZXBzWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgaml0LmNvbnZlcnRJbnQ2NFRvRG91
YmxlKHBhcmFtcy5yZXBzWzJdLmdwcigpLCBGUFJJbmZvOjpmcFJlZ1QxKTsKQEAgLTQwODEsNyAr
NDA1NSw2IEBAIHZvaWQgdGVzdENoZWNrTXVsKCkKICAgICBjaGVja011bC0+YXBwZW5kKGFyZzIp
OwogICAgIGNoZWNrTXVsLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJz
JiBqaXQsIGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAg
ICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGppdCk7CiAg
ICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwcy5zaXplKCkgPT0gNCk7CiAgICAgICAgICAgICBD
SEVDSyhwYXJhbXMucmVwc1syXS5pc0dQUigpKTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5y
ZXBzWzNdLmlzR1BSKCkpOwpAQCAtNDEyMiw3ICs0MDk1LDYgQEAgdm9pZCB0ZXN0Q2hlY2tNdWxN
ZW1vcnkoKQogICAgIGNoZWNrTXVsLT5hcHBlbmQoYXJnMik7CiAgICAgY2hlY2tNdWwtPnNldEdl
bmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBH
ZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNo
UmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFt
cy5yZXBzLnNpemUoKSA9PSA0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzJdLmlz
R1BSKCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbM10uaXNHUFIoKSk7CkBAIC00
MTY4LDcgKzQxNDAsNiBAQCB2b2lkIHRlc3RDaGVja011bDIoKQogICAgIGNoZWNrTXVsLT5hcHBl
bmQoYXJnMik7CiAgICAgY2hlY2tNdWwtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2Fs
bEhlbHBlcnMmIGppdCwgY29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsK
LSAgICAgICAgICAgIEFsbG93TWFjcm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2go
aml0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSA0KTsKICAgICAg
ICAgICAgIENIRUNLKHBhcmFtcy5yZXBzWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgQ0hFQ0so
cGFyYW1zLnJlcHNbM10uaXNDb25zdGFudCgpKTsKQEAgLTQyMDIsNyArNDE3Myw2IEBAIHZvaWQg
dGVzdENoZWNrTXVsNjQoKQogICAgIGNoZWNrTXVsLT5hcHBlbmQoYXJnMik7CiAgICAgY2hlY2tN
dWwtPnNldEdlbmVyYXRvcigKICAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwgY29uc3Qg
U3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMpIHsKLSAgICAgICAgICAgIEFsbG93TWFj
cm9TY3JhdGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIENI
RUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSA0KTsKICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5y
ZXBzWzJdLmlzR1BSKCkpOwogICAgICAgICAgICAgQ0hFQ0socGFyYW1zLnJlcHNbM10uaXNHUFIo
KSk7CkBAIC00MjUxLDcgKzQyMjEsNiBAQCB2b2lkIHRlc3RDaGVja011bEZvbGRGYWlsKGludCBh
LCBpbnQgYikKICAgICBDaGVja1ZhbHVlKiBjaGVja011bCA9IHJvb3QtPmFwcGVuZE5ldzxDaGVj
a1ZhbHVlPihwcm9jLCBDaGVja011bCwgT3JpZ2luKCksIGFyZzEsIGFyZzIpOwogICAgIGNoZWNr
TXVsLT5zZXRHZW5lcmF0b3IoCiAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQsIGNvbnN0
IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYpIHsKLSAgICAgICAgICAgIEFsbG93TWFjcm9TY3Jh
dGNoUmVnaXN0ZXJVc2FnZSBhbGxvd1NjcmF0Y2goaml0KTsKICAgICAgICAgICAgIGppdC5tb3Zl
KENDYWxsSGVscGVyczo6VHJ1c3RlZEltbTMyKDQyKSwgR1BSSW5mbzo6cmV0dXJuVmFsdWVHUFIp
OwogICAgICAgICAgICAgaml0LmVtaXRGdW5jdGlvbkVwaWxvZ3VlKCk7CiAgICAgICAgICAgICBq
aXQucmV0KCk7CkBAIC00MzA1LDcgKzQyNzQsNiBAQCB2b2lkIGdlbmVyaWNUZXN0Q29tcGFyZSgK
ICAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gdGhlbkNhc2UtPmFwcGVuZE5l
dzxQYXRjaHBvaW50VmFsdWU+KHByb2MsIEludDMyLCBPcmlnaW4oKSk7CiAgICAgICAgIHBhdGNo
cG9pbnQtPnNldEdlbmVyYXRvcigKICAgICAgICAgICAgIFsmXSAoQ0NhbGxIZWxwZXJzJiBqaXQs
IGNvbnN0IFN0YWNrbWFwR2VuZXJhdGlvblBhcmFtcyYgcGFyYW1zKSB7Ci0gICAgICAgICAgICAg
ICAgQWxsb3dNYWNyb1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOwogICAg
ICAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAxKTsKICAgICAgICAgICAg
ICAgICBDSEVDSyhwYXJhbXMucmVwc1swXS5pc0dQUigpKTsKICAgICAgICAgICAgICAgICBqaXQu
bW92ZShDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigxKSwgcGFyYW1zLnJlcHNbMF0uZ3ByKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21tb24uaCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ29tbW9uLmgKaW5kZXggMWZjN2FkYTQ4NGJkOGY2
NmEwYmVhM2IyZWFlYTE3NDc1ODY3OTI0Zi4uNmIxNzYzODVlMzdjM2M0MDUxMTRlY2VlZmVlYmVm
YTM4MTFkY2VmMyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdDb21t
b24uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0NvbW1vbi5oCkBAIC0zOCw3
ICszOCw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKIC8vIFdlIGFyZSBpbiB0
aGUgbWlkZGxlIG9mIGFuIGV4cGVyaW1lbnRhbCB0cmFuc2l0aW9uIGZyb20gTExWTSB0byBCMyBh
cyB0aGUgYmFja2VuZCBmb3IgdGhlIEZUTC4gV2UgZG9uJ3QKIC8vIHlldCBrbm93IGhvdyBpdCB3
aWxsIHR1cm4gb3V0LiBGb3Igbm93LCB0aGlzIGZsYWcgd2lsbCBjb250cm9sIHdoZXRoZXIgRlRM
IHVzZXMgQjMuIFJlbWVtYmVyIHRvIHNldCB0aGlzCiAvLyB0byAwIGJlZm9yZSBjb21taXR0aW5n
IQotI2RlZmluZSBGVExfVVNFU19CMyAxCisjZGVmaW5lIEZUTF9VU0VTX0IzIDAKIAogc3RydWN0
IE5vZGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvR1BSSW5mby5o
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKaW5kZXggNTk3N2ViOGNhZjky
MDJlMzcwODBmNGQyODY5OTE1YmIxMzlmYTIwMi4uZGYzNzE1YzRkZmQ2OGE5NTIyNjE4M2ExNmIy
OWJiZjcwOTIwY2QwYiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJ
bmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9HUFJJbmZvLmgKQEAgLTM5OSw2
ICszOTksNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyBjYWxsRnJhbWVSZWdp
c3RlciA9IFg4NlJlZ2lzdGVyczo6ZWJwOwogICAgIHN0YXRpYyBjb25zdCBHUFJSZWcgdGFnVHlw
ZU51bWJlclJlZ2lzdGVyID0gWDg2UmVnaXN0ZXJzOjpyMTQ7CiAgICAgc3RhdGljIGNvbnN0IEdQ
UlJlZyB0YWdNYXNrUmVnaXN0ZXIgPSBYODZSZWdpc3RlcnM6OnIxNTsKKyAgICBzdGF0aWMgY29u
c3QgR1BSUmVnIHNjcmF0Y2hSZWdpc3RlciA9IE1hY3JvQXNzZW1ibGVyOjpzY3JhdGNoUmVnaXN0
ZXI7CiAKICAgICAvLyBUZW1wb3JhcnkgcmVnaXN0ZXJzLgogICAgIHN0YXRpYyBjb25zdCBHUFJS
ZWcgcmVnVDAgPSBYODZSZWdpc3RlcnM6OmVheDsKQEAgLTQ1Myw3ICs0NTQsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIGNvbnN0IEdQUlJlZyByZXR1cm5WYWx1ZUdQUjIgPSBYODZSZWdpc3RlcnM6
OmVkeDsgLy8gcmVnVDEgb3IgcmVnVDIKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNl
cnZlZE5vblJldHVybkdQUiA9IFg4NlJlZ2lzdGVyczo6cjEwOyAvLyByZWdUNSAocmVnVDQgb24g
V2luZG93cykKICAgICBzdGF0aWMgY29uc3QgR1BSUmVnIG5vblByZXNlcnZlZE5vbkFyZ3VtZW50
R1BSID0gWDg2UmVnaXN0ZXJzOjpyMTA7IC8vIHJlZ1Q1IChyZWdUNCBvbiBXaW5kb3dzKQotICAg
IHN0YXRpYyBjb25zdCBHUFJSZWcgcGF0Y2hwb2ludFNjcmF0Y2hSZWdpc3RlciA9IE1hY3JvQXNz
ZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3RlcjsKKyAgICBzdGF0aWMgY29uc3QgR1BSUmVnIHBhdGNo
cG9pbnRTY3JhdGNoUmVnaXN0ZXIgPSBNYWNyb0Fzc2VtYmxlcjo6c2NyYXRjaFJlZ2lzdGVyOwog
CiAgICAgc3RhdGljIEdQUlJlZyB0b1JlZ2lzdGVyKHVuc2lnbmVkIGluZGV4KQogICAgIHsKQEAg
LTUwNSw3ICs1MDYsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGNvbnN0IHN0ZDo6YXJyYXk8R1BS
UmVnLCAzPiYgcmVzZXJ2ZWRSZWdpc3RlcnMoKQogICAgIHsKICAgICAgICAgc3RhdGljIGNvbnN0
IHN0ZDo6YXJyYXk8R1BSUmVnLCAzPiByZXNlcnZlZFJlZ2lzdGVycyB7IHsKLSAgICAgICAgICAg
IE1hY3JvQXNzZW1ibGVyOjpzX3NjcmF0Y2hSZWdpc3RlciwKKyAgICAgICAgICAgIHNjcmF0Y2hS
ZWdpc3RlciwKICAgICAgICAgICAgIHRhZ1R5cGVOdW1iZXJSZWdpc3RlciwKICAgICAgICAgICAg
IHRhZ01hc2tSZWdpc3RlciwKICAgICAgICAgfSB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>