<?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>46820</bug_id>
          
          <creation_ts>2010-09-29 10:38:12 -0700</creation_ts>
          <short_desc>REGRESSION(r68657): reason &quot;Breaks win debug build&quot; (Requested by podivilov on #webkit).</short_desc>
          <delta_ts>2010-09-29 10:46:33 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>46614</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>pfeldman</cc>
    
    <cc>podivilov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>286963</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-29 10:38:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68657 broke the build:
reason &quot;Breaks win debug build&quot; (Requested by podivilov on #webkit).

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

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286964</commentid>
    <comment_count>1</comment_count>
      <attachid>69212</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-29 10:38:27 -0700</bug_when>
    <thetext>Created attachment 69212
ROLLOUT of r68657

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 --ignore-builders

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286977</commentid>
    <comment_count>2</comment_count>
      <attachid>69212</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-29 10:46:29 -0700</bug_when>
    <thetext>Comment on attachment 69212
ROLLOUT of r68657

Clearing flags on attachment: 69212

Committed r68661: &lt;http://trac.webkit.org/changeset/68661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>286979</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-29 10:46:33 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>69212</attachid>
            <date>2010-09-29 10:38:27 -0700</date>
            <delta_ts>2010-09-29 10:46:29 -0700</delta_ts>
            <desc>ROLLOUT of r68657</desc>
            <filename>bug-46820-20100929173825.patch</filename>
            <type>text/plain</type>
            <size>42017</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9XZWJDb3JlL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDZlMzJkZGYyNGYzNTQyZWU0ZGVlYTM0MDE3NzVhM2Y1MDliYTU3ZTguLjIxMDI0
NGUxYTJjMTU1NTU3NGYyMmQ4ZDFkNDFmNzMyNGU5YzM0ZjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q01ha2VMaXN0cy50eHQKKysrIGIvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTEwNiw3ICsx
MTA2LDYgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JEZWJ1
Z2dlckFnZW50LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2Fs
LmNwcAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCi0gICAgaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9y
UHJvZmlsZXJBZ2VudC5jcHAKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yUmVzb3VyY2UuY3BwCiAg
ICAgaW5zcGVjdG9yL0luc3BlY3RvclZhbHVlcy5jcHAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDYwNGJhZDQ4ZThiNDVlMWE0MzdjYWNi
MmZlMjA2N2I5N2JmNWVhMC4uNDFiNWJiNWM3ZDY3YzM0NjlmOTBmZGRiMmExZDQyNjg1MGNhM2Jh
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw2MiBAQAorMjAxMC0wOS0yOSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjY4NjU3
LgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC82ODY1NworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MjAKKworICAgICAg
ICByZWFzb24gIkJyZWFrcyB3aW4gZGVidWcgYnVpbGQiIChSZXF1ZXN0ZWQgYnkgcG9kaXZpbG92
IG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogR05VbWFrZWZpbGUuYW06CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAq
IFdlYkNvcmUucHJvOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
ajoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQpOgorICAgICAgICAqIGJpbmRp
bmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlY4WE1MSHR0cFJlcXVlc3Q6OnNlbmRDYWxsYmFjayk6CisgICAgICAgICogZG9tL0NoYXJh
Y3RlckRhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hhcmFjdGVyRGF0YTo6ZGlzcGF0Y2hN
b2RpZmllZEV2ZW50KToKKyAgICAgICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDb250YWluZXJOb2RlOjppbnNlcnRCZWZvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGFpbmVyTm9kZTo6cGFyc2VySW5zZXJ0QmVmb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWlu
ZXJOb2RlOjphcHBlbmRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpw
YXJzZXJBZGRDaGlsZCk6CisgICAgICAgIChXZWJDb3JlOjpub3RpZnlDaGlsZEluc2VydGVkKToK
KyAgICAgICAgKFdlYkNvcmU6OmRpc3BhdGNoQ2hpbGRSZW1vdmFsRXZlbnRzKToKKyAgICAgICAg
KiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRBdHRyaWJ1
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVtb3ZlQXR0cmlidXRlKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJbnNwZWN0b3JDb250cm9sbGVyOjpJbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6On5JbnNwZWN0b3JDb250cm9sbGVyKToKKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaXNjb25uZWN0RnJvbnRlbmQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGVJ
bXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZEluc2VydERP
TU5vZGVJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxS
ZW1vdmVET01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRSZW1vdmVET01Ob2RlSW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250
cm9sbGVyOjp3aWxsTW9kaWZ5RE9NQXR0ckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yQ29udHJvbGxlcjo6ZGlkTW9kaWZ5RE9NQXR0ckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkSW1wbCk6CisgICAgICAg
IChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjppbnN0cnVtZW50V2lsbFNlbmRYTUxIdHRw
UmVxdWVzdEltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsSW5zZXJ0RE9NTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRJbnNlcnRET01O
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxSZW1vdmVE
T01Ob2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxNb2Rp
ZnlET01BdHRyKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE1v
ZGlmeURPTUF0dHIpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hh
cmFjdGVyRGF0YU1vZGlmaWVkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xs
ZXI6Omluc3RydW1lbnRXaWxsU2VuZFhNTEh0dHBSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6
Okluc3BlY3RvckNvbnRyb2xsZXI6Omluc3BlY3RvckNvbnRyb2xsZXJGb3JTY3JpcHRFeGVjdXRp
b25Db250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRyb2xsZXI6Omluc3Bl
Y3RvckNvbnRyb2xsZXJGb3JOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckNvbnRy
b2xsZXI6Omluc3BlY3RvckNvbnRyb2xsZXJGb3JEb2N1bWVudCk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHA6IFJlbW92ZWQuCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oOiBSZW1vdmVkLgorICAgICAgICAqIHdv
cmtlcnMvU2hhcmVkV29ya2VyLmNwcDoKKwogMjAxMC0wOS0yOSAgWGlhb21laSBKaSAgPHhqaUBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQgTGV2aW4uCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRl
eCBjNDkzYzIzZjg3ZWQxZmMxNDdmZGNlMGQ4Yjc0OTQwNTIzMTdlZjVmLi5jODBlOGVkNmNkN2Zk
MDY3MjMxNTVkN2NhZmE0NjY4NmIwMmM4YWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCisrKyBiL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0KQEAgLTE3OTksOCArMTc5OSw2IEBA
IHdlYmNvcmVfc291cmNlcyArPSBcCiAJV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaCBcCi0J
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBcCi0JV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggXAogCVdlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuY3BwIFwKIAlXZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQcm9maWxlckFnZW50LmggXAogCVdlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJlc291
cmNlLmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2Vi
Q29yZS5neXBpCmluZGV4IGRkMDE4MWEyMmMyMGNiOTViMmE2OWI3MDI4OWFhNTAxZDliNWY4MmYu
LjhlNmFmNmIyNzQ4ZmRhMmZkZDIyZTIxNGZiZGM3ZTE2YTA3N2IxMTYgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xODk3LDgg
KzE4OTcsNiBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVu
dC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCcs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oJywKLSAgICAg
ICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCcsCi0gICAgICAg
ICAgICAnaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oJywKICAgICAgICAgICAg
ICdpbnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAnLAogICAgICAgICAgICAgJ2lu
c3BlY3Rvci9JbnNwZWN0b3JQcm9maWxlckFnZW50LmgnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9JbnNwZWN0b3JSZXNvdXJjZS5jcHAnLApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMmJiYzE2NTJhYWQ1YzgxMWFkZTMxMzcwMTE0
NWQ1NTQ5NDM4OTczZi4uZTU5NWYzYmY4MWY4ZWJjNjA4MzUyMGRkNTE0YzNiYzE1MDUxNWEyOCAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnBybworKysgYi9XZWJDb3JlL1dlYkNvcmUucHJv
CkBAIC05OTcsNyArOTk3LDYgQEAgU09VUkNFUyArPSBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTVN0b3JhZ2VSZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmNwcCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAgXAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIFwKICAgICBp
bnNwZWN0b3IvSW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNw
ZWN0b3JSZXNvdXJjZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdG9yYWdlQWdlbnQu
Y3BwIFwKQEAgLTE4NzIsNyArMTg3MSw2IEBAIEhFQURFUlMgKz0gXAogICAgIGluc3BlY3Rvci9J
bnNwZWN0b3JGcm9udGVuZENsaWVudC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5oIFwKICAgICBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmgg
XAotICAgIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBcCiAgICAgaW5zcGVj
dG9yL0luc3BlY3RvclByb2ZpbGVyQWdlbnQuaCBcCiAgICAgaW5zcGVjdG9yL0luc3BlY3RvclJl
c291cmNlLmggXAogICAgIGluc3BlY3Rvci9JbnNwZWN0b3JTdG9yYWdlQWdlbnQuaCBcCmRpZmYg
LS1naXQgYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDQ5ZmJmYjJmMTM2ZjIw
YzUxNzU2YjZjMTc1ODZkN2JkZTQ1NjdkNzUuLmM1MzYxNmVlNzgxMjc0NDU4NzhiMjg0ODYwMmRm
NGIzMjIyOGQxOGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CkBAIC02MzAsOCArNjMwLDYgQEAKIAkJMUNGNkJFMTUwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQ0Y2QkUxMzBFOUJCNDY3MDAyNUUxQ0QgLyogT2JqQ05vZGVGaWx0ZXJDb25k
aXRpb24uaCAqLzsgfTsKIAkJMUNGQUUzMjMwQTZENkEzRjAwMzI1OTNEIC8qIGxpYm9iamMuZHls
aWIgaW4gRnJhbWV3b3JrcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQ0ZB
RTMyMjBBNkQ2QTNGMDAzMjU5M0QgLyogbGlib2JqYy5keWxpYiAqLzsgfTsKIAkJMjAwQjE5MDkx
MUMyNzdEOTAwRENDRDNBIC8qIFNjcmlwdEJyZWFrcG9pbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjAwQjE5MDgxMUMyNzdEOTAwRENDRDNBIC8q
IFNjcmlwdEJyZWFrcG9pbnQuY3BwICovOyB9OwotCQkyMEQ2MjkyNjEyNTM2OTBCMDAwODE1NDMg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDIwRDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24uY3BwICovOyB9OwotCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMg
LyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyMEQ2MjkyNTEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmggKi87IH07CiAJCTIyOEMyODQ1MTBEODI1MDAwMDlEMEQwRSAvKiBT
Y3JpcHRXcmFwcGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDIyOEMyODQ0MTBEODI1MDAwMDlEMEQwRSAvKiBTY3JpcHRXcmFwcGFibGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyNEY1NEVBQzEw
MUZFOTE0MDAwQUU3NDEgLyogQXBwbGljYXRpb25DYWNoZUhvc3QuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMjRGNTRFQUExMDFGRTkxNDAwMEFFNzQx
IC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCAqLzsgfTsKIAkJMjRGNTRFQUQxMDFGRTkxNDAw
MEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyNEY1NEVBQjEwMUZFOTE0MDAwQUU3NDEgLyogQXBwbGlj
YXRpb25DYWNoZUhvc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwpA
QCAtNjU2NCw4ICs2NTYyLDYgQEAKIAkJMUNGNkJFMTMwRTlCQjQ2NzAwMjVFMUNEIC8qIE9iakNO
b2RlRmlsdGVyQ29uZGl0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9i
akNOb2RlRmlsdGVyQ29uZGl0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFD
RkFFMzIyMEE2RDZBM0YwMDMyNTkzRCAvKiBsaWJvYmpjLmR5bGliICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5keWxpYiI7
IG5hbWUgPSBsaWJvYmpjLmR5bGliOyBwYXRoID0gL3Vzci9saWIvbGlib2JqYy5keWxpYjsgc291
cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJMjAwQjE5MDgxMUMyNzdEOTAwRENDRDNBIC8q
IFNjcmlwdEJyZWFrcG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gU2NyaXB0QnJlYWtwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTIw
RDYyOTI0MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMjBENjI5MjUxMjUzNjkwQjAw
MDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMjI4QzI4NDQxMEQ4MjUwMDAwOUQwRDBFIC8qIFNjcmlwdFdyYXBwYWJs
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTY3JpcHRXcmFwcGFibGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjQ0MkJCRjgxMTk0QzlEMzAwRDQ5NDY5IC8q
IEhhc2hDaGFuZ2VFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIYXNo
Q2hhbmdlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMjRGNTRFQUExMDFG
RTkxNDAwMEFFNzQxIC8qIEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFwcGxpY2F0aW9uQ2FjaGVIb3N0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEyMDA5LDggKzEyMDA1LDYgQEAKIAkJCQk3QTBFNzcwQjEw
QzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCAqLywKIAkJCQk3QTBF
NzcwQzEwQzAwQTg4MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmggKi8sCiAJCQkJ
N0EwRTc3MEQxMEMwMEE4ODAwQTAyNzZFIC8qIEluc3BlY3RvckZyb250ZW5kSG9zdC5pZGwgKi8s
Ci0JCQkJMjBENjI5MjQxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAgKi8sCi0JCQkJMjBENjI5MjUxMjUzNjkwQjAwMDgxNTQzIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5oICovLAogCQkJCTlGMEQ2QjJDMTIxQkZFQkEwMDZDMDI4OCAvKiBJbnNwZWN0
b3JQcm9maWxlckFnZW50LmNwcCAqLywKIAkJCQk5RjBENkIyRDEyMUJGRUJBMDA2QzAyODggLyog
SW5zcGVjdG9yUHJvZmlsZXJBZ2VudC5oICovLAogCQkJCTQxRjA2MjAwMEY1RjBCNjYwMEEwN0VB
QyAvKiBJbnNwZWN0b3JSZXNvdXJjZS5jcHAgKi8sCkBAIC0yMDgwNCw3ICsyMDc5OCw2IEBACiAJ
CQkJOTNGMTk5RUQwODI0NUU1OTAwMUU5QUJDIC8qIFhTTFRQcm9jZXNzb3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxQkU1MTJFMENGNkM1MTIwMDJFQTk1OSAvKiBYU0xUVW5pY29kZVNvcnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTk3REQ0RDg3MEZERjRENkUwMEVDRjlBNCAvKiBYU1NBdWRpdG9y
LmggaW4gSGVhZGVycyAqLywKLQkJCQkyMEQ2MjkyNzEyNTM2OTBCMDAwODE1NDMgLyogSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9y
RGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIzMzE5LDcgKzIzMzEyLDYg
QEAKIAkJCQk5M0YxOUIwNTA4MjQ1RTU5MDAxRTlBQkMgLyogWFNMVFByb2Nlc3NvckxpYnhzbHQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTFCRTUxMkQwQ0Y2QzUxMjAwMkVBOTU5IC8qIFhTTFRV
bmljb2RlU29ydC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5N0RENEQ4NjBGREY0RDZFMDBFQ0Y5
QTQgLyogWFNTQXVkaXRvci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQkyMEQ2MjkyNjEyNTM2OTBC
MDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9Owpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKaW5kZXgg
YzQ3YjlmMzZlMjM1NTY0MjBiYTIxZTUxNGM2NmFlZTZlM2FiOTRhYi4uMmRhMzc3MWNmNGM5MzU1
MzI0OGRhMjE2YzcwMzJkMGRmNmQyNmFlMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0zNyw3ICszNyw2IEBACiAjaW5jbHVkZSAiRnJh
bWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5o
IgotI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkpTQmxv
Yi5oIgogI2luY2x1ZGUgIkpTRE9NRm9ybURhdGEuaCIKICNpbmNsdWRlICJKU0RPTVdpbmRvd0N1
c3RvbS5oIgpAQCAtOTQsOCArOTMsNiBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6Om9wZW4o
RXhlY1N0YXRlKiBleGVjKQogCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OnNlbmQoRXhlY1N0
YXRlKiBleGVjKQogewotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudFdp
bGxTZW5kWE1MSHR0cFJlcXVlc3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIGlt
cGwoKS0+dXJsKCkpOwotCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKCFleGVj
LT5hcmd1bWVudENvdW50KCkpCiAgICAgICAgIGltcGwoKS0+c2VuZChlYyk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOFhNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmlu
ZGV4IDFhZGQyOTI3OGM1MjljZjA4OThjZGUzM2U3OWQyMDk0ZDk2NmZhOWYuLjIzNTVkMmE1N2Nh
OTliOWY1ODBhZjk0ZTRjYzI0MzAzOTM1OWUyYTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4WE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCkBAIC0zMiw3ICszMiw3
IEBACiAjaW5jbHVkZSAiVjhYTUxIdHRwUmVxdWVzdC5oIgogCiAjaW5jbHVkZSAiRnJhbWUuaCIK
LSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0
b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCiAjaW5jbHVkZSAiVjhCbG9i
LmgiCiAjaW5jbHVkZSAiVjhET01Gb3JtRGF0YS5oIgpAQCAtMTE0LDcgKzExNCw3IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiBWOFhNTEh0dHBSZXF1ZXN0OjpzZW5kQ2FsbGJhY2soY29uc3Qgdjg6
OkFyZ3VtZW50cyYgYXJncykKICAgICBJTkNfU1RBVFMoIkRPTS5YTUxIdHRwUmVxdWVzdC5zZW5k
KCkiKTsKICAgICBYTUxIdHRwUmVxdWVzdCogeG1sSHR0cFJlcXVlc3QgPSBWOFhNTEh0dHBSZXF1
ZXN0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRh
dGlvbjo6aW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoeG1sSHR0cFJlcXVlc3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgeG1sSHR0cFJlcXVlc3QtPnVybCgpKTsKKyAgICBJbnNw
ZWN0b3JDb250cm9sbGVyOjppbnN0cnVtZW50V2lsbFNlbmRYTUxIdHRwUmVxdWVzdCh4bWxIdHRw
UmVxdWVzdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB4bWxIdHRwUmVxdWVzdC0+dXJsKCkp
OwogCiAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgaWYgKGFyZ3MuTGVuZ3RoKCkgPCAx
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vQ2hhcmFjdGVyRGF0YS5jcHAgYi9XZWJDb3JlL2Rv
bS9DaGFyYWN0ZXJEYXRhLmNwcAppbmRleCAwY2IyODQ3MmJkMjJmMWJhMDZiZDE4YmNkNjU4NzJi
NWYzMzY4MjE1Li5iYzllYzU2M2U1NGUyODE4ZTZjMjM3ZjAwNjE5MmUwOWEyMTI3OTJlIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2RvbS9DaGFyYWN0ZXJEYXRhLmNwcAorKysgYi9XZWJDb3JlL2RvbS9D
aGFyYWN0ZXJEYXRhLmNwcApAQCAtMjQsNyArMjQsNyBAQAogCiAjaW5jbHVkZSAiRXZlbnROYW1l
cy5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb24uaCIKKyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVk
ZSAiTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRleHQuaCIKIApAQCAtMTk5LDcg
KzE5OSw3IEBAIHZvaWQgQ2hhcmFjdGVyRGF0YTo6ZGlzcGF0Y2hNb2RpZmllZEV2ZW50KFN0cmlu
Z0ltcGwqIHByZXZWYWx1ZSkKICAgICAgICAgZGlzcGF0Y2hFdmVudChNdXRhdGlvbkV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLkRPTUNoYXJhY3RlckRhdGFNb2RpZmllZEV2ZW50LCB0cnVlLCAw
LCBwcmV2VmFsdWUsIG1fZGF0YSkpOwogICAgIGRpc3BhdGNoU3VidHJlZU1vZGlmaWVkRXZlbnQo
KTsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
Y2hhcmFjdGVyRGF0YU1vZGlmaWVkKGRvY3VtZW50KCksIHRoaXMpOworICAgIEluc3BlY3RvckNv
bnRyb2xsZXI6OmNoYXJhY3RlckRhdGFNb2RpZmllZCh0aGlzKTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmNwcCBiL1dlYkNvcmUvZG9tL0NvbnRh
aW5lck5vZGUuY3BwCmluZGV4IDg5ZWE3YjU4ODhjZmRlYTIzY2NhYmI4NmU2OTczNDExODM1ZTA4
ODMuLmUxOGY2ZmUwNmYyOWE1YTcyMzg4YTFlMTRkZmQxMWIyMjQ3YzBhYWUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCkBAIC0zMyw3ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbmxpbmVUZXh0Qm94LmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCisjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIk11dGF0aW9uRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyQm94LmgiCkBAIC0xNTUsNyArMTU1LDcgQEAgYm9vbCBDb250YWluZXJOb2RlOjpp
bnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogcmVmQ2hpbGQsIEV4
Y2UKICAgICAgICAgICAgIGJyZWFrOwogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKLSAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgpLCBj
aGlsZCwgdGhpcyk7CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxJbnNlcnRET01O
b2RlKGNoaWxkLCB0aGlzKTsKICNlbmRpZgogCiAgICAgICAgIGluc2VydEJlZm9yZUNvbW1vbihu
ZXh0LmdldCgpLCBjaGlsZCk7CkBAIC0yMjYsNyArMjI2LDcgQEAgdm9pZCBDb250YWluZXJOb2Rl
OjpwYXJzZXJJbnNlcnRCZWZvcmUoUGFzc1JlZlB0cjxOb2RlPiBuZXdDaGlsZCwgTm9kZSogbmV4
dENoaWwKICAgICAgICAgTm9kZSogY2hpbGQgPSBpdC0+Z2V0KCk7CiAKICNpZiBFTkFCTEUoSU5T
UEVDVE9SKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01O
b2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKKyAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxl
cjo6d2lsbEluc2VydERPTU5vZGUoY2hpbGQsIHRoaXMpOwogI2VuZGlmCiAKICAgICAgICAgaW5z
ZXJ0QmVmb3JlQ29tbW9uKG5leHQuZ2V0KCksIGNoaWxkKTsKQEAgLTMwMyw3ICszMDMsNyBAQCBi
b29sIENvbnRhaW5lck5vZGU6OnJlcGxhY2VDaGlsZChQYXNzUmVmUHRyPE5vZGU+IG5ld0NoaWxk
LCBOb2RlKiBvbGRDaGlsZCwgRXhjZQogICAgICAgICBBU1NFUlQoIWNoaWxkLT5wcmV2aW91c1Np
YmxpbmcoKSk7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLmdldCgpLCB0
aGlzKTsKKyAgICAgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGUoY2hp
bGQuZ2V0KCksIHRoaXMpOwogI2VuZGlmCiAKICAgICAgICAgLy8gQWRkIGNoaWxkIGFmdGVyICJw
cmV2Ii4KQEAgLTU4NCw3ICs1ODQsNyBAQCBib29sIENvbnRhaW5lck5vZGU6OmFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQsIEV4Y2VwdGlvbkNvZGUmIGVjLCBibwogICAgICAg
ICB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb246OndpbGxJbnNlcnRET01Ob2RlKGRvY3VtZW50KCksIGNoaWxkLCB0aGlzKTsKKyAgICAg
ICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGUoY2hpbGQsIHRoaXMpOwog
I2VuZGlmCiAKICAgICAgICAgLy8gQXBwZW5kIGNoaWxkIHRvIHRoZSBlbmQgb2YgdGhlIGxpc3QK
QEAgLTYyNiw3ICs2MjYsNyBAQCB2b2lkIENvbnRhaW5lck5vZGU6OnBhcnNlckFkZENoaWxkKFBh
c3NSZWZQdHI8Tm9kZT4gbmV3Q2hpbGQpCiAgICAgQVNTRVJUKCFuZXdDaGlsZC0+cGFyZW50KCkp
OyAvLyBVc2UgYXBwZW5kQ2hpbGQgaWYgeW91IG5lZWQgdG8gaGFuZGxlIHJlcGFyZW50aW5nIChh
bmQgd2FudCBET00gbXV0YXRpb24gZXZlbnRzKS4KIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0g
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsSW5zZXJ0RE9NTm9kZShkb2N1bWVudCgp
LCBuZXdDaGlsZC5nZXQoKSwgdGhpcyk7CisgICAgSW5zcGVjdG9yQ29udHJvbGxlcjo6d2lsbElu
c2VydERPTU5vZGUobmV3Q2hpbGQuZ2V0KCksIHRoaXMpOwogI2VuZGlmCiAKICAgICBmb3JiaWRF
dmVudERpc3BhdGNoKCk7CkBAIC0xMDAxLDcgKzEwMDEsNyBAQCBzdGF0aWMgdm9pZCBub3RpZnlD
aGlsZEluc2VydGVkKE5vZGUqIGNoaWxkKQogICAgIEFTU0VSVCghZXZlbnREaXNwYXRjaEZvcmJp
ZGRlbigpKTsKIAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRJbnNlcnRET01Ob2RlKGNoaWxkLT5kb2N1bWVudCgpLCBjaGlsZCk7CisgICAg
SW5zcGVjdG9yQ29udHJvbGxlcjo6ZGlkSW5zZXJ0RE9NTm9kZShjaGlsZCk7CiAjZW5kaWYKIAog
ICAgIFJlZlB0cjxOb2RlPiBjID0gY2hpbGQ7CkBAIC0xMDM3LDcgKzEwMzcsNyBAQCBzdGF0aWMg
dm9pZCBkaXNwYXRjaENoaWxkUmVtb3ZhbEV2ZW50cyhOb2RlKiBjaGlsZCkKICAgICBBU1NFUlQo
IWV2ZW50RGlzcGF0Y2hGb3JiaWRkZW4oKSk7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlbW92ZURPTU5vZGUoY2hpbGQtPmRvY3Vt
ZW50KCksIGNoaWxkKTsKKyAgICBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsUmVtb3ZlRE9NTm9k
ZShjaGlsZCk7CiAjZW5kaWYKIAogICAgIFJlZlB0cjxOb2RlPiBjID0gY2hpbGQ7CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IGZmMDMwYmFmODYyYmRmN2ZiYzc1MzM4YmU1ZjkxMjU2MGM2ZjVhMTcuLmM0MDg3OTBjN2Nh
YTMyMjczOTY2YjY5YzRjNzQ2ZDBkYjhjMzA1NWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC00NCw3ICs0NCw3IEBA
CiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNs
dWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIK
KyNpbmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiTm9kZUxpc3QuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCkBAIC01NTgs
NyArNTU4LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIHZhbHVlLAogCiAjaWYgRU5BQkxFKElOU1BFQ1RP
UikKICAgICBpZiAoIWlzU3luY2hyb25pemluZ1N0eWxlQXR0cmlidXRlKCkpCi0gICAgICAgIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURPTUF0dHIoZG9jdW1lbnQoKSwgdGhp
cyk7CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxNb2RpZnlET01BdHRyKHRoaXMp
OwogI2VuZGlmCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIGxvY2FsTmFtZSA9IHNob3VsZEln
bm9yZUF0dHJpYnV0ZUNhc2UodGhpcykgPyBuYW1lLmxvd2VyKCkgOiBuYW1lOwpAQCAtNTg4LDcg
KzU4OCw3IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
bmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiB2YWx1ZSwKIAogI2lmIEVOQUJMRShJTlNQRUNUT1Ip
CiAgICAgaWYgKCFpc1N5bmNocm9uaXppbmdTdHlsZUF0dHJpYnV0ZSgpKQotICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZE1vZGlmeURPTUF0dHIoZG9jdW1lbnQoKSwgdGhpcyk7
CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZE1vZGlmeURPTUF0dHIodGhpcyk7CiAj
ZW5kaWYKIH0KIApAQCAtNTk2LDcgKzU5Niw3IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRl
KGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUsCiB7
CiAjaWYgRU5BQkxFKElOU1BFQ1RPUikKICAgICBpZiAoIWlzU3luY2hyb25pemluZ1N0eWxlQXR0
cmlidXRlKCkpCi0gICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURP
TUF0dHIoZG9jdW1lbnQoKSwgdGhpcyk7CisgICAgICAgIEluc3BlY3RvckNvbnRyb2xsZXI6Ondp
bGxNb2RpZnlET01BdHRyKHRoaXMpOwogI2VuZGlmCiAKICAgICBkb2N1bWVudCgpLT5pbmNET01U
cmVlVmVyc2lvbigpOwpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgRWxlbWVudDo6c2V0QXR0cmli
dXRlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5hbWUsIGNvbnN0IEF0b21pY1N0cmluZyYgdmFsdWUs
CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAgIGlmICghaXNTeW5jaHJvbml6aW5nU3R5bGVB
dHRyaWJ1dGUoKSkKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRNb2RpZnlE
T01BdHRyKGRvY3VtZW50KCksIHRoaXMpOworICAgICAgICBJbnNwZWN0b3JDb250cm9sbGVyOjpk
aWRNb2RpZnlET01BdHRyKHRoaXMpOwogI2VuZGlmCiB9CiAKQEAgLTEyNTcsNyArMTI1Nyw3IEBA
IHZvaWQgRWxlbWVudDo6c2V0QXR0cmlidXRlTlMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lc3Bh
Y2VVUkksIGNvbnN0IEF0b21pY1N0cmluCiAKIHZvaWQgRWxlbWVudDo6cmVtb3ZlQXR0cmlidXRl
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsTW9kaWZ5RE9NQXR0cihkb2N1bWVudCgpLCB0aGlzKTsKKyAg
ICBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsTW9kaWZ5RE9NQXR0cih0aGlzKTsKIAogICAgIFN0
cmluZyBsb2NhbE5hbWUgPSBzaG91bGRJZ25vcmVBdHRyaWJ1dGVDYXNlKHRoaXMpID8gbmFtZS5s
b3dlcigpIDogbmFtZTsKIApAQCAtMTI2Nyw3ICsxMjY3LDcgQEAgdm9pZCBFbGVtZW50OjpyZW1v
dmVBdHRyaWJ1dGUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKICAgICAg
ICAgICAgIGVjID0gMDsKICAgICB9CiAgICAgCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRNb2RpZnlET01BdHRyKGRvY3VtZW50KCksIHRoaXMpOworICAgIEluc3BlY3RvckNvbnRy
b2xsZXI6OmRpZE1vZGlmeURPTUF0dHIodGhpcyk7CiB9CiAKIHZvaWQgRWxlbWVudDo6cmVtb3Zl
QXR0cmlidXRlTlMoY29uc3QgU3RyaW5nJiBuYW1lc3BhY2VVUkksIGNvbnN0IFN0cmluZyYgbG9j
YWxOYW1lLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9y
L0luc3BlY3RvckNvbnRyb2xsZXIuY3BwIGIvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHAKaW5kZXggNWNjNzc0NGRkYTdjMWE0MzFmYThhMWQzYWFjOWI5YjU4N2UyYjBj
Yy4uZjJlZTJjMTRjNTc3ZjE3MjNmN2UyYTBkODI1YzZjODY0OGQyN2EwZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKQEAgLTY2LDcgKzY2LDYgQEAKICNpbmNs
dWRlICJJbnNwZWN0b3JEZWJ1Z2dlckFnZW50LmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5oIgotI2luY2x1ZGUgIklu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkluc3BlY3RvclByb2ZpbGVyQWdl
bnQuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JSZXNvdXJjZS5oIgogI2luY2x1ZGUgIkluc3BlY3Rv
clN0b3JhZ2VBZ2VudC5oIgpAQCAtMTM4LDYgKzEzNyw4IEBAIGNvbnN0IGNoYXIqIGNvbnN0IElu
c3BlY3RvckNvbnRyb2xsZXI6OlNjcmlwdHNQYW5lbCA9ICJzY3JpcHRzIjsKIGNvbnN0IGNoYXIq
IGNvbnN0IEluc3BlY3RvckNvbnRyb2xsZXI6OlByb2ZpbGVzUGFuZWwgPSAicHJvZmlsZXMiOwog
CiAKK3N0YXRpYyBpbnQgY29ubmVjdGVkRnJvbnRlbmRDb3VudCA9IDA7CisKIGNvbnN0IFN0cmlu
ZyYgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zcGVjdG9yU3RhcnRzQXR0YWNoZWRTZXR0aW5nTmFt
ZSgpCiB7CiAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNldHRpbmdOYW1lLCAoImlu
c3BlY3RvclN0YXJ0c0F0dGFjaGVkIikpOwpAQCAtMTUwLDYgKzE1MSw4IEBAIHN0YXRpYyBjb25z
dCBmbG9hdCBtYXhpbXVtQXR0YWNoZWRIZWlnaHRSYXRpbyA9IDAuNzVmOwogc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heGltdW1Db25zb2xlTWVzc2FnZXMgPSAxMDAwOwogc3RhdGljIGNvbnN0IHVu
c2lnbmVkIGV4cGlyZUNvbnNvbGVNZXNzYWdlc1N0ZXAgPSAxMDA7CiAKK3Vuc2lnbmVkIEluc3Bl
Y3RvckNvbnRyb2xsZXI6OnNfaW5zcGVjdG9yQ29udHJvbGxlckNvdW50ID0gMDsKKwogSW5zcGVj
dG9yQ29udHJvbGxlcjo6SW5zcGVjdG9yQ29udHJvbGxlcihQYWdlKiBwYWdlLCBJbnNwZWN0b3JD
bGllbnQqIGNsaWVudCkKICAgICA6IG1faW5zcGVjdGVkUGFnZShwYWdlKQogICAgICwgbV9jbGll
bnQoY2xpZW50KQpAQCAtMTc1LDYgKzE3OCw3IEBAIEluc3BlY3RvckNvbnRyb2xsZXI6Okluc3Bl
Y3RvckNvbnRyb2xsZXIoUGFnZSogcGFnZSwgSW5zcGVjdG9yQ2xpZW50KiBjbGllbnQpCiB7CiAg
ICAgQVNTRVJUX0FSRyhwYWdlLCBwYWdlKTsKICAgICBBU1NFUlRfQVJHKGNsaWVudCwgY2xpZW50
KTsKKyAgICArK3NfaW5zcGVjdG9yQ29udHJvbGxlckNvdW50OwogfQogCiBJbnNwZWN0b3JDb250
cm9sbGVyOjp+SW5zcGVjdG9yQ29udHJvbGxlcigpCkBAIC0xODYsNiArMTkwLDkgQEAgSW5zcGVj
dG9yQ29udHJvbGxlcjo6fkluc3BlY3RvckNvbnRyb2xsZXIoKQogCiAgICAgZGVsZXRlQWxsVmFs
dWVzKG1fZnJhbWVSZXNvdXJjZXMpOwogCisgICAgQVNTRVJUKHNfaW5zcGVjdG9yQ29udHJvbGxl
ckNvdW50KTsKKyAgICAtLXNfaW5zcGVjdG9yQ29udHJvbGxlckNvdW50OworCiAgICAgcmVsZWFz
ZUZyb250ZW5kTGlmZXRpbWVBZ2VudHMoKTsKIAogICAgIG1faW5zcGVjdG9yQmFja2VuZC0+ZGlz
Y29ubmVjdENvbnRyb2xsZXIoKTsKQEAgLTUzMCw5ICs1MzcsOSBAQCB2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OmNvbm5lY3RGcm9udGVuZCgpCiAgICAgbV9hcHBsaWNhdGlvbkNhY2hlQWdlbnQg
PSBuZXcgSW5zcGVjdG9yQXBwbGljYXRpb25DYWNoZUFnZW50KHRoaXMsIG1fZnJvbnRlbmQuZ2V0
KCkpOwogI2VuZGlmCiAKLSAgICBpZiAoIUluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJv
bnRlbmRzKCkpCisgICAgaWYgKCFjb25uZWN0ZWRGcm9udGVuZENvdW50KQogICAgICAgICBTY3Jp
cHRDb250cm9sbGVyOjpzZXRDYXB0dXJlQ2FsbFN0YWNrRm9yVW5jYXVnaHRFeGNlcHRpb25zKHRy
dWUpOwotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJvbnRlbmRDcmVhdGVkKCk7Cisg
ICAgY29ubmVjdGVkRnJvbnRlbmRDb3VudCsrOwogfQogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OnJldXNlRnJvbnRlbmQoKQpAQCAtNTkwLDggKzU5Nyw4IEBAIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6ZGlzY29ubmVjdEZyb250ZW5kKCkKICAgICAgICAgcmV0dXJuOwogICAgIG1fZnJv
bnRlbmQuY2xlYXIoKTsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZnJvbnRlbmRE
ZWxldGVkKCk7Ci0gICAgaWYgKCFJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5k
cygpKQorICAgIGNvbm5lY3RlZEZyb250ZW5kQ291bnQtLTsKKyAgICBpZiAoIWNvbm5lY3RlZEZy
b250ZW5kQ291bnQpCiAgICAgICAgIFNjcmlwdENvbnRyb2xsZXI6OnNldENhcHR1cmVDYWxsU3Rh
Y2tGb3JVbmNhdWdodEV4Y2VwdGlvbnMoZmFsc2UpOwogCiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRf
REVCVUdHRVIpCkBAIC0yMDk2LDcgKzIxMDMsNjQgQEAgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpyZWxvYWRQYWdlKCkKICAgICBtX2luc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpLT5yZWRpcmVj
dFNjaGVkdWxlcigpLT5zY2hlZHVsZVJlZnJlc2godHJ1ZSk7CiB9CiAKLXZvaWQgSW5zcGVjdG9y
Q29udHJvbGxlcjo6aW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoY29uc3QgS1VSTCYg
dXJsKQordm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsSW5zZXJ0RE9NTm9kZUltcGwoTm9k
ZSogbm9kZSwgTm9kZSogcGFyZW50KQoreworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VS
KQorICAgIGlmICghbV9kZWJ1Z2dlckFnZW50IHx8ICFtX2RvbUFnZW50KQorICAgICAgICByZXR1
cm47CisgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gZXZlbnREYXRhOworICAgIGlmICht
X2RvbUFnZW50LT5zaG91bGRCcmVha09uTm9kZUluc2VydGlvbihub2RlLCBwYXJlbnQsICZldmVu
dERhdGEpKQorICAgICAgICBtX2RlYnVnZ2VyQWdlbnQtPmJyZWFrUHJvZ3JhbShET01CcmVha3Bv
aW50RGVidWdnZXJFdmVudFR5cGUsIGV2ZW50RGF0YSk7CisjZW5kaWYKK30KKwordm9pZCBJbnNw
ZWN0b3JDb250cm9sbGVyOjpkaWRJbnNlcnRET01Ob2RlSW1wbChOb2RlKiBub2RlKQoreworICAg
IGlmIChtX2RvbUFnZW50KQorICAgICAgICBtX2RvbUFnZW50LT5kaWRJbnNlcnRET01Ob2RlKG5v
ZGUpOworfQorCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OndpbGxSZW1vdmVET01Ob2RlSW1w
bChOb2RlKiBub2RlKQoreworI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQorICAgIGlm
ICghbV9kZWJ1Z2dlckFnZW50IHx8ICFtX2RvbUFnZW50KQorICAgICAgICByZXR1cm47CisgICAg
UGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gZXZlbnREYXRhOworICAgIGlmIChtX2RvbUFnZW50
LT5zaG91bGRCcmVha09uTm9kZVJlbW92YWwobm9kZSwgJmV2ZW50RGF0YSkpCisgICAgICAgIG1f
ZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFtKERPTUJyZWFrcG9pbnREZWJ1Z2dlckV2ZW50VHlw
ZSwgZXZlbnREYXRhKTsKKyNlbmRpZgorfQorCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZFJlbW92ZURPTU5vZGVJbXBsKE5vZGUqIG5vZGUpCit7CisgICAgaWYgKG1fZG9tQWdlbnQpCisg
ICAgICAgIG1fZG9tQWdlbnQtPmRpZFJlbW92ZURPTU5vZGUobm9kZSk7Cit9CisKK3ZvaWQgSW5z
cGVjdG9yQ29udHJvbGxlcjo6d2lsbE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqIGVsZW1lbnQp
Cit7CisjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCisgICAgaWYgKCFtX2RlYnVnZ2Vy
QWdlbnQgfHwgIW1fZG9tQWdlbnQpCisgICAgICAgIHJldHVybjsKKyAgICBQYXNzUmVmUHRyPElu
c3BlY3RvclZhbHVlPiBldmVudERhdGE7CisgICAgaWYgKG1fZG9tQWdlbnQtPnNob3VsZEJyZWFr
T25BdHRyaWJ1dGVNb2RpZmljYXRpb24oZWxlbWVudCwgJmV2ZW50RGF0YSkpCisgICAgICAgIG1f
ZGVidWdnZXJBZ2VudC0+YnJlYWtQcm9ncmFtKERPTUJyZWFrcG9pbnREZWJ1Z2dlckV2ZW50VHlw
ZSwgZXZlbnREYXRhKTsKKyNlbmRpZgorfQorCit2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRp
ZE1vZGlmeURPTUF0dHJJbXBsKEVsZW1lbnQqIGVsZW1lbnQpCit7CisgICAgaWYgKG1fZG9tQWdl
bnQpCisgICAgICAgIG1fZG9tQWdlbnQtPmRpZE1vZGlmeURPTUF0dHIoZWxlbWVudCk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6Y2hhcmFjdGVyRGF0YU1vZGlmaWVkSW1wbChDaGFy
YWN0ZXJEYXRhKiBjaGFyYWN0ZXJEYXRhKQoreworICAgIGlmIChtX2RvbUFnZW50KQorICAgICAg
ICBtX2RvbUFnZW50LT5jaGFyYWN0ZXJEYXRhTW9kaWZpZWQoY2hhcmFjdGVyRGF0YSk7Cit9CisK
K3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxlcjo6aW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVl
c3RJbXBsKGNvbnN0IEtVUkwmIHVybCkKIHsKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJVR0dF
UikKICAgICBpZiAobV9kZWJ1Z2dlckFnZW50KSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmgKaW5kZXggNTYxNmUwMjRhOGYwNzdlNzdlNzcxNjM4Njg1NDIzMTJlYmI2OTg3
NC4uOWU2M2YwMWU1MTc4NjUzM2Y1ZTcxZWVlMjRmMWJkMWY1NjVkMTQ2NiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCisrKyBiL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
IkNoYXJhY3RlckRhdGEuaCIKICNpbmNsdWRlICJDb25zb2xlLmgiCiAjaW5jbHVkZSAiQ29va2ll
LmgiCisjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNjcmlwdFN0YXRlLmgiCkBAIC01MCw2ICs1MSw3
IEBAIGNsYXNzIENvbnNvbGVNZXNzYWdlOwogY2xhc3MgRGF0YWJhc2U7CiBjbGFzcyBEb2N1bWVu
dDsKIGNsYXNzIERvY3VtZW50TG9hZGVyOworY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZsb2F0UmVj
dDsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIEhpdFRlc3RSZXN1bHQ7CkBAIC0xOTYs
NiArMTk4LDE1IEBAIHB1YmxpYzoKICAgICB2b2lkIG1haW5SZXNvdXJjZUZpcmVkTG9hZEV2ZW50
KERvY3VtZW50TG9hZGVyKiwgY29uc3QgS1VSTCYpOwogICAgIHZvaWQgbWFpblJlc291cmNlRmly
ZWRET01Db250ZW50RXZlbnQoRG9jdW1lbnRMb2FkZXIqLCBjb25zdCBLVVJMJik7CiAKKyAgICBz
dGF0aWMgdm9pZCB3aWxsSW5zZXJ0RE9NTm9kZShOb2RlKiBub2RlLCBOb2RlKiBwYXJlbnQpOwor
ICAgIHN0YXRpYyB2b2lkIGRpZEluc2VydERPTU5vZGUoTm9kZSopOworICAgIHN0YXRpYyB2b2lk
IHdpbGxSZW1vdmVET01Ob2RlKE5vZGUqKTsKKyAgICBzdGF0aWMgdm9pZCB3aWxsTW9kaWZ5RE9N
QXR0cihFbGVtZW50Kik7CisgICAgc3RhdGljIHZvaWQgZGlkTW9kaWZ5RE9NQXR0cihFbGVtZW50
Kik7CisgICAgc3RhdGljIHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVkKENoYXJhY3RlckRhdGEq
KTsKKworICAgIHN0YXRpYyB2b2lkIGluc3RydW1lbnRXaWxsU2VuZFhNTEh0dHBSZXF1ZXN0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25zdCBLVVJMJik7CisKICNpZiBFTkFCTEUoV09SS0VS
UykKICAgICBlbnVtIFdvcmtlckFjdGlvbiB7IFdvcmtlckNyZWF0ZWQsIFdvcmtlckRlc3Ryb3ll
ZCB9OwogCkBAIC0yODAsNyArMjkxLDYgQEAgcHJpdmF0ZToKIAogICAgIGZyaWVuZCBjbGFzcyBJ
bnNwZWN0b3JCYWNrZW5kOwogICAgIGZyaWVuZCBjbGFzcyBJbnNwZWN0b3JCYWNrZW5kRGlzcGF0
Y2hlcjsKLSAgICBmcmllbmQgY2xhc3MgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOwogICAgIGZy
aWVuZCBjbGFzcyBJbmplY3RlZFNjcmlwdEhvc3Q7CiAKICAgICB2b2lkIHBvcHVsYXRlU2NyaXB0
T2JqZWN0cygpOwpAQCAtMzI5LDcgKzMzOSwxOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkaWRF
dmFsdWF0ZUZvclRlc3RJbkZyb250ZW5kKGxvbmcgY2FsbElkLCBjb25zdCBTdHJpbmcmIGpzb25S
ZXN1bHQpOwogCi0gICAgdm9pZCBpbnN0cnVtZW50V2lsbFNlbmRYTUxIdHRwUmVxdWVzdChjb25z
dCBLVVJMJik7CisgICAgc3RhdGljIEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRy
b2xsZXJGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpOworICAgIHN0YXRpYyBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9s
bGVyRm9yTm9kZShOb2RlKik7CisgICAgc3RhdGljIEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3Bl
Y3RvckNvbnRyb2xsZXJGb3JEb2N1bWVudChEb2N1bWVudCogZG9jdW1lbnQpOworCisgICAgdm9p
ZCB3aWxsSW5zZXJ0RE9NTm9kZUltcGwoTm9kZSogbm9kZSwgTm9kZSogcGFyZW50KTsKKyAgICB2
b2lkIGRpZEluc2VydERPTU5vZGVJbXBsKE5vZGUqKTsKKyAgICB2b2lkIHdpbGxSZW1vdmVET01O
b2RlSW1wbChOb2RlKik7CisgICAgdm9pZCBkaWRSZW1vdmVET01Ob2RlSW1wbChOb2RlKik7Cisg
ICAgdm9pZCB3aWxsTW9kaWZ5RE9NQXR0ckltcGwoRWxlbWVudCopOworICAgIHZvaWQgZGlkTW9k
aWZ5RE9NQXR0ckltcGwoRWxlbWVudCopOworICAgIHZvaWQgY2hhcmFjdGVyRGF0YU1vZGlmaWVk
SW1wbChDaGFyYWN0ZXJEYXRhKik7CisKKyAgICB2b2lkIGluc3RydW1lbnRXaWxsU2VuZFhNTEh0
dHBSZXF1ZXN0SW1wbChjb25zdCBLVVJMJik7CiAKICNpZiBFTkFCTEUoSkFWQVNDUklQVF9ERUJV
R0dFUikKICAgICBmcmllbmQgY2xhc3MgSW5zcGVjdG9yRGVidWdnZXJBZ2VudDsKQEAgLTMzOCw2
ICszNjAsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgc2F2ZUJyZWFrcG9pbnRzKFBhc3NSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBicmVha3BvaW50cyk7CiAjZW5kaWYKIAorICAgIHN0YXRpYyB1bnNp
Z25lZCBzX2luc3BlY3RvckNvbnRyb2xsZXJDb3VudDsKKwogICAgIFBhZ2UqIG1faW5zcGVjdGVk
UGFnZTsKICAgICBJbnNwZWN0b3JDbGllbnQqIG1fY2xpZW50OwogICAgIE93blB0cjxJbnNwZWN0
b3JGcm9udGVuZENsaWVudD4gbV9pbnNwZWN0b3JGcm9udGVuZENsaWVudDsKQEAgLTQwNCw2ICs0
MjgsOTIgQEAgcHJpdmF0ZToKICNlbmRpZgogfTsKIAoraW5saW5lIHZvaWQgSW5zcGVjdG9yQ29u
dHJvbGxlcjo6d2lsbEluc2VydERPTU5vZGUoTm9kZSogbm9kZSwgTm9kZSogcGFyZW50KQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3Bl
Y3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yTm9kZShwYXJlbnQpKQorICAg
ICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT53aWxsSW5zZXJ0RE9NTm9kZUltcGwobm9kZSwgcGFy
ZW50KTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRJ
bnNlcnRET01Ob2RlKE5vZGUqIG5vZGUpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBp
ZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNv
bnRyb2xsZXJGb3JOb2RlKG5vZGUpKQorICAgICAgICBpbnNwZWN0b3JDb250cm9sbGVyLT5kaWRJ
bnNlcnRET01Ob2RlSW1wbChub2RlKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JDb250cm9sbGVyOjp3aWxsUmVtb3ZlRE9NTm9kZShOb2RlKiBub2RlKQoreworI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRy
b2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yTm9kZShub2RlKSkgeworICAgICAgICBpbnNw
ZWN0b3JDb250cm9sbGVyLT53aWxsUmVtb3ZlRE9NTm9kZUltcGwobm9kZSk7CisgICAgICAgIGlu
c3BlY3RvckNvbnRyb2xsZXItPmRpZFJlbW92ZURPTU5vZGVJbXBsKG5vZGUpOworICAgIH0KKyNl
bmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjp3aWxsTW9kaWZ5RE9N
QXR0cihFbGVtZW50KiBlbGVtZW50KQoreworI2lmIEVOQUJMRShJTlNQRUNUT1IpCisgICAgaWYg
KEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250
cm9sbGVyRm9yTm9kZShlbGVtZW50KSkKKyAgICAgICAgaW5zcGVjdG9yQ29udHJvbGxlci0+d2ls
bE1vZGlmeURPTUF0dHJJbXBsKGVsZW1lbnQpOworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIElu
c3BlY3RvckNvbnRyb2xsZXI6OmRpZE1vZGlmeURPTUF0dHIoRWxlbWVudCogZWxlbWVudCkKK3sK
KyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNw
ZWN0b3JDb250cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlckZvck5vZGUoZWxlbWVudCkpCisg
ICAgICAgIGluc3BlY3RvckNvbnRyb2xsZXItPmRpZE1vZGlmeURPTUF0dHJJbXBsKGVsZW1lbnQp
OworI2VuZGlmCit9CisKK2lubGluZSB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmNoYXJhY3Rl
ckRhdGFNb2RpZmllZChDaGFyYWN0ZXJEYXRhKiBjaGFyYWN0ZXJEYXRhKQoreworI2lmIEVOQUJM
RShJTlNQRUNUT1IpCisgICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRy
b2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yTm9kZShjaGFyYWN0ZXJEYXRhKSkKKyAgICAg
ICAgaW5zcGVjdG9yQ29udHJvbGxlci0+Y2hhcmFjdGVyRGF0YU1vZGlmaWVkSW1wbChjaGFyYWN0
ZXJEYXRhKTsKKyNlbmRpZgorfQorCitpbmxpbmUgdm9pZCBJbnNwZWN0b3JDb250cm9sbGVyOjpp
bnN0cnVtZW50V2lsbFNlbmRYTUxIdHRwUmVxdWVzdChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBjb25zdCBLVVJMJiB1cmwpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKyAgICBp
ZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3BlY3RvckNv
bnRyb2xsZXJGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KGNvbnRleHQpKQorICAgICAgICBpbnNw
ZWN0b3JDb250cm9sbGVyLT5pbnN0cnVtZW50V2lsbFNlbmRYTUxIdHRwUmVxdWVzdEltcGwodXJs
KTsKKyNlbmRpZgorfQorCitpbmxpbmUgSW5zcGVjdG9yQ29udHJvbGxlciogSW5zcGVjdG9yQ29u
dHJvbGxlcjo6aW5zcGVjdG9yQ29udHJvbGxlckZvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICBpZiAoIXNfaW5zcGVjdG9yQ29u
dHJvbGxlckNvdW50IHx8ICFjb250ZXh0IHx8ICFjb250ZXh0LT5pc0RvY3VtZW50KCkpCisgICAg
ICAgIHJldHVybiAwOworICAgIHJldHVybiBpbnNwZWN0b3JDb250cm9sbGVyRm9yRG9jdW1lbnQo
c3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihjb250ZXh0KSk7Cit9CisKK2lubGluZSBJbnNwZWN0b3JD
b250cm9sbGVyKiBJbnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0b3JDb250cm9sbGVyRm9yTm9k
ZShOb2RlKiBub2RlKQoreworICAgIGlmICghc19pbnNwZWN0b3JDb250cm9sbGVyQ291bnQpCisg
ICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBpbnNwZWN0b3JDb250cm9sbGVyRm9yRG9jdW1l
bnQobm9kZS0+ZG9jdW1lbnQoKSk7Cit9CisKK2lubGluZSBJbnNwZWN0b3JDb250cm9sbGVyKiBJ
bnNwZWN0b3JDb250cm9sbGVyOjppbnNwZWN0b3JDb250cm9sbGVyRm9yRG9jdW1lbnQoRG9jdW1l
bnQqIGRvY3VtZW50KQoreworICAgIEFTU0VSVChkb2N1bWVudCk7CisgICAgUGFnZSogcGFnZSA9
IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gMDsKKyAg
ICBJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyID0gcGFnZS0+aW5zcGVj
dG9yQ29udHJvbGxlcigpOworICAgIGlmICghaW5zcGVjdG9yQ29udHJvbGxlcikKKyAgICAgICAg
cmV0dXJuIDA7CisgICAgaWYgKCFpbnNwZWN0b3JDb250cm9sbGVyLT5oYXNGcm9udGVuZCgpKQor
ICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gaW5zcGVjdG9yQ29udHJvbGxlcjsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gIWRlZmluZWQoSW5zcGVjdG9yQ29u
dHJvbGxlcl9oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRhdGlv
bi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZiYmNjZTQ5YmIxOWIxY2E0MTUy
Mjc0NTY1NWI5NmVmNDkyZTk1ODkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmNw
cAorKysgL2Rldi9udWxsCkBAIC0xLDEzNiArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIw
MTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0qIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKLSogbWV0OgotKgotKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0qICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgotKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0qIGRpc3RyaWJ1dGlvbi4KLSogICAgICogTmVpdGhlciB0
aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotKiBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJv
bQotKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNz
aW9uLgotKgotKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9M
REVSUyBBTkQgQ09OVFJJQlVUT1JTCi0qICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0qIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotKiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVAotKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKLSogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSogREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZCi0qIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0qIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0q
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgiCi0KLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotCi0jaW5jbHVkZSAiSW5zcGVjdG9yQ29u
dHJvbGxlci5oIgotI2luY2x1ZGUgIkluc3BlY3RvckRPTUFnZW50LmgiCi0jaW5jbHVkZSAiSW5z
cGVjdG9yRGVidWdnZXJBZ2VudC5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWludCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OnNfZnJvbnRlbmRDb3VudGVyID0gMDsKLQotdm9pZCBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxJbnNlcnRET01Ob2RlSW1wbChJbnNwZWN0b3JDb250
cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBOb2RlKiBub2RlLCBOb2RlKiBwYXJlbnQpCi17
Ci0jaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCi0gICAgaWYgKCFpbnNwZWN0b3JDb250
cm9sbGVyLT5oYXNGcm9udGVuZCgpKQotICAgICAgICByZXR1cm47Ci0gICAgSW5zcGVjdG9yRGVi
dWdnZXJBZ2VudCogZGVidWdnZXJBZ2VudCA9IGluc3BlY3RvckNvbnRyb2xsZXItPm1fZGVidWdn
ZXJBZ2VudC5nZXQoKTsKLSAgICBpZiAoIWRlYnVnZ2VyQWdlbnQpCi0gICAgICAgIHJldHVybjsK
LSAgICBJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5t
X2RvbUFnZW50LmdldCgpOwotICAgIGlmICghZG9tQWdlbnQpCi0gICAgICAgIHJldHVybjsKLSAg
ICBQYXNzUmVmUHRyPEluc3BlY3RvclZhbHVlPiBldmVudERhdGE7Ci0gICAgaWYgKGRvbUFnZW50
LT5zaG91bGRCcmVha09uTm9kZUluc2VydGlvbihub2RlLCBwYXJlbnQsICZldmVudERhdGEpKQot
ICAgICAgICBkZWJ1Z2dlckFnZW50LT5icmVha1Byb2dyYW0oRE9NQnJlYWtwb2ludERlYnVnZ2Vy
RXZlbnRUeXBlLCBldmVudERhdGEpOwotI2VuZGlmCi19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRJbnNlcnRET01Ob2RlSW1wbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNw
ZWN0b3JDb250cm9sbGVyLCBOb2RlKiBub2RlKQotewotICAgIGlmICghaW5zcGVjdG9yQ29udHJv
bGxlci0+aGFzRnJvbnRlbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChJbnNwZWN0b3JE
T01BZ2VudCogZG9tQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2RvbUFnZW50LmdldCgp
KQotICAgICAgICBkb21BZ2VudC0+ZGlkSW5zZXJ0RE9NTm9kZShub2RlKTsKLX0KLQotdm9pZCBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxSZW1vdmVET01Ob2RlSW1wbChJbnNwZWN0b3JD
b250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBOb2RlKiBub2RlKQotewotI2lmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQotICAgIGlmICghaW5zcGVjdG9yQ29udHJvbGxlci0+aGFz
RnJvbnRlbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQq
IGRlYnVnZ2VyQWdlbnQgPSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2RlYnVnZ2VyQWdlbnQuZ2V0
KCk7Ci0gICAgaWYgKCFkZWJ1Z2dlckFnZW50KQotICAgICAgICByZXR1cm47Ci0gICAgSW5zcGVj
dG9yRE9NQWdlbnQqIGRvbUFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+bV9kb21BZ2VudC5n
ZXQoKTsKLSAgICBpZiAoIWRvbUFnZW50KQotICAgICAgICByZXR1cm47Ci0gICAgUGFzc1JlZlB0
cjxJbnNwZWN0b3JWYWx1ZT4gZXZlbnREYXRhOwotICAgIGlmIChkb21BZ2VudC0+c2hvdWxkQnJl
YWtPbk5vZGVSZW1vdmFsKG5vZGUsICZldmVudERhdGEpKQotICAgICAgICBkZWJ1Z2dlckFnZW50
LT5icmVha1Byb2dyYW0oRE9NQnJlYWtwb2ludERlYnVnZ2VyRXZlbnRUeXBlLCBldmVudERhdGEp
OwotI2VuZGlmCi19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZW1vdmVE
T01Ob2RlSW1wbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250cm9sbGVyLCBOb2Rl
KiBub2RlKQotewotICAgIGlmICghaW5zcGVjdG9yQ29udHJvbGxlci0+aGFzRnJvbnRlbmQoKSkK
LSAgICAgICAgcmV0dXJuOwotICAgIGlmIChJbnNwZWN0b3JET01BZ2VudCogZG9tQWdlbnQgPSBp
bnNwZWN0b3JDb250cm9sbGVyLT5tX2RvbUFnZW50LmdldCgpKQotICAgICAgICBkb21BZ2VudC0+
ZGlkUmVtb3ZlRE9NTm9kZShub2RlKTsKLX0KLQotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246OndpbGxNb2RpZnlET01BdHRySW1wbChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JD
b250cm9sbGVyLCBFbGVtZW50KiBlbGVtZW50KQotewotI2lmIEVOQUJMRShKQVZBU0NSSVBUX0RF
QlVHR0VSKQotICAgIGlmICghaW5zcGVjdG9yQ29udHJvbGxlci0+aGFzRnJvbnRlbmQoKSkKLSAg
ICAgICAgcmV0dXJuOwotICAgIEluc3BlY3RvckRlYnVnZ2VyQWdlbnQqIGRlYnVnZ2VyQWdlbnQg
PSBpbnNwZWN0b3JDb250cm9sbGVyLT5tX2RlYnVnZ2VyQWdlbnQuZ2V0KCk7Ci0gICAgaWYgKCFk
ZWJ1Z2dlckFnZW50KQotICAgICAgICByZXR1cm47Ci0gICAgSW5zcGVjdG9yRE9NQWdlbnQqIGRv
bUFnZW50ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+bV9kb21BZ2VudC5nZXQoKTsKLSAgICBpZiAo
IWRvbUFnZW50KQotICAgICAgICByZXR1cm47Ci0gICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1
ZT4gZXZlbnREYXRhOwotICAgIGlmIChkb21BZ2VudC0+c2hvdWxkQnJlYWtPbkF0dHJpYnV0ZU1v
ZGlmaWNhdGlvbihlbGVtZW50LCAmZXZlbnREYXRhKSkKLSAgICAgICAgZGVidWdnZXJBZ2VudC0+
YnJlYWtQcm9ncmFtKERPTUJyZWFrcG9pbnREZWJ1Z2dlckV2ZW50VHlwZSwgZXZlbnREYXRhKTsK
LSNlbmRpZgotfQotCi12b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkTW9kaWZ5RE9N
QXR0ckltcGwoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgRWxlbWVu
dCogZWxlbWVudCkKLXsKLSAgICBpZiAoIWluc3BlY3RvckNvbnRyb2xsZXItPmhhc0Zyb250ZW5k
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoSW5zcGVjdG9yRE9NQWdlbnQqIGRvbUFnZW50
ID0gaW5zcGVjdG9yQ29udHJvbGxlci0+bV9kb21BZ2VudC5nZXQoKSkKLSAgICAgICAgZG9tQWdl
bnQtPmRpZE1vZGlmeURPTUF0dHIoZWxlbWVudCk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpjaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKEluc3BlY3RvckNvbnRyb2xsZXIq
IGluc3BlY3RvckNvbnRyb2xsZXIsIENoYXJhY3RlckRhdGEqIGNoYXJhY3RlckRhdGEpCi17Ci0g
ICAgaWYgKCFpbnNwZWN0b3JDb250cm9sbGVyLT5oYXNGcm9udGVuZCgpKQotICAgICAgICByZXR1
cm47Ci0gICAgaWYgKEluc3BlY3RvckRPTUFnZW50KiBkb21BZ2VudCA9IGluc3BlY3RvckNvbnRy
b2xsZXItPm1fZG9tQWdlbnQuZ2V0KCkpCi0gICAgICAgIGRvbUFnZW50LT5jaGFyYWN0ZXJEYXRh
TW9kaWZpZWQoY2hhcmFjdGVyRGF0YSk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppbnN0cnVtZW50V2lsbFNlbmRYTUxIdHRwUmVxdWVzdEltcGwoSW5zcGVjdG9yQ29udHJv
bGxlciogaW5zcGVjdG9yQ29udHJvbGxlciwgY29uc3QgS1VSTCYgdXJsKQotewotICAgIGlmICgh
aW5zcGVjdG9yQ29udHJvbGxlci0+aGFzRnJvbnRlbmQoKSkKLSAgICAgICAgcmV0dXJuOwotICAg
IGluc3BlY3RvckNvbnRyb2xsZXItPmluc3RydW1lbnRXaWxsU2VuZFhNTEh0dHBSZXF1ZXN0KHVy
bCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFFTkFCTEUoSU5T
UEVDVE9SKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uLmggYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGQ4MDRjZDg3MGZhMjNjYWU0YmIwNmRjZWYy
NTVjMjkwYWFlNjgyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaAorKysgL2Rl
di9udWxsCkBAIC0xLDE2NCArMCwwIEBACi0vKgotKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSoKLSogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0qIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKLSogbWV0OgotKgotKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0qICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKLSogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgotKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCi0qIGRpc3RyaWJ1dGlvbi4KLSogICAgICogTmVpdGhlciB0aGUgbmFtZSBv
ZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cwotKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotKiB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotKgot
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCi0qICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCi0qIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgotKiBBIFBBUlRJQ1VMQVIg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAot
KiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwKLSogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAotKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSogREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
Ci0qIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKLSogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0qIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0qLwotCi0jaWZu
ZGVmIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbl9oCi0jZGVmaW5lIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbl9oCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIlBhZ2UuaCIKLSNp
bmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotY2xhc3MgQ2hhcmFjdGVyRGF0YTsKLWNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBJbnNwZWN0b3JD
b250cm9sbGVyOwotY2xhc3MgS1VSTDsKLWNsYXNzIE5vZGU7Ci0KLWNsYXNzIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIHZvaWQgd2lsbEluc2VydERPTU5v
ZGUoRG9jdW1lbnQqLCBOb2RlKiwgTm9kZSogcGFyZW50KTsKLSAgICBzdGF0aWMgdm9pZCBkaWRJ
bnNlcnRET01Ob2RlKERvY3VtZW50KiwgTm9kZSopOwotICAgIHN0YXRpYyB2b2lkIHdpbGxSZW1v
dmVET01Ob2RlKERvY3VtZW50KiwgTm9kZSopOwotICAgIHN0YXRpYyB2b2lkIHdpbGxNb2RpZnlE
T01BdHRyKERvY3VtZW50KiwgRWxlbWVudCopOwotICAgIHN0YXRpYyB2b2lkIGRpZE1vZGlmeURP
TUF0dHIoRG9jdW1lbnQqLCBFbGVtZW50Kik7Ci0gICAgc3RhdGljIHZvaWQgY2hhcmFjdGVyRGF0
YU1vZGlmaWVkKERvY3VtZW50KiwgQ2hhcmFjdGVyRGF0YSopOwotCi0gICAgc3RhdGljIHZvaWQg
aW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCos
IGNvbnN0IEtVUkwmKTsKLQotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgc3RhdGljIHZvaWQg
ZnJvbnRlbmRDcmVhdGVkKCkgeyBzX2Zyb250ZW5kQ291bnRlciArPSAxOyB9Ci0gICAgc3RhdGlj
IHZvaWQgZnJvbnRlbmREZWxldGVkKCkgeyBzX2Zyb250ZW5kQ291bnRlciAtPSAxOyB9Ci0gICAg
c3RhdGljIGJvb2wgaGFzRnJvbnRlbmRzKCkgeyByZXR1cm4gc19mcm9udGVuZENvdW50ZXI7IH0K
LSNlbmRpZgotCi1wcml2YXRlOgotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgc3RhdGljIHZv
aWQgd2lsbEluc2VydERPTU5vZGVJbXBsKEluc3BlY3RvckNvbnRyb2xsZXIqLCBOb2RlKiBub2Rl
LCBOb2RlKiBwYXJlbnQpOwotICAgIHN0YXRpYyB2b2lkIGRpZEluc2VydERPTU5vZGVJbXBsKElu
c3BlY3RvckNvbnRyb2xsZXIqLCBOb2RlKik7Ci0gICAgc3RhdGljIHZvaWQgd2lsbFJlbW92ZURP
TU5vZGVJbXBsKEluc3BlY3RvckNvbnRyb2xsZXIqLCBOb2RlKik7Ci0gICAgc3RhdGljIHZvaWQg
ZGlkUmVtb3ZlRE9NTm9kZUltcGwoSW5zcGVjdG9yQ29udHJvbGxlciosIE5vZGUqKTsKLSAgICBz
dGF0aWMgdm9pZCB3aWxsTW9kaWZ5RE9NQXR0ckltcGwoSW5zcGVjdG9yQ29udHJvbGxlciosIEVs
ZW1lbnQqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRNb2RpZnlET01BdHRySW1wbChJbnNwZWN0b3JD
b250cm9sbGVyKiwgRWxlbWVudCopOwotICAgIHN0YXRpYyB2b2lkIGNoYXJhY3RlckRhdGFNb2Rp
ZmllZEltcGwoSW5zcGVjdG9yQ29udHJvbGxlciosIENoYXJhY3RlckRhdGEqKTsKLQotICAgIHN0
YXRpYyB2b2lkIGluc3RydW1lbnRXaWxsU2VuZFhNTEh0dHBSZXF1ZXN0SW1wbChJbnNwZWN0b3JD
b250cm9sbGVyKiwgY29uc3QgS1VSTCYpOwotCi0gICAgc3RhdGljIEluc3BlY3RvckNvbnRyb2xs
ZXIqIGluc3BlY3RvckNvbnRyb2xsZXJGb3JTY3JpcHRFeGVjdXRpb25Db250ZXh0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqKTsKLSAgICBzdGF0aWMgSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVj
dG9yQ29udHJvbGxlckZvckRvY3VtZW50KERvY3VtZW50Kik7Ci0gICAgc3RhdGljIEluc3BlY3Rv
ckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXJGb3JQYWdlKFBhZ2UqKTsKLQotICAgIHN0
YXRpYyBpbnQgc19mcm9udGVuZENvdW50ZXI7Ci0jZW5kaWYKLX07Ci0KLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbEluc2VydERPTU5vZGUoRG9jdW1lbnQqIGRvY3Vt
ZW50LCBOb2RlKiBub2RlLCBOb2RlKiBwYXJlbnQpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RPUikK
LSAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IGluc3Bl
Y3RvckNvbnRyb2xsZXJGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIHdpbGxJbnNlcnRE
T01Ob2RlSW1wbChpbnNwZWN0b3JDb250cm9sbGVyLCBub2RlLCBwYXJlbnQpOwotI2VuZGlmCi19
Ci0KLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkSW5zZXJ0RE9NTm9k
ZShEb2N1bWVudCogZG9jdW1lbnQsIE5vZGUqIG5vZGUpCi17Ci0jaWYgRU5BQkxFKElOU1BFQ1RP
UikKLSAgICBpZiAoSW5zcGVjdG9yQ29udHJvbGxlciogaW5zcGVjdG9yQ29udHJvbGxlciA9IGlu
c3BlY3RvckNvbnRyb2xsZXJGb3JEb2N1bWVudChkb2N1bWVudCkpCi0gICAgICAgIGRpZEluc2Vy
dERPTU5vZGVJbXBsKGluc3BlY3RvckNvbnRyb2xsZXIsIG5vZGUpOwotI2VuZGlmCi19Ci0KLWlu
bGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFJlbW92ZURPTU5vZGUoRG9j
dW1lbnQqIGRvY3VtZW50LCBOb2RlKiBub2RlKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0g
ICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0
b3JDb250cm9sbGVyRm9yRG9jdW1lbnQoZG9jdW1lbnQpKSB7Ci0gICAgICAgIHdpbGxSZW1vdmVE
T01Ob2RlSW1wbChpbnNwZWN0b3JDb250cm9sbGVyLCBub2RlKTsKLSAgICAgICAgZGlkUmVtb3Zl
RE9NTm9kZUltcGwoaW5zcGVjdG9yQ29udHJvbGxlciwgbm9kZSk7Ci0gICAgfQotI2VuZGlmCi19
Ci0KLWlubGluZSB2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbE1vZGlmeURPTUF0
dHIoRG9jdW1lbnQqIGRvY3VtZW50LCBFbGVtZW50KiBlbGVtZW50KQotewotI2lmIEVOQUJMRShJ
TlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3RvckNvbnRyb2xs
ZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yRG9jdW1lbnQoZG9jdW1lbnQpKQotICAgICAgICB3
aWxsTW9kaWZ5RE9NQXR0ckltcGwoaW5zcGVjdG9yQ29udHJvbGxlciwgZWxlbWVudCk7Ci0jZW5k
aWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRNb2RpZnlE
T01BdHRyKERvY3VtZW50KiBkb2N1bWVudCwgRWxlbWVudCogZWxlbWVudCkKLXsKLSNpZiBFTkFC
TEUoSU5TUEVDVE9SKQotICAgIGlmIChJbnNwZWN0b3JDb250cm9sbGVyKiBpbnNwZWN0b3JDb250
cm9sbGVyID0gaW5zcGVjdG9yQ29udHJvbGxlckZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAg
ICAgZGlkTW9kaWZ5RE9NQXR0ckltcGwoaW5zcGVjdG9yQ29udHJvbGxlciwgZWxlbWVudCk7Ci0j
ZW5kaWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpjaGFyYWN0
ZXJEYXRhTW9kaWZpZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBDaGFyYWN0ZXJEYXRhKiBjaGFyYWN0
ZXJEYXRhKQotewotI2lmIEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckNvbnRy
b2xsZXIqIGluc3BlY3RvckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yRG9jdW1l
bnQoZG9jdW1lbnQpKQotICAgICAgICBjaGFyYWN0ZXJEYXRhTW9kaWZpZWRJbXBsKGluc3BlY3Rv
ckNvbnRyb2xsZXIsIGNoYXJhY3RlckRhdGEpOwotI2VuZGlmCi19Ci0KLWlubGluZSB2b2lkIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVlc3Qo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgS1VSTCYgdXJsKQotewotI2lm
IEVOQUJMRShJTlNQRUNUT1IpCi0gICAgaWYgKEluc3BlY3RvckNvbnRyb2xsZXIqIGluc3BlY3Rv
ckNvbnRyb2xsZXIgPSBpbnNwZWN0b3JDb250cm9sbGVyRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4
dChjb250ZXh0KSkKLSAgICAgICAgaW5zdHJ1bWVudFdpbGxTZW5kWE1MSHR0cFJlcXVlc3RJbXBs
KGluc3BlY3RvckNvbnRyb2xsZXIsIHVybCk7Ci0jZW5kaWYKLX0KLQotI2lmIEVOQUJMRShJTlNQ
RUNUT1IpCi1pbmxpbmUgSW5zcGVjdG9yQ29udHJvbGxlciogSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjppbnNwZWN0b3JDb250cm9sbGVyRm9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQotewotICAgIGlmIChoYXNGcm9udGVuZHMoKSAmJiBj
b250ZXh0ICYmIGNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIGluc3BlY3Rv
ckNvbnRyb2xsZXJGb3JQYWdlKHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCktPnBhZ2Uo
KSk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWlubGluZSBJbnNwZWN0b3JDb250cm9sbGVyKiBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246Omluc3BlY3RvckNvbnRyb2xsZXJGb3JEb2N1bWVudChEb2N1
bWVudCogZG9jdW1lbnQpCi17Ci0gICAgaWYgKGhhc0Zyb250ZW5kcygpKQotICAgICAgICByZXR1
cm4gaW5zcGVjdG9yQ29udHJvbGxlckZvclBhZ2UoZG9jdW1lbnQtPnBhZ2UoKSk7Ci0gICAgcmV0
dXJuIDA7Ci19Ci0KLWlubGluZSBJbnNwZWN0b3JDb250cm9sbGVyKiBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246Omluc3BlY3RvckNvbnRyb2xsZXJGb3JQYWdlKFBhZ2UqIHBhZ2UpCi17Ci0gICAg
cmV0dXJuIHBhZ2UgPyBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkgOiAwOwotfQotI2VuZGlm
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vICFkZWZpbmVkKEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbl9oKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1NoYXJlZFdv
cmtlci5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcAppbmRleCA5OTdmOWNk
MGNmMWY0ZDNiYjg2ZGVkZjI1M2FkNTE5OTdkNGVjZDRiLi5iMjViMjhlZDIyYWY0MDEwMjFlMjYy
OTZlOTBhNTVlMDMyNDlkM2NkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29y
a2VyLmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyLmNwcApAQCAtMzksNyAr
MzksNiBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJNZXNzYWdlQ2hhbm5lbC5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VQb3J0LmgiCi0jaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4
dC5oIgogI2luY2x1ZGUgIlNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCIKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>