<?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>180163</bug_id>
          
          <creation_ts>2017-11-29 13:03:05 -0800</creation_ts>
          <short_desc>Remove pointer caging for double arrays</short_desc>
          <delta_ts>2017-11-29 17:06:18 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1375982</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-29 13:03:05 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376027</commentid>
    <comment_count>1</comment_count>
      <attachid>327903</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-29 14:12:43 -0800</bug_when>
    <thetext>Created attachment 327903
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376031</commentid>
    <comment_count>2</comment_count>
      <attachid>327903</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2017-11-29 14:17:31 -0800</bug_when>
    <thetext>Comment on attachment 327903
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376036</commentid>
    <comment_count>3</comment_count>
      <attachid>327906</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-11-29 14:20:41 -0800</bug_when>
    <thetext>Created attachment 327906
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376041</commentid>
    <comment_count>4</comment_count>
      <attachid>327906</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2017-11-29 14:29:39 -0800</bug_when>
    <thetext>Comment on attachment 327906
patch for landing

r=me too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376123</commentid>
    <comment_count>5</comment_count>
      <attachid>327906</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-29 17:05:04 -0800</bug_when>
    <thetext>Comment on attachment 327906
patch for landing

Clearing flags on attachment: 327906

Committed r225307: &lt;https://trac.webkit.org/changeset/225307&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376124</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-11-29 17:05:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1376126</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-11-29 17:06:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/35761738&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327903</attachid>
            <date>2017-11-29 14:12:43 -0800</date>
            <delta_ts>2017-11-29 14:20:41 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>32699</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI1Mjk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBA
CisyMDE3LTExLTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBwb2ludGVyIGNhZ2luZyBmb3IgZG91YmxlIGFycmF5cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMTYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHBvaW50
ZXIgY2FnaW5nIGZyb20gZG91YmxlIGFycmF5cy4gTGlrZQorICAgICAgICBteSBwcmV2aW91cyBy
ZW1vdmFscyBvZiBwb2ludGVyIGNhZ2luZywgdGhpcyBpcyBhIHNlY3VyaXR5IHZzCisgICAgICAg
IHBlcmZvcm1hbmNlIHRyYWRlb2ZmLiBXZSBiZWxpZXZlIHRoYXQgYnV0dGVyZmxpZXMgYmVpbmcg
YWxsb2NhdGVkCisgICAgICAgIGluIHRoZSBjYWdlIGFuZCB3aXRoIGEgMzJHQiBydW53YXkgZ2l2
ZXMgdXMgZW5vdWdoIHNlY3VyaXR5IHRoYXQKKyAgICAgICAgcG9pbnRlciBjYWdpbmcgdGhlIGJ1
dHRlcmZseSBqdXN0IGZvciBkb3VibGUgYXJyYXlzIGRvZXMgbm90IGFkZAorICAgICAgICBlbm91
Z2ggc2VjdXJpdHkgYmVuZWZpdCBmb3IgdGhlIHBlcmZvcm1hbmNlIGhpdCBpdCBpbmN1cnMuCisg
ICAgICAgIAorICAgICAgICBUaGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgR2V0QnV0dGVyZmx5
V2l0aG91dENhZ2luZyBub2RlIGFuZAorICAgICAgICB0aGUgRml4ZWRCdXR0ZXJmbHlBY2Nlc3NV
bmNhZ2luZyBwaGFzZS4gVGhlIG5vZGUgaXMgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBiZWNh
dXNlIG5vdyBhbGwgR2V0QnV0dGVyZmx5IG5vZGVzIGFyZSBub3QgY2FnZWQuIFRoZSBwaGFzZSBp
cyByZW1vdmVkCisgICAgICAgIHNpbmNlIHdlIG5vIGxvbmdlciBoYXZlIHR3byBub2Rlcy4KKwor
ICAgICAgICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAo
SlNDOjpERkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRl
RWZmZWN0cyk6CisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3Bw
OgorICAgICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xv
YmJlcml6ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRG
Rzo6ZG9lc0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2lu
Z1BoYXNlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nl
c3NVbmNhZ2luZ1BoYXNlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2Uu
Y3BwOgorICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAg
ICogZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwp
OgorICAgICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9k
ZVR5cGUuaDoKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6
UGxhbjo6Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Q
cm9wYWdhdGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgor
ICAgICAgICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVj
dWxhdGl2ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVTcHJlYWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJy
YXlTbGljZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRC
dXR0ZXJmbHkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAg
ICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZl
SklUOjpjb21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlS
ZWR1bmRhbnRTdHJ1Y3R1cmVDaGVja3MpOgorICAgICAgICAoSlNDOjpERkc6OlR5cGVDaGVja0hv
aXN0aW5nUGhhc2U6OmlkZW50aWZ5UmVkdW5kYW50QXJyYXlDaGVja3MpOgorICAgICAgICAqIGZ0
bC9GVExDYXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgor
ICAgICAgICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRG
Rzo6TG93ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpM
b3dlckRGR1RvQjM6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOgorICAgICAgICAqIGppdC9KSVRQcm9w
ZXJ0eUFjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdERvdWJsZUxvYWQpOgorICAg
ICAgICAoSlNDOjpKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKToKKyAgICAgICAg
KiBydW50aW1lL0J1dHRlcmZseS5oOgorICAgICAgICAoSlNDOjpCdXR0ZXJmbHk6OnBvaW50ZXIp
OgorICAgICAgICAoSlNDOjpCdXR0ZXJmbHk6OmNvbnRpZ3VvdXNEb3VibGUpOgorICAgICAgICAo
SlNDOjpCdXR0ZXJmbHk6OmNhZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0J1dHRl
cmZseUlubGluZXMuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjpjcmVhdGVPckdyb3dQcm9w
ZXJ0eVN0b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAo
SlNDOjpKU09iamVjdDo6ZW5zdXJlTGVuZ3RoU2xvdyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0
OjpyZWFsbG9jYXRlQW5kU2hyaW5rQnV0dGVyZmx5KToKKwogMjAxNy0xMS0yOSAgTWF0dCBMZXdp
cyAgPGpsZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMjUyODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjUy
ODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTMxNCw3ICszMTQsNiBAQCBkZmcvREZHRWRnZS5jcHAKIGRmZy9ERkdFcG9jaC5jcHAKIGRm
Zy9ERkdGYWlsZWRGaW5hbGl6ZXIuY3BwCiBkZmcvREZHRmluYWxpemVyLmNwcAotZGZnL0RGR0Zp
eGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHAKIGRmZy9ERkdGaXh1cFBoYXNlLmNw
cAogZGZnL0RGR0Zsb3dJbmRleGluZy5jcHAKIGRmZy9ERkdGbHVzaEZvcm1hdC5jcHAKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNTM1LDcgKzUzNSw2IEBACiAJCTBGRDhBMzI4MTdENTFGNTcwMENB
MkM0MCAvKiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4QTMyMDE3RDUxRjU3MDBDQTJDNDAgLyog
REZHVGllclVwQ2hlY2tJbmplY3Rpb25QaGFzZS5oICovOyB9OwogCQkwRkQ4QTMyQTE3RDUxRjU3
MDBDQTJDNDAgLyogREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDhBMzIyMTdENTFGNTcw
MENBMkM0MCAvKiBERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oICovOyB9Owog
CQkwRkQ4QTMyQzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVk
Q29tcGlsYXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMEZEOEEzMjQxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50
cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJMEZEOUVBODkxRjI5MTYy
QzAwRjMyQkVFIC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEOUVBODcxRjI5MTYy
QzAwRjMyQkVFIC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oICovOyB9
OwogCQkwRkRCMkNDOTE3M0RBNTIwMDA3QjNDMUIgLyogRlRMQWJicmV2aWF0ZWRUeXBlcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEQjJDQzcxNzNE
QTUxRTAwN0IzQzFCIC8qIEZUTEFiYnJldmlhdGVkVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkRCMkNDQTE3M0RBNTIzMDA3QjNDMUIg
LyogRlRMVmFsdWVGcm9tQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGREIyQ0M4MTczREE1MUUwMDdCM0MxQiAvKiBGVExWYWx1ZUZyb21CbG9j
ay5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
REIyQ0U4MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEQjJDRTYxNzQ4MzBBMjAwN0IzQzFCIC8q
IERGR1dvcmtsaXN0LmggKi87IH07CkBAIC0yNjU4LDggKzI2NTcsNiBAQAogCQkwRkQ4QTMyMjE3
RDUxRjU3MDBDQTJDNDAgLyogREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHVG9GVExEZWZlcnJlZENvbXBpbGF0
aW9uQ2FsbGJhY2suaDsgcGF0aCA9IGRmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxs
YmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQ4QTMyMzE3RDUxRjU3MDBD
QTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdUb0ZUTEZvck9TUkVu
dHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcDsgcGF0aCA9IGRmZy9ERkdUb0ZUTEZv
ck9TUkVudHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMEZEOEEzMjQxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NS
RW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBuYW1lID0gREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFj
ay5oOyBwYXRoID0gZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZEOUVBODYxRjI5MTYyQzAw
RjMyQkVFIC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBERkdGaXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuY3BwOyBw
YXRoID0gZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTBGRDlFQTg3MUYyOTE2MkMwMEYzMkJFRSAvKiBERkdG
aXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRml4
ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmg7IHBhdGggPSBkZmcvREZHRml4ZWRCdXR0
ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGREIyQ0M3MTczREE1MUUwMDdCM0MxQiAvKiBGVExBYmJyZXZpYXRlZFR5cGVzLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IEZUTEFiYnJldmlhdGVkVHlwZXMuaDsgcGF0aCA9IGZ0bC9GVExBYmJyZXZpYXRl
ZFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREIyQ0M4MTczREE1MUUw
MDdCM0MxQiAvKiBGVExWYWx1ZUZyb21CbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExWYWx1ZUZy
b21CbG9jay5oOyBwYXRoID0gZnRsL0ZUTFZhbHVlRnJvbUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGREIyQ0U1MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdXb3JrbGlzdC5jcHA7
IHBhdGggPSBkZmcvREZHV29ya2xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNzA0NSw4ICs3MDQyLDYgQEAKIAkJCQlBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZH
RmlsdHJhdGlvblJlc3VsdC5oICovLAogCQkJCUE3OEE5NzZFMTc5NzM4QjgwMDlERjc0NCAvKiBE
RkdGaW5hbGl6ZXIuY3BwICovLAogCQkJCUE3OEE5NzZGMTc5NzM4QjgwMDlERjc0NCAvKiBERkdG
aW5hbGl6ZXIuaCAqLywKLQkJCQkwRkQ5RUE4NjFGMjkxNjJDMDBGMzJCRUUgLyogREZHRml4ZWRC
dXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcCAqLywKLQkJCQkwRkQ5RUE4NzFGMjkxNjJD
MDBGMzJCRUUgLyogREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmggKi8sCiAJ
CQkJMEYyQkRDMTIxNTFDNUQ0QTAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuY3BwICovLAogCQkJ
CTBGMkJEQzEzMTUxQzVENEEwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmggKi8sCiAJCQkJMEYy
MDE3N0QxRENBREMzMDAwRUE1OTUwIC8qIERGR0Zsb3dJbmRleGluZy5jcHAgKi8sCkBAIC04MzM1
LDcgKzgzMzAsNiBAQAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRG
aW5hbGl6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAv
KiBERkdGaWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NzE3OTcz
OEI4MDA5REY3NDQgLyogREZHRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ5RUE4
OTFGMjkxNjJDMDBGMzJCRUUgLyogREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjJCREMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4
dXBQaGFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMDE3ODAxRENBREMzNTAwRUE1OTUwIC8q
IERGR0Zsb3dJbmRleGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMDE3ODIxRENBREQ0MjAw
RUE1OTUwIC8qIERGR0Zsb3dNYXAuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGlu
ZXMuaAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdB
YnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjA5LDcgKzI2
MDksNiBAQCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAg
IH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBHZXRC
dXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6
CiAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgTnVrZVN0cnVj
dHVyZUFuZFNldEJ1dHRlcmZseToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
QXJndW1lbnRzRWxpbWluYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcAkocmV2aXNpb24g
MjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5h
dGlvblBoYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDcgKzM3OCw2IEBAIHByaXZhdGU6
CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICAgICAgICAgICAgICBjYXNlIEdldEJ1
dHRlcmZseVdpdGhvdXRDYWdpbmc6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYmFyZWx5
IHdvcmtzLiBUaGUgZGFuZ2VyIGlzIHRoYXQgdGhlIEdldEJ1dHRlcmZseSBpcyB1c2VkIGJ5IHNv
bWV0aGluZyB0aGF0CiAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgc29tZXRoaW5nIGVzY2Fw
aW5nIHRvIGEgY2FuZGlkYXRlLiBGb3J0dW5hdGVseSwgdGhlIG9ubHkgYnV0dGVyZmx5LXVzaW5n
IG9wcwogICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlIGV4ZW1wdCBoZXJlIGFsc28gdXNl
IHRoZSBjYW5kaWRhdGUgZGlyZWN0bHkuIElmIHRoZXJlIGV2ZXIgd2FzIGEKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyMjUyODMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5
KQpAQCAtMTA0NCwxMSArMTA0NCw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5v
ZGUqIG5vZGUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0
X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKLSAgICAgICAgcmVh
ZChKU09iamVjdF9idXR0ZXJmbHkpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZs
eVdpdGhvdXRDYWdpbmdMb2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBM
YXp5Tm9kZShub2RlKSk7Ci0gICAgICAgIHJldHVybjsKLQogICAgIGNhc2UgQ2hlY2tTdWJDbGFz
czoKICAgICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5jbGFzc0luZm8oKSkpOwogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3Bw
CShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNH
Qy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNiBAQCBib29sIGRvZXNHQyhHcmFw
aCYgZ3JhcGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToK
ICAgICBjYXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2Fz
ZSBHZXRCdXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKICAg
ICBjYXNlIENoZWNrQXJyYXk6CiAgICAgY2FzZSBHZXRTY29wZToKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeGVkQnV0dGVyZmx5
QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcAko
bm9uZXhpc3RlbnQpCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkRGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5o
IgotCi0jaWYgRU5BQkxFKERGR19KSVQpCi0KLSNpbmNsdWRlICJERkdDbG9iYmVyaXplLmgiCi0j
aW5jbHVkZSAiREZHR3JhcGguaCIKLSNpbmNsdWRlICJERkdQaGFzZS5oIgotI2luY2x1ZGUgIkpT
Q0lubGluZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5kZXhTZXQuaD4KLQotbmFtZXNwYWNlIEpTQyB7
IG5hbWVzcGFjZSBERkcgewotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBGaXhlZEJ1dHRlcmZseUFj
Y2Vzc1VuY2FnaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotcHVibGljOgotICAgIEZpeGVkQnV0
dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZShHcmFwaCYgZ3JhcGgpCi0gICAgICAgIDogUGhhc2Uo
Z3JhcGgsICJmaXhlZCBidXR0ZXJmbHkgYWNjZXNzIHVuY2FnaW5nIikKLSAgICB7Ci0gICAgfQot
ICAgIAotICAgIGJvb2wgcnVuKCkKLSAgICB7Ci0gICAgICAgIEluZGV4U2V0PE5vZGUqPiBuZWVk
Q2FnaW5nOwotICAgICAgICAKLSAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAg
d2hpbGUgKGNoYW5nZWQpIHsKLSAgICAgICAgICAgIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAg
ICAgIGZvciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX2dyYXBoLmJsb2Nrc0luTmF0dXJhbE9yZGVy
KCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgOiAqYmxvY2spIHsKLSAgICAg
ICAgICAgICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7Ci0gICAgICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBDaGVjayBhZ2FpbiBob3cgYmFkbHkgd2UgbmVlZCB0aGlzLiBJdCBtaWdodCBu
b3QgYmUgd29ydGggaXQuCi0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUwNDQKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBH
ZXRCeU9mZnNldDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDoKLSAgICAg
ICAgICAgICAgICAgICAgY2FzZSBHZXRHZXR0ZXJTZXR0ZXJCeU9mZnNldDoKLSAgICAgICAgICAg
ICAgICAgICAgY2FzZSBHZXRBcnJheUxlbmd0aDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBH
ZXRWZWN0b3JMZW5ndGg6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBjYXNlIFVwc2lsb246Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBpZiAobmVlZENhZ2luZy5jb250YWlucyhub2RlLT5waGkoKSkp
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBuZWVkQ2FnaW5nLmFkZChu
b2RlLT5jaGlsZDEoKS5ub2RlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBwb3NzaWJseSBtYWtlIHRo
aXMgbW9yZSBwcmVjaXNlLiBXZSByZWFsbHkgb25seSBjYXJlIGFib3V0IHdoZXRoZXIKLSAgICAg
ICAgICAgICAgICAgICAgICAgIC8vIHRoaXMgY2FuIHJlYWQvd3JpdGUgYnV0dGVyZmx5IGNvbnRl
bnRzLgotICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3NDkyNgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhY2Nl
c3Nlc092ZXJsYXAobV9ncmFwaCwgbm9kZSwgSGVhcCkpCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAg
ICAgICAgIE5vZGUqIHRvRXhjbHVkZSA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBpZiAobm9kZS0+aGFzQXJyYXlNb2RlKCkgJiYgbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpICE9
IEFycmF5OjpEb3VibGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5v
ZGUtPm9wKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEFycmF5UHVzaDoK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9FeGNsdWRlID0gbV9ncmFwaC52YXJB
cmdDaGlsZChub2RlLCAwKS5ub2RlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJyYXlJbmRleE9mOgot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b0V4Y2x1ZGUgPSBtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIG5vZGUtPm51bUNoaWxkcmVuKCkgPT0gMyA/IDIgOiAzKS5ub2RlKCk7Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNhc2UgQXJyYXlQb3A6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHRvRXhjbHVkZSA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBIYXNJ
bmRleGVkUHJvcGVydHk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRXhjbHVk
ZSA9IG5vZGUtPmNoaWxkMygpLm5vZGUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9FeGNsdWRlID0gbm9kZS0+Y2hpbGQzKCku
bm9kZSgpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsOgotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0b0V4Y2x1ZGUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDMpLm5vZGUo
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmRvVG9DaGlsZHJlbigK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFsmXSAoRWRnZSYgZWRnZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpZiAoZWRnZS5ub2RlKCkgIT0gdG9FeGNsdWRlKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY2hhbmdlZCB8PSBuZWVkQ2FnaW5nLmFkZChlZGdlLm5vZGUoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNl
OwotICAgICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9ncmFwaC5ibG9ja3NJbk5hdHVy
YWxPcmRlcigpKSB7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgOiAqYmxvY2spIHsKLSAg
ICAgICAgICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRCdXR0ZXJmbHkgJiYgIW5lZWRDYWdp
bmcuY29udGFpbnMobm9kZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+c2V0T3AoR2V0
QnV0dGVyZmx5V2l0aG91dENhZ2luZyk7Ci0gICAgICAgICAgICAgICAgICAgIGRpZE9wdGltaXpl
ID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIHJldHVybiBkaWRPcHRpbWl6ZTsKLSAgICB9Ci19OwotCi19IC8vIGFu
b255bW91cyBuYW1lc3BhY2UKLQotYm9vbCBwZXJmb3JtRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNh
Z2luZyhHcmFwaCYgZ3JhcGgpCi17Ci0gICAgcmV0dXJuIHJ1blBoYXNlPEZpeGVkQnV0dGVyZmx5
QWNjZXNzVW5jYWdpbmdQaGFzZT4oZ3JhcGgpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6
REZHCi0KLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdGaXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNz
VW5jYWdpbmdQaGFzZS5oCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oCShub25leGlzdGVu
dCkKQEAgLTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5B
QkxFKERGR19KSVQpCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKLQotY2xhc3Mg
R3JhcGg7Ci0KLS8vIFR1cm5zIEdldEJ1dHRlcmZseSBpbnRvIEdldEJ1dHRlcmZseVdpdGhvdXRD
YWdpbmcgaWYgYWxsIG9mIHRoZSBhY2Nlc3NlcyBhcmUgZml4ZWQtb2Zmc2V0LgotYm9vbCBwZXJm
b3JtRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZyhHcmFwaCYpOwotCi19IH0gLy8gbmFtZXNw
YWNlIEpTQzo6REZHCi0KLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMjUyODMp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xNDc1LDggKzE0NzUsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNr
U3RydWN0dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDcmVhdGVU
aGlzOgotICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICAgICAgY2FzZSBHZXRCdXR0ZXJm
bHlXaXRob3V0Q2FnaW5nOiB7CisgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OiB7CiAgICAgICAg
ICAgICBmaXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2Nh
dGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFw
TG9jYXRpb24uY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0hlYXBMb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDEwICs5Niw2IEBA
IHZvaWQgcHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2MKICAgICAgICAgb3V0LnBy
aW50KCJCdXR0ZXJmbHlMb2MiKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICBjYXNl
IEJ1dHRlcmZseVdpdGhvdXRDYWdpbmdMb2M6Ci0gICAgICAgIG91dC5wcmludCgiQnV0dGVyZmx5
V2l0aG91dENhZ2luZ0xvYyIpOwotICAgICAgICByZXR1cm47Ci0gICAgICAgIAogICAgIGNhc2Ug
Q2hlY2tUeXBlSW5mb0ZsYWdzTG9jOgogICAgICAgICBvdXQucHJpbnQoIkNoZWNrVHlwZUluZm9G
bGFnc0xvYyIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR0hlYXBMb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHSGVhcExvY2F0aW9uLmgJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcg
KzM5LDYgQEAgZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIFZl
Y3Rvckxlbmd0aExvYywKICAgICBCdXR0ZXJmbHlMb2MsCi0gICAgQnV0dGVyZmx5V2l0aG91dENh
Z2luZ0xvYywKICAgICBDaGVja1R5cGVJbmZvRmxhZ3NMb2MsCiAgICAgT3ZlcnJpZGVzSGFzSW5z
dGFuY2VMb2MsCiAgICAgQ2xvc3VyZVZhcmlhYmxlTG9jLApJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNyArMjA0
LDYgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEFsbG9jYXRl
UHJvcGVydHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwK
ICAgICBtYWNybyhSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwg
Tm9kZVJlc3VsdFN0b3JhZ2UpIFwKICAgICBtYWNybyhHZXRCdXR0ZXJmbHksIE5vZGVSZXN1bHRT
dG9yYWdlKSBcCi0gICAgbWFjcm8oR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZywgTm9kZVJlc3Vs
dFN0b3JhZ2UpIFwKICAgICBtYWNybyhOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5LCBOb2Rl
TXVzdEdlbmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tBcnJheSwgTm9kZU11c3RHZW5lcmF0ZSkg
XAogICAgIG1hY3JvKEFycmF5aWZ5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2NCw3ICs0
NjQsNiBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAg
IFJVTl9QSEFTRShwZXJmb3JtQ0ZBKTsKICAgICAgICAgUlVOX1BIQVNFKHBlcmZvcm1HbG9iYWxT
dG9yZUJhcnJpZXJJbnNlcnRpb24pOwogICAgICAgICBSVU5fUEhBU0UocGVyZm9ybVN0b3JlQmFy
cmllckNsdXN0ZXJpbmcpOwotICAgICAgICBSVU5fUEhBU0UocGVyZm9ybUZpeGVkQnV0dGVyZmx5
QWNjZXNzVW5jYWdpbmcpOwogICAgICAgICBpZiAoT3B0aW9uczo6dXNlTW92SGludFJlbW92YWwo
KSkKICAgICAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtTW92SGludFJlbW92YWwpOwogICAgICAg
ICBSVU5fUEhBU0UocGVyZm9ybUNsZWFuVXApOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25QaGFzZS5jcHAJ
KHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUHJlZGlj
dGlvblByb3BhZ2F0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NTUsNyArODU1LDYg
QEAgcHJpdmF0ZToKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgICAgIGNhc2Ug
R2V0QnV0dGVyZmx5OgotICAgICAgICBjYXNlIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdpbmc6CiAg
ICAgICAgIGNhc2UgR2V0SW5kZXhlZFByb3BlcnR5U3RvcmFnZToKICAgICAgICAgY2FzZSBBbGxv
Y2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgY2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlOiB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1
dGUuaAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
YWZlVG9FeGVjdXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI0MCw3ICsyNDAsNiBAQCBib29sIHNh
ZmVUb0V4ZWN1dGUoQWJzdHJhY3RTdGF0ZVR5cGUmIHN0CiAgICAgY2FzZSBDaGVja1N0cnVjdHVy
ZU9yRW1wdHk6CiAgICAgY2FzZSBHZXRFeGVjdXRhYmxlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5
OgotICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKICAgICBjYXNlIENhbGxET01H
ZXR0ZXI6CiAgICAgY2FzZSBDYWxsRE9NOgogICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQxMyw3ICs0NDEz
LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICBi
cmVhazsKICAgICAgICAgCiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBHZXRCdXR0
ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgICAgICBjb21waWxlR2V0QnV0dGVyZmx5KG5vZGUpOwog
ICAgICAgICBicmVhazsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVj
dWxhdGl2ZUpJVDY0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NjI0LDcgKzQ2MjQsNiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGJyZWFrOwogICAgICAgICAKICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAg
ICBjYXNlIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdpbmc6CiAgICAgICAgIGNvbXBpbGVHZXRCdXR0
ZXJmbHkobm9kZSk7CiAgICAgICAgIGJyZWFrOwogCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMjI1MjgzKQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTczNTAsNyArNzM1MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVT
cHJlYWQoTm9kZSoKICAgICAgICAgc2xvd1BhdGguYXBwZW5kKG1faml0LmJyYW5jaDMyKE1hY3Jv
QXNzZW1ibGVyOjpBYm92ZSwgc2NyYXRjaDFHUFIsIFRydXN0ZWRJbW0zMihDb250aWd1b3VzU2hh
cGUgLSBJbnQzMlNoYXBlKSkpOwogCiAgICAgICAgIG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJs
ZXI6OkFkZHJlc3MoYXJndW1lbnQsIEpTT2JqZWN0OjpidXR0ZXJmbHlPZmZzZXQoKSksIGxlbmd0
aEdQUik7Ci0gICAgICAgIG1faml0LmNhZ2UoR2lnYWNhZ2U6OkpTVmFsdWUsIGxlbmd0aEdQUik7
IC8vIFdlIG1heSBkbyBhIGRvdWJsZSBtZW1jcHkgbG9vcCBiZWxvdywgc28gd2UgY29uc2VydmF0
aXZlbHkgY2FnZS4KICAgICAgICAgbV9qaXQubG9hZDMyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNz
KGxlbmd0aEdQUiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1YmxpY0xlbmd0aCgpKSwgbGVuZ3RoR1BS
KTsKICAgICAgICAgc3RhdGljX2Fzc2VydChzaXplb2YoSlNWYWx1ZSkgPT0gOCAmJiAxIDw8IDMg
PT0gOCwgIlRoaXMgaXMgc3Ryb25nbHkgYXNzdW1lZCBpbiB0aGUgY29kZSBiZWxvdy4iKTsKICAg
ICAgICAgbV9qaXQubW92ZShsZW5ndGhHUFIsIHNjcmF0Y2gxR1BSKTsKQEAgLTczNjEsNyArNzM2
MCw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTcHJlYWQoTm9kZSoKICAgICAgICAg
bV9qaXQuc3RvcmUzMihsZW5ndGhHUFIsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJlc3VsdEdQ
UiwgSlNGaXhlZEFycmF5OjpvZmZzZXRPZlNpemUoKSkpOwogCiAgICAgICAgIG1faml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MoYXJndW1lbnQsIEpTT2JqZWN0OjpidXR0ZXJmbHlP
ZmZzZXQoKSksIHNjcmF0Y2gxR1BSKTsKLSAgICAgICAgbV9qaXQuY2FnZShHaWdhY2FnZTo6SlNW
YWx1ZSwgc2NyYXRjaDFHUFIpOyAvLyBXZSBtYXkgZG8gYSBkb3VibGUgbWVtY3B5IGxvb3AgYmVs
b3csIHNvIHdlIGNvbnNlcnZhdGl2ZWx5IGNhZ2UuCiAKICAgICAgICAgTWFjcm9Bc3NlbWJsZXI6
Okp1bXBMaXN0IGRvbmU7CiAKQEAgLTc3MjcsNyArNzcyNSw2IEBAIHZvaWQgU3BlY3VsYXRpdmVK
SVQ6OmNvbXBpbGVBcnJheVNsaWNlKE4KICAgICBHUFJSZWcgcmVzdWx0QnV0dGVyZmx5ID0gdGVt
cDIuZ3ByKCk7CiAKICAgICBtX2ppdC5sb2FkUHRyKE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHJl
c3VsdEdQUiwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgpKSwgcmVzdWx0QnV0dGVyZmx5KTsK
LSAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCByZXN1bHRCdXR0ZXJmbHkpOwogICAg
IG1faml0Lnplcm9FeHRlbmQzMlRvUHRyKHRlbXBHUFIsIHRlbXBHUFIpOwogICAgIG1faml0Lnpl
cm9FeHRlbmQzMlRvUHRyKGxvYWRJbmRleCwgbG9hZEluZGV4KTsKICAgICBhdXRvIGRvbmUgPSBt
X2ppdC5icmFuY2hQdHIoTWFjcm9Bc3NlbWJsZXI6OkFib3ZlT3JFcXVhbCwgbG9hZEluZGV4LCB0
ZW1wR1BSKTsKQEAgLTg1NDYsNyArODU0Myw2IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBp
bGVHZXRCdXR0ZXJmbHkKICAgICBHUFJSZWcgcmVzdWx0R1BSID0gcmVzdWx0LmdwcigpOwogICAg
IAogICAgIG1faml0LmxvYWRQdHIoSklUQ29tcGlsZXI6OkFkZHJlc3MoYmFzZUdQUiwgSlNPYmpl
Y3Q6OmJ1dHRlcmZseU9mZnNldCgpKSwgcmVzdWx0R1BSKTsKLSAgICBtX2ppdC5jYWdlKEdpZ2Fj
YWdlOjpKU1ZhbHVlLCByZXN1bHRHUFIpOwogCiAgICAgc3RvcmFnZVJlc3VsdChyZXN1bHRHUFIs
IG5vZGUpOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdUeXBlQ2hlY2tI
b2lzdGluZ1BoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNTUsNyArMjU1LDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICAgICBj
YXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAgICAgICAgICAgICAgY2FzZSBOdWtl
U3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5OgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVy
Zmx5OgotICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKICAg
ICAgICAgICAgICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlW
YWxEaXJlY3Q6CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbDoKQEAgLTMzMiw3ICszMzEs
NiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0U3RydWN0dXJlOgogICAgICAg
ICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVByb3BlcnR5U3RvcmFnZToKICAgICAgICAgICAgICAg
ICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZseVdp
dGhvdXRDYWdpbmc6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKICAgICAgICAgICAg
ICAgICBjYXNlIFB1dEJ5VmFsRGlyZWN0OgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlWYWw6
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExDYXBhYmlsaXRpZXMuY3Bw
CShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFi
aWxpdGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDcgKzcwLDYgQEAgaW5saW5lIENhcGFi
aWxpdHlMZXZlbCBjYW5Db21waWxlKE5vZGUqIAogICAgIGNhc2UgQXJyYXlpZnlUb1N0cnVjdHVy
ZToKICAgICBjYXNlIFB1dFN0cnVjdHVyZToKICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICBj
YXNlIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdpbmc6CiAgICAgY2FzZSBOZXdPYmplY3Q6CiAgICAg
Y2FzZSBOZXdTdHJpbmdPYmplY3Q6CiAgICAgY2FzZSBOZXdBcnJheToKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9CMy5jcHAJKHJldmlzaW9uIDIyNTI4
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzEzLDcgKzcxMyw2IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBjb21w
aWxlRGVsZXRlQnlWYWwoKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEdldEJ1
dHRlcmZseToKLSAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgICAg
ICAgICAgY29tcGlsZUdldEJ1dHRlcmZseSgpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQ29uc3RhbnRTdG9yYWdlUG9pbnRlcjoKQEAgLTMzODIsOCArMzM4MSw2IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjb21waWxlR2V0QnV0dGVyZmx5KCkKICAgICB7CiAgICAgICAgIExWYWx1
ZSBidXR0ZXJmbHkgPSBtX291dC5sb2FkUHRyKGxvd0NlbGwobV9ub2RlLT5jaGlsZDEoKSksIG1f
aGVhcHMuSlNPYmplY3RfYnV0dGVyZmx5KTsKLSAgICAgICAgaWYgKG1fbm9kZS0+b3AoKSAhPSBH
ZXRCdXR0ZXJmbHlXaXRob3V0Q2FnaW5nKQotICAgICAgICAgICAgYnV0dGVyZmx5ID0gY2FnZWQo
R2lnYWNhZ2U6OkpTVmFsdWUsIGJ1dHRlcmZseSk7CiAgICAgICAgIHNldFN0b3JhZ2UoYnV0dGVy
Zmx5KTsKICAgICB9CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVy
dHlBY2Nlc3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklU
UHJvcGVydHlBY2Nlc3MuY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTczLDcg
KzE3Myw2IEBAIEpJVDo6SnVtcExpc3QgSklUOjplbWl0RG91YmxlTG9hZChJbnN0cnUKICAgICAK
ICAgICBiYWRUeXBlID0gcGF0Y2hhYmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVk
SW1tMzIoRG91YmxlU2hhcGUpKTsKICAgICBsb2FkUHRyKEFkZHJlc3MocmVnVDAsIEpTT2JqZWN0
OjpidXR0ZXJmbHlPZmZzZXQoKSksIHJlZ1QyKTsKLSAgICBjYWdlKEdpZ2FjYWdlOjpKU1ZhbHVl
LCByZWdUMik7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2gzMihBYm92ZU9yRXF1YWwsIHJl
Z1QxLCBBZGRyZXNzKHJlZ1QyLCBCdXR0ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpKSk7
CiAgICAgbG9hZERvdWJsZShCYXNlSW5kZXgocmVnVDIsIHJlZ1QxLCBUaW1lc0VpZ2h0KSwgZnBS
ZWdUMCk7CiAgICAgc2xvd0Nhc2VzLmFwcGVuZChicmFuY2hEb3VibGUoRG91YmxlTm90RXF1YWxP
clVub3JkZXJlZCwgZnBSZWdUMCwgZnBSZWdUMCkpOwpAQCAtMzQzLDggKzM0Miw2IEBAIEpJVDo6
SnVtcExpc3QgSklUOjplbWl0R2VuZXJpY0NvbnRpZ3VvdXMKICAgICBiYWRUeXBlID0gcGF0Y2hh
YmxlQnJhbmNoMzIoTm90RXF1YWwsIHJlZ1QyLCBUcnVzdGVkSW1tMzIoaW5kZXhpbmdTaGFwZSkp
OwogICAgIAogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNPYmplY3Q6OmJ1dHRlcmZseU9m
ZnNldCgpKSwgcmVnVDIpOwotICAgIGlmIChpbmRleGluZ1NoYXBlID09IERvdWJsZVNoYXBlKQot
ICAgICAgICBjYWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCByZWdUMik7CiAgICAgSnVtcCBvdXRPZkJv
dW5kcyA9IGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDEsIEFkZHJlc3MocmVnVDIsIEJ1dHRl
cmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpOwogCiAgICAgTGFiZWwgc3RvcmVSZXN1bHQg
PSBsYWJlbCgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5
LmgJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1
dHRlcmZseS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDYgQEAgcHVibGljOgogICAg
IH0KICAgICAKICAgICBjaGFyKiBwb2ludGVyKCkgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxj
aGFyKj4odGhpcyk7IH0KLSAgICBCdXR0ZXJmbHkqIGNhZ2VkKCkgeyByZXR1cm4gR2lnYWNhZ2U6
OmNhZ2VkKEdpZ2FjYWdlOjpKU1ZhbHVlLCB0aGlzKTsgfQogICAgIAogICAgIHN0YXRpYyBwdHJk
aWZmX3Qgb2Zmc2V0T2ZJbmRleGluZ0hlYWRlcigpIHsgcmV0dXJuIEluZGV4aW5nSGVhZGVyOjpv
ZmZzZXRPZkluZGV4aW5nSGVhZGVyKCk7IH0KICAgICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9m
QXJyYXlCdWZmZXIoKSB7IHJldHVybiBvZmZzZXRPZkluZGV4aW5nSGVhZGVyKCkgKyBJbmRleGlu
Z0hlYWRlcjo6b2Zmc2V0T2ZBcnJheUJ1ZmZlcigpOyB9CkBAIC0xMzEsNyArMTMwLDcgQEAgcHVi
bGljOgogICAgIEFycmF5U3RvcmFnZSogYXJyYXlTdG9yYWdlKCkgeyByZXR1cm4gaW5kZXhpbmdQ
YXlsb2FkPEFycmF5U3RvcmFnZT4oKTsgfQogICAgIENvbnRpZ3VvdXNKU1ZhbHVlcyBjb250aWd1
b3VzSW50MzIoKSB7IHJldHVybiBDb250aWd1b3VzSlNWYWx1ZXMoaW5kZXhpbmdQYXlsb2FkPFdy
aXRlQmFycmllcjxVbmtub3duPj4oKSwgdmVjdG9yTGVuZ3RoKCkpOyB9CiAKLSAgICBDb250aWd1
b3VzRG91YmxlcyBjb250aWd1b3VzRG91YmxlKCkgeyByZXR1cm4gQ29udGlndW91c0RvdWJsZXMo
Y2FnZWQoKS0+aW5kZXhpbmdQYXlsb2FkPGRvdWJsZT4oKSwgdmVjdG9yTGVuZ3RoKCkpOyB9Cisg
ICAgQ29udGlndW91c0RvdWJsZXMgY29udGlndW91c0RvdWJsZSgpIHsgcmV0dXJuIENvbnRpZ3Vv
dXNEb3VibGVzKGluZGV4aW5nUGF5bG9hZDxkb3VibGU+KCksIHZlY3Rvckxlbmd0aCgpKTsgfQog
ICAgIENvbnRpZ3VvdXNKU1ZhbHVlcyBjb250aWd1b3VzKCkgeyByZXR1cm4gQ29udGlndW91c0pT
VmFsdWVzKGluZGV4aW5nUGF5bG9hZDxXcml0ZUJhcnJpZXI8VW5rbm93bj4+KCksIHZlY3Rvckxl
bmd0aCgpKTsgfQogICAgIAogICAgIHN0YXRpYyBCdXR0ZXJmbHkqIGZyb21Db250aWd1b3VzKFdy
aXRlQmFycmllcjxVbmtub3duPiogY29udGlndW91cykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0J1dHRlcmZseUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9CdXR0ZXJmbHlJbmxpbmVzLmgJKHJldmlzaW9uIDIyNTI4MykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0J1dHRlcmZseUlubGluZXMuaAkod29y
a2luZyBjb3B5KQpAQCAtMTA3LDggKzEwNyw2IEBAIGlubGluZSBCdXR0ZXJmbHkqIEJ1dHRlcmZs
eTo6Y3JlYXRlT3JHcm8KICAgICBpZiAoIW9sZEJ1dHRlcmZseSkKICAgICAgICAgcmV0dXJuIGNy
ZWF0ZSh2bSwgaW50ZW5kZWRPd25lciwgMCwgbmV3UHJvcGVydHlDYXBhY2l0eSwgZmFsc2UsIElu
ZGV4aW5nSGVhZGVyKCksIDApOwogCi0gICAgb2xkQnV0dGVyZmx5ID0gb2xkQnV0dGVyZmx5LT5j
YWdlZCgpOwotCiAgICAgc2l6ZV90IHByZUNhcGFjaXR5ID0gb2xkQnV0dGVyZmx5LT5pbmRleGlu
Z0hlYWRlcigpLT5wcmVDYXBhY2l0eShzdHJ1Y3R1cmUpOwogICAgIHNpemVfdCBpbmRleGluZ1Bh
eWxvYWRTaXplSW5CeXRlcyA9IG9sZEJ1dHRlcmZseS0+aW5kZXhpbmdIZWFkZXIoKS0+aW5kZXhp
bmdQYXlsb2FkU2l6ZUluQnl0ZXMoc3RydWN0dXJlKTsKICAgICBib29sIGhhc0luZGV4aW5nSGVh
ZGVyID0gc3RydWN0dXJlLT5oYXNJbmRleGluZ0hlYWRlcihpbnRlbmRlZE93bmVyKTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09iamVjdC5jcHAJKHJldmlzaW9uIDIy
NTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMzE3Myw3ICszMTczLDcgQEAgYm9vbCBKU09iamVjdDo6aW5jcmVhc2VW
ZWN0b3JMZW5ndGgoVk0mIAogCiBib29sIEpTT2JqZWN0OjplbnN1cmVMZW5ndGhTbG93KFZNJiB2
bSwgdW5zaWduZWQgbGVuZ3RoKQogewotICAgIEJ1dHRlcmZseSogYnV0dGVyZmx5ID0gdGhpcy0+
YnV0dGVyZmx5KCktPmNhZ2VkKCk7CisgICAgQnV0dGVyZmx5KiBidXR0ZXJmbHkgPSB0aGlzLT5i
dXR0ZXJmbHkoKTsKICAgICAKICAgICBBU1NFUlQobGVuZ3RoIDw9IE1BWF9TVE9SQUdFX1ZFQ1RP
Ul9MRU5HVEgpOwogICAgIEFTU0VSVChoYXNDb250aWd1b3VzKGluZGV4aW5nVHlwZSgpKSB8fCBo
YXNJbnQzMihpbmRleGluZ1R5cGUoKSkgfHwgaGFzRG91YmxlKGluZGV4aW5nVHlwZSgpKSB8fCBo
YXNVbmRlY2lkZWQoaW5kZXhpbmdUeXBlKCkpKTsKQEAgLTMyMzMsNyArMzIzMyw3IEBAIHZvaWQg
SlNPYmplY3Q6OnJlYWxsb2NhdGVBbmRTaHJpbmtCdXR0ZXIKICAgICBBU1NFUlQoIW1fYnV0dGVy
Zmx5LT5pbmRleGluZ0hlYWRlcigpLT5wcmVDYXBhY2l0eShzdHJ1Y3R1cmUoKSkpOwogCiAgICAg
RGVmZXJHQyBkZWZlckdDKHZtLmhlYXApOwotICAgIEJ1dHRlcmZseSogbmV3QnV0dGVyZmx5ID0g
YnV0dGVyZmx5KCktPmNhZ2VkKCktPnJlc2l6ZUFycmF5KHZtLCB0aGlzLCBzdHJ1Y3R1cmUoKSwg
MCwgQXJyYXlTdG9yYWdlOjpzaXplRm9yKGxlbmd0aCkpOworICAgIEJ1dHRlcmZseSogbmV3QnV0
dGVyZmx5ID0gYnV0dGVyZmx5KCktPnJlc2l6ZUFycmF5KHZtLCB0aGlzLCBzdHJ1Y3R1cmUoKSwg
MCwgQXJyYXlTdG9yYWdlOjpzaXplRm9yKGxlbmd0aCkpOwogICAgIG5ld0J1dHRlcmZseS0+c2V0
VmVjdG9yTGVuZ3RoKGxlbmd0aCk7CiAgICAgbmV3QnV0dGVyZmx5LT5zZXRQdWJsaWNMZW5ndGgo
bGVuZ3RoKTsKICAgICBXVEY6OnN0b3JlU3RvcmVGZW5jZSgpOwo=
</data>
<flag name="review"
          id="347107"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>327906</attachid>
            <date>2017-11-29 14:20:41 -0800</date>
            <delta_ts>2017-11-29 17:05:04 -0800</delta_ts>
            <desc>patch for landing</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>32968</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjI1Mjk1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBA
CisyMDE3LTExLTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBwb2ludGVyIGNhZ2luZyBmb3IgZG91YmxlIGFycmF5cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwMTYzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1vdmVzIHBvaW50ZXIgY2Fn
aW5nIGZyb20gZG91YmxlIGFycmF5cy4gTGlrZQorICAgICAgICBteSBwcmV2aW91cyByZW1vdmFs
cyBvZiBwb2ludGVyIGNhZ2luZywgdGhpcyBpcyBhIHNlY3VyaXR5IHZzCisgICAgICAgIHBlcmZv
cm1hbmNlIHRyYWRlb2ZmLiBXZSBiZWxpZXZlIHRoYXQgYnV0dGVyZmxpZXMgYmVpbmcgYWxsb2Nh
dGVkCisgICAgICAgIGluIHRoZSBjYWdlIGFuZCB3aXRoIGEgMzJHQiBydW53YXkgZ2l2ZXMgdXMg
ZW5vdWdoIHNlY3VyaXR5IHRoYXQKKyAgICAgICAgcG9pbnRlciBjYWdpbmcgdGhlIGJ1dHRlcmZs
eSBqdXN0IGZvciBkb3VibGUgYXJyYXlzIGRvZXMgbm90IGFkZAorICAgICAgICBlbm91Z2ggc2Vj
dXJpdHkgYmVuZWZpdCBmb3IgdGhlIHBlcmZvcm1hbmNlIGhpdCBpdCBpbmN1cnMuCisgICAgICAg
IAorICAgICAgICBUaGlzIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUgR2V0QnV0dGVyZmx5V2l0aG91
dENhZ2luZyBub2RlIGFuZAorICAgICAgICB0aGUgRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2lu
ZyBwaGFzZS4gVGhlIG5vZGUgaXMgbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBiZWNhdXNlIG5v
dyBhbGwgR2V0QnV0dGVyZmx5IG5vZGVzIGFyZSBub3QgY2FnZWQuIFRoZSBwaGFzZSBpcyByZW1v
dmVkCisgICAgICAgIHNpbmNlIHdlIG5vIGxvbmdlciBoYXZlIHR3byBub2Rlcy4KKworICAgICAg
ICAqIGRmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpE
Rkc6OkFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5cGU+OjpleGVjdXRlRWZmZWN0
cyk6CisgICAgICAgICogZGZnL0RGR0FyZ3VtZW50c0VsaW1pbmF0aW9uUGhhc2UuY3BwOgorICAg
ICAgICAqIGRmZy9ERkdDbG9iYmVyaXplLmg6CisgICAgICAgIChKU0M6OkRGRzo6Y2xvYmJlcml6
ZSk6CisgICAgICAgICogZGZnL0RGR0RvZXNHQy5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6ZG9l
c0dDKToKKyAgICAgICAgKiBkZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNl
LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNh
Z2luZ1BoYXNlLmg6IFJlbW92ZWQuCisgICAgICAgICogZGZnL0RGR0ZpeHVwUGhhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpERkc6OkZpeHVwUGhhc2U6OmZpeHVwTm9kZSk6CisgICAgICAgICogZGZn
L0RGR0hlYXBMb2NhdGlvbi5jcHA6CisgICAgICAgIChXVEY6OnByaW50SW50ZXJuYWwpOgorICAg
ICAgICAqIGRmZy9ERkdIZWFwTG9jYXRpb24uaDoKKyAgICAgICAgKiBkZmcvREZHTm9kZVR5cGUu
aDoKKyAgICAgICAgKiBkZmcvREZHUGxhbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6UGxhbjo6
Y29tcGlsZUluVGhyZWFkSW1wbCk6CisgICAgICAgICogZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdh
dGlvblBoYXNlLmNwcDoKKyAgICAgICAgKiBkZmcvREZHU2FmZVRvRXhlY3V0ZS5oOgorICAgICAg
ICAoSlNDOjpERkc6OnNhZmVUb0V4ZWN1dGUpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2
ZUpJVC5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVTcHJl
YWQpOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpjb21waWxlQXJyYXlTbGlj
ZSk6CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVHZXRCdXR0ZXJm
bHkpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAgICAgICogZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNwZWN1bGF0aXZlSklUOjpj
b21waWxlKToKKyAgICAgICAgKiBkZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHA6Cisg
ICAgICAgIChKU0M6OkRGRzo6VHlwZUNoZWNrSG9pc3RpbmdQaGFzZTo6aWRlbnRpZnlSZWR1bmRh
bnRTdHJ1Y3R1cmVDaGVja3MpOgorICAgICAgICAoSlNDOjpERkc6OlR5cGVDaGVja0hvaXN0aW5n
UGhhc2U6OmlkZW50aWZ5UmVkdW5kYW50QXJyYXlDaGVja3MpOgorICAgICAgICAqIGZ0bC9GVExD
YXBhYmlsaXRpZXMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNhbkNvbXBpbGUpOgorICAgICAg
ICAqIGZ0bC9GVExMb3dlckRGR1RvQjMuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OkRGRzo6TG93
ZXJERkdUb0IzOjpjb21waWxlTm9kZSk6CisgICAgICAgIChKU0M6OkZUTDo6REZHOjpMb3dlckRG
R1RvQjM6OmNvbXBpbGVHZXRCdXR0ZXJmbHkpOgorICAgICAgICAqIGppdC9KSVRQcm9wZXJ0eUFj
Y2Vzcy5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdERvdWJsZUxvYWQpOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRHZW5lcmljQ29udGlndW91c1B1dEJ5VmFsKToKKyAgICAgICAgKiBydW50
aW1lL0J1dHRlcmZseS5oOgorICAgICAgICAoSlNDOjpCdXR0ZXJmbHk6OnBvaW50ZXIpOgorICAg
ICAgICAoSlNDOjpCdXR0ZXJmbHk6OmNvbnRpZ3VvdXNEb3VibGUpOgorICAgICAgICAoSlNDOjpC
dXR0ZXJmbHk6OmNhZ2VkKTogRGVsZXRlZC4KKyAgICAgICAgKiBydW50aW1lL0J1dHRlcmZseUlu
bGluZXMuaDoKKyAgICAgICAgKEpTQzo6QnV0dGVyZmx5OjpjcmVhdGVPckdyb3dQcm9wZXJ0eVN0
b3JhZ2UpOgorICAgICAgICAqIHJ1bnRpbWUvSlNPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpK
U09iamVjdDo6ZW5zdXJlTGVuZ3RoU2xvdyk6CisgICAgICAgIChKU0M6OkpTT2JqZWN0OjpyZWFs
bG9jYXRlQW5kU2hyaW5rQnV0dGVyZmx5KToKKwogMjAxNy0xMS0yOSAgTWF0dCBMZXdpcyAgPGps
ZXdpczNAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMjUy
ODYuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL1NvdXJjZXMudHh0CShyZXZpc2lvbiAyMjUyODMpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMx
NCw3ICszMTQsNiBAQCBkZmcvREZHRWRnZS5jcHAKIGRmZy9ERkdFcG9jaC5jcHAKIGRmZy9ERkdG
YWlsZWRGaW5hbGl6ZXIuY3BwCiBkZmcvREZHRmluYWxpemVyLmNwcAotZGZnL0RGR0ZpeGVkQnV0
dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHAKIGRmZy9ERkdGaXh1cFBoYXNlLmNwcAogZGZn
L0RGR0Zsb3dJbmRleGluZy5jcHAKIGRmZy9ERkdGbHVzaEZvcm1hdC5jcHAKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNTM1LDcgKzUzNSw2IEBACiAJCTBGRDhBMzI4MTdENTFGNTcwMENBMkM0MCAv
KiBERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQ4QTMyMDE3RDUxRjU3MDBDQTJDNDAgLyogREZHVGll
clVwQ2hlY2tJbmplY3Rpb25QaGFzZS5oICovOyB9OwogCQkwRkQ4QTMyQTE3RDUxRjU3MDBDQTJD
NDAgLyogREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDhBMzIyMTdENTFGNTcwMENBMkM0
MCAvKiBERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oICovOyB9OwogCQkwRkQ4
QTMyQzE3RDUxRjU3MDBDQTJDNDAgLyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGls
YXRpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gMEZEOEEzMjQxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlEZWZl
cnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLzsgfTsKLQkJMEZEOUVBODkxRjI5MTYyQzAwRjMy
QkVFIC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEOUVBODcxRjI5MTYyQzAwRjMy
QkVFIC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oICovOyB9OwogCQkw
RkRCMkNDOTE3M0RBNTIwMDA3QjNDMUIgLyogRlRMQWJicmV2aWF0ZWRUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEQjJDQzcxNzNEQTUxRTAw
N0IzQzFCIC8qIEZUTEFiYnJldmlhdGVkVHlwZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkRCMkNDQTE3M0RBNTIzMDA3QjNDMUIgLyogRlRM
VmFsdWVGcm9tQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGREIyQ0M4MTczREE1MUUwMDdCM0MxQiAvKiBGVExWYWx1ZUZyb21CbG9jay5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGREIyQ0U4
MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEQjJDRTYxNzQ4MzBBMjAwN0IzQzFCIC8qIERGR1dv
cmtsaXN0LmggKi87IH07CkBAIC0yNjU4LDggKzI2NTcsNiBAQAogCQkwRkQ4QTMyMjE3RDUxRjU3
MDBDQTJDNDAgLyogREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHVG9GVExEZWZlcnJlZENvbXBpbGF0aW9uQ2Fs
bGJhY2suaDsgcGF0aCA9IGRmZy9ERkdUb0ZUTERlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQ4QTMyMzE3RDUxRjU3MDBDQTJDNDAg
LyogREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdUb0ZUTEZvck9TUkVudHJ5RGVm
ZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcDsgcGF0aCA9IGRmZy9ERkdUb0ZUTEZvck9TUkVu
dHJ5RGVmZXJyZWRDb21waWxhdGlvbkNhbGxiYWNrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZEOEEzMjQxN0Q1MUY1NzAwQ0EyQzQwIC8qIERGR1RvRlRMRm9yT1NSRW50cnlE
ZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gREZHVG9GVExGb3JPU1JFbnRyeURlZmVycmVkQ29tcGlsYXRpb25DYWxsYmFjay5oOyBw
YXRoID0gZGZnL0RGR1RvRlRMRm9yT1NSRW50cnlEZWZlcnJlZENvbXBpbGF0aW9uQ2FsbGJhY2su
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMEZEOUVBODYxRjI5MTYyQzAwRjMyQkVF
IC8qIERGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IG5hbWUgPSBERkdGaXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuY3BwOyBwYXRoID0g
ZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTBGRDlFQTg3MUYyOTE2MkMwMEYzMkJFRSAvKiBERkdGaXhlZEJ1
dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRml4ZWRCdXR0
ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmg7IHBhdGggPSBkZmcvREZHRml4ZWRCdXR0ZXJmbHlB
Y2Nlc3NVbmNhZ2luZ1BoYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREIy
Q0M3MTczREE1MUUwMDdCM0MxQiAvKiBGVExBYmJyZXZpYXRlZFR5cGVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IEZUTEFiYnJldmlhdGVkVHlwZXMuaDsgcGF0aCA9IGZ0bC9GVExBYmJyZXZpYXRlZFR5cGVz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGREIyQ0M4MTczREE1MUUwMDdCM0Mx
QiAvKiBGVExWYWx1ZUZyb21CbG9jay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGVExWYWx1ZUZyb21CbG9j
ay5oOyBwYXRoID0gZnRsL0ZUTFZhbHVlRnJvbUJsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTBGREIyQ0U1MTc0ODMwQTIwMDdCM0MxQiAvKiBERkdXb3JrbGlzdC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdXb3JrbGlzdC5jcHA7IHBhdGgg
PSBkZmcvREZHV29ya2xpc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNzA0
NSw4ICs3MDQyLDYgQEAKIAkJCQlBN0JGRjNCRjE3OTg2ODk0MDAwMkY0NjIgLyogREZHRmlsdHJh
dGlvblJlc3VsdC5oICovLAogCQkJCUE3OEE5NzZFMTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5h
bGl6ZXIuY3BwICovLAogCQkJCUE3OEE5NzZGMTc5NzM4QjgwMDlERjc0NCAvKiBERkdGaW5hbGl6
ZXIuaCAqLywKLQkJCQkwRkQ5RUE4NjFGMjkxNjJDMDBGMzJCRUUgLyogREZHRml4ZWRCdXR0ZXJm
bHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcCAqLywKLQkJCQkwRkQ5RUE4NzFGMjkxNjJDMDBGMzJC
RUUgLyogREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmggKi8sCiAJCQkJMEYy
QkRDMTIxNTFDNUQ0QTAwQ0Q4OTEwIC8qIERGR0ZpeHVwUGhhc2UuY3BwICovLAogCQkJCTBGMkJE
QzEzMTUxQzVENEEwMENEODkxMCAvKiBERkdGaXh1cFBoYXNlLmggKi8sCiAJCQkJMEYyMDE3N0Qx
RENBREMzMDAwRUE1OTUwIC8qIERGR0Zsb3dJbmRleGluZy5jcHAgKi8sCkBAIC04MzM1LDcgKzgz
MzAsNiBAQAogCQkJCUE3OEE5Nzc1MTc5NzM4QjgwMDlERjc0NCAvKiBERkdGYWlsZWRGaW5hbGl6
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3QkZGM0MwMTc5ODY4OTQwMDAyRjQ2MiAvKiBERkdG
aWx0cmF0aW9uUmVzdWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNzhBOTc3NzE3OTczOEI4MDA5
REY3NDQgLyogREZHRmluYWxpemVyLmggaW4gSGVhZGVycyAqLywKLQkJCQkwRkQ5RUE4OTFGMjkx
NjJDMDBGMzJCRUUgLyogREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwRjJCREMxNjE1MUM1RDRGMDBDRDg5MTAgLyogREZHRml4dXBQaGFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMDE3ODAxRENBREMzNTAwRUE1OTUwIC8qIERGR0Zs
b3dJbmRleGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYyMDE3ODIxRENBREQ0MjAwRUE1OTUw
IC8qIERGR0Zsb3dNYXAuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBYnN0cmFjdEludGVycHJldGVySW5saW5lcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWJzdHJhY3RJbnRlcnByZXRlcklubGluZXMuaAko
cmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBYnN0cmFj
dEludGVycHJldGVySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNjA5LDcgKzI2MDksNiBA
QCBib29sIEFic3RyYWN0SW50ZXJwcmV0ZXI8QWJzdHJhY3RTdGF0ZVR5CiAgICAgICAgIH0KICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBHZXRCdXR0ZXJm
bHlXaXRob3V0Q2FnaW5nOgogICAgIGNhc2UgQWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6CiAgICAg
Y2FzZSBSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgIGNhc2UgTnVrZVN0cnVjdHVyZUFu
ZFNldEJ1dHRlcmZseToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQXJndW1l
bnRzRWxpbWluYXRpb25QaGFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjI1Mjgz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBcmd1bWVudHNFbGltaW5hdGlvblBo
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzc4LDcgKzM3OCw2IEBAIHByaXZhdGU6CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICAgICAgICAgICAgICBjYXNlIEdldEJ1dHRlcmZs
eVdpdGhvdXRDYWdpbmc6CiAgICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgYmFyZWx5IHdvcmtz
LiBUaGUgZGFuZ2VyIGlzIHRoYXQgdGhlIEdldEJ1dHRlcmZseSBpcyB1c2VkIGJ5IHNvbWV0aGlu
ZyB0aGF0CiAgICAgICAgICAgICAgICAgICAgIC8vIGRvZXMgc29tZXRoaW5nIGVzY2FwaW5nIHRv
IGEgY2FuZGlkYXRlLiBGb3J0dW5hdGVseSwgdGhlIG9ubHkgYnV0dGVyZmx5LXVzaW5nIG9wcwog
ICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdlIGV4ZW1wdCBoZXJlIGFsc28gdXNlIHRoZSBj
YW5kaWRhdGUgZGlyZWN0bHkuIElmIHRoZXJlIGV2ZXIgd2FzIGEKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9kZmcvREZHQ2xvYmJlcml6ZS5oCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nsb2JiZXJpemUuaAkod29ya2luZyBjb3B5KQpAQCAt
MTA0NCwxMSArMTA0NCw2IEBAIHZvaWQgY2xvYmJlcml6ZShHcmFwaCYgZ3JhcGgsIE5vZGUqIG5v
ZGUKICAgICAgICAgZGVmKEhlYXBMb2NhdGlvbihCdXR0ZXJmbHlMb2MsIEpTT2JqZWN0X2J1dHRl
cmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9kZShub2RlKSk7CiAgICAgICAgIHJldHVybjsK
IAotICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKLSAgICAgICAgcmVhZChKU09i
amVjdF9idXR0ZXJmbHkpOwotICAgICAgICBkZWYoSGVhcExvY2F0aW9uKEJ1dHRlcmZseVdpdGhv
dXRDYWdpbmdMb2MsIEpTT2JqZWN0X2J1dHRlcmZseSwgbm9kZS0+Y2hpbGQxKCkpLCBMYXp5Tm9k
ZShub2RlKSk7Ci0gICAgICAgIHJldHVybjsKLQogICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKICAg
ICAgICAgZGVmKFB1cmVWYWx1ZShub2RlLCBub2RlLT5jbGFzc0luZm8oKSkpOwogICAgICAgICBy
ZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEb2VzR0MuY3BwCShyZXZp
c2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RvZXNHQy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNiBAQCBib29sIGRvZXNHQyhHcmFwaCYgZ3Jh
cGgsIE5vZGUqIG5vZGUpCiAgICAgY2FzZSBDaGVja1N0cnVjdHVyZUltbWVkaWF0ZToKICAgICBj
YXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBHZXRC
dXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgIGNhc2UgQ2hlY2tTdWJDbGFzczoKICAgICBjYXNl
IENoZWNrQXJyYXk6CiAgICAgY2FzZSBHZXRTY29wZToKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNz
VW5jYWdpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZ1BoYXNlLmNwcAkobm9uZXhp
c3RlbnQpCkBAIC0xLDE0MSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotI2luY2x1ZGUgIkRGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oIgotCi0j
aWYgRU5BQkxFKERGR19KSVQpCi0KLSNpbmNsdWRlICJERkdDbG9iYmVyaXplLmgiCi0jaW5jbHVk
ZSAiREZHR3JhcGguaCIKLSNpbmNsdWRlICJERkdQaGFzZS5oIgotI2luY2x1ZGUgIkpTQ0lubGlu
ZXMuaCIKLSNpbmNsdWRlIDx3dGYvSW5kZXhTZXQuaD4KLQotbmFtZXNwYWNlIEpTQyB7IG5hbWVz
cGFjZSBERkcgewotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBGaXhlZEJ1dHRlcmZseUFjY2Vzc1Vu
Y2FnaW5nUGhhc2UgOiBwdWJsaWMgUGhhc2UgewotcHVibGljOgotICAgIEZpeGVkQnV0dGVyZmx5
QWNjZXNzVW5jYWdpbmdQaGFzZShHcmFwaCYgZ3JhcGgpCi0gICAgICAgIDogUGhhc2UoZ3JhcGgs
ICJmaXhlZCBidXR0ZXJmbHkgYWNjZXNzIHVuY2FnaW5nIikKLSAgICB7Ci0gICAgfQotICAgIAot
ICAgIGJvb2wgcnVuKCkKLSAgICB7Ci0gICAgICAgIEluZGV4U2V0PE5vZGUqPiBuZWVkQ2FnaW5n
OwotICAgICAgICAKLSAgICAgICAgYm9vbCBjaGFuZ2VkID0gdHJ1ZTsKLSAgICAgICAgd2hpbGUg
KGNoYW5nZWQpIHsKLSAgICAgICAgICAgIGNoYW5nZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGZv
ciAoQmFzaWNCbG9jayogYmxvY2sgOiBtX2dyYXBoLmJsb2Nrc0luTmF0dXJhbE9yZGVyKCkpIHsK
LSAgICAgICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgOiAqYmxvY2spIHsKLSAgICAgICAgICAg
ICAgICAgICAgc3dpdGNoIChub2RlLT5vcCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBDaGVjayBhZ2FpbiBob3cgYmFkbHkgd2UgbmVlZCB0aGlzLiBJdCBtaWdodCBub3QgYmUg
d29ydGggaXQuCi0gICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNzUwNDQKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeU9m
ZnNldDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeU9mZnNldDoKLSAgICAgICAgICAg
ICAgICAgICAgY2FzZSBHZXRHZXR0ZXJTZXR0ZXJCeU9mZnNldDoKLSAgICAgICAgICAgICAgICAg
ICAgY2FzZSBHZXRBcnJheUxlbmd0aDoKLSAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRWZWN0
b3JMZW5ndGg6Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgICAgIAotICAgICAgICAgICAgICAgICAgICBjYXNlIFVwc2lsb246Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAobmVlZENhZ2luZy5jb250YWlucyhub2RlLT5waGkoKSkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCB8PSBuZWVkQ2FnaW5nLmFkZChub2RlLT5j
aGlsZDEoKS5ub2RlKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBjb3VsZCBwb3NzaWJseSBtYWtlIHRoaXMgbW9y
ZSBwcmVjaXNlLiBXZSByZWFsbHkgb25seSBjYXJlIGFib3V0IHdoZXRoZXIKLSAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIHRoaXMgY2FuIHJlYWQvd3JpdGUgYnV0dGVyZmx5IGNvbnRlbnRzLgot
ICAgICAgICAgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE3NDkyNgotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFhY2Nlc3Nlc092
ZXJsYXAobV9ncmFwaCwgbm9kZSwgSGVhcCkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAKLSAgICAgICAgICAgICAgICAgICAgICAg
IE5vZGUqIHRvRXhjbHVkZSA9IG51bGxwdHI7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiAo
bm9kZS0+aGFzQXJyYXlNb2RlKCkgJiYgbm9kZS0+YXJyYXlNb2RlKCkudHlwZSgpICE9IEFycmF5
OjpEb3VibGUpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPm9w
KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYXNlIEFycmF5UHVzaDoKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9FeGNsdWRlID0gbV9ncmFwaC52YXJBcmdDaGls
ZChub2RlLCAwKS5ub2RlKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgQXJyYXlJbmRleE9mOgotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB0b0V4Y2x1ZGUgPSBtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIG5vZGUtPm51bUNoaWxkcmVuKCkgPT0gMyA/IDIgOiAzKS5ub2RlKCk7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNhc2UgQXJyYXlQb3A6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRXhj
bHVkZSA9IG5vZGUtPmNoaWxkMigpLm5vZGUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBIYXNJbmRleGVk
UHJvcGVydHk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvRXhjbHVkZSA9IG5v
ZGUtPmNoaWxkMygpLm5vZGUoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSBHZXRCeVZhbDoKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdG9FeGNsdWRlID0gbm9kZS0+Y2hpbGQzKCkubm9kZSgp
OwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIFB1dEJ5VmFsOgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0b0V4Y2x1ZGUgPSBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDMpLm5vZGUoKTsKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICAgICAg
fQotCi0gICAgICAgICAgICAgICAgICAgICAgICBtX2dyYXBoLmRvVG9DaGlsZHJlbigKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBub2RlLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFsmXSAoRWRnZSYgZWRnZSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAo
ZWRnZS5ub2RlKCkgIT0gdG9FeGNsdWRlKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2hhbmdlZCB8PSBuZWVkQ2FnaW5nLmFkZChlZGdlLm5vZGUoKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIH0KLSAg
ICAgICAgfQotICAgICAgICAKLSAgICAgICAgYm9vbCBkaWRPcHRpbWl6ZSA9IGZhbHNlOwotICAg
ICAgICBmb3IgKEJhc2ljQmxvY2sqIGJsb2NrIDogbV9ncmFwaC5ibG9ja3NJbk5hdHVyYWxPcmRl
cigpKSB7Ci0gICAgICAgICAgICBmb3IgKE5vZGUqIG5vZGUgOiAqYmxvY2spIHsKLSAgICAgICAg
ICAgICAgICBpZiAobm9kZS0+b3AoKSA9PSBHZXRCdXR0ZXJmbHkgJiYgIW5lZWRDYWdpbmcuY29u
dGFpbnMobm9kZSkpIHsKLSAgICAgICAgICAgICAgICAgICAgbm9kZS0+c2V0T3AoR2V0QnV0dGVy
Zmx5V2l0aG91dENhZ2luZyk7Ci0gICAgICAgICAgICAgICAgICAgIGRpZE9wdGltaXplID0gdHJ1
ZTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAg
Ci0gICAgICAgIHJldHVybiBkaWRPcHRpbWl6ZTsKLSAgICB9Ci19OwotCi19IC8vIGFub255bW91
cyBuYW1lc3BhY2UKLQotYm9vbCBwZXJmb3JtRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZyhH
cmFwaCYgZ3JhcGgpCi17Ci0gICAgcmV0dXJuIHJ1blBoYXNlPEZpeGVkQnV0dGVyZmx5QWNjZXNz
VW5jYWdpbmdQaGFzZT4oZ3JhcGgpOwotfQotCi19IH0gLy8gbmFtZXNwYWNlIEpTQzo6REZHCi0K
LSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdGaXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdp
bmdQaGFzZS5oCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR0ZpeGVkQnV0dGVyZmx5QWNjZXNzVW5jYWdpbmdQaGFzZS5oCShub25leGlzdGVudCkKQEAg
LTEsNDAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBt
ZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaWYgRU5BQkxFKERG
R19KSVQpCi0KLW5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsKLQotY2xhc3MgR3JhcGg7
Ci0KLS8vIFR1cm5zIEdldEJ1dHRlcmZseSBpbnRvIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdpbmcg
aWYgYWxsIG9mIHRoZSBhY2Nlc3NlcyBhcmUgZml4ZWQtb2Zmc2V0LgotYm9vbCBwZXJmb3JtRml4
ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZyhHcmFwaCYpOwotCi19IH0gLy8gbmFtZXNwYWNlIEpT
Qzo6REZHCi0KLSNlbmRpZiAvLyBFTkFCTEUoREZHX0pJVCkKLQpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2RmZy9ERkdGaXh1cFBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0ZpeHVwUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xNDc1LDggKzE0NzUsNyBAQCBwcml2YXRlOgogICAgICAgICBjYXNlIENoZWNrU3RydWN0
dXJlOgogICAgICAgICBjYXNlIENoZWNrQ2VsbDoKICAgICAgICAgY2FzZSBDcmVhdGVUaGlzOgot
ICAgICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHlXaXRo
b3V0Q2FnaW5nOiB7CisgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OiB7CiAgICAgICAgICAgICBm
aXhFZGdlPENlbGxVc2U+KG5vZGUtPmNoaWxkMSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0hlYXBMb2NhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdIZWFwTG9jYXRp
b24uY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0hlYXBMb2NhdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk2LDEwICs5Niw2IEBAIHZvaWQg
cHJpbnRJbnRlcm5hbChQcmludFN0cmVhbSYgb3V0LCBMb2MKICAgICAgICAgb3V0LnByaW50KCJC
dXR0ZXJmbHlMb2MiKTsKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKLSAgICBjYXNlIEJ1dHRl
cmZseVdpdGhvdXRDYWdpbmdMb2M6Ci0gICAgICAgIG91dC5wcmludCgiQnV0dGVyZmx5V2l0aG91
dENhZ2luZ0xvYyIpOwotICAgICAgICByZXR1cm47Ci0gICAgICAgIAogICAgIGNhc2UgQ2hlY2tU
eXBlSW5mb0ZsYWdzTG9jOgogICAgICAgICBvdXQucHJpbnQoIkNoZWNrVHlwZUluZm9GbGFnc0xv
YyIpOwogICAgICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0hlYXBMb2NhdGlvbi5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHSGVhcExvY2F0aW9uLmgJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHSGVhcExvY2F0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYg
QEAgZW51bSBMb2NhdGlvbktpbmQgewogICAgIEFycmF5TGVuZ3RoTG9jLAogICAgIFZlY3Rvckxl
bmd0aExvYywKICAgICBCdXR0ZXJmbHlMb2MsCi0gICAgQnV0dGVyZmx5V2l0aG91dENhZ2luZ0xv
YywKICAgICBDaGVja1R5cGVJbmZvRmxhZ3NMb2MsCiAgICAgT3ZlcnJpZGVzSGFzSW5zdGFuY2VM
b2MsCiAgICAgQ2xvc3VyZVZhcmlhYmxlTG9jLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdOb2RlVHlwZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHTm9kZVR5cGUuaAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdOb2RlVHlwZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNyArMjA0LDYgQEAg
bmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBERkcgewogICAgIG1hY3JvKEFsbG9jYXRlUHJvcGVy
dHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJlc3VsdFN0b3JhZ2UpIFwKICAgICBt
YWNybyhSZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlLCBOb2RlTXVzdEdlbmVyYXRlIHwgTm9kZVJl
c3VsdFN0b3JhZ2UpIFwKICAgICBtYWNybyhHZXRCdXR0ZXJmbHksIE5vZGVSZXN1bHRTdG9yYWdl
KSBcCi0gICAgbWFjcm8oR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZywgTm9kZVJlc3VsdFN0b3Jh
Z2UpIFwKICAgICBtYWNybyhOdWtlU3RydWN0dXJlQW5kU2V0QnV0dGVyZmx5LCBOb2RlTXVzdEdl
bmVyYXRlKSBcCiAgICAgbWFjcm8oQ2hlY2tBcnJheSwgTm9kZU11c3RHZW5lcmF0ZSkgXAogICAg
IG1hY3JvKEFycmF5aWZ5LCBOb2RlTXVzdEdlbmVyYXRlKSBcCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDcgKzQxLDYgQEAK
ICNpbmNsdWRlICJERkdDcml0aWNhbEVkZ2VCcmVha2luZ1BoYXNlLmgiCiAjaW5jbHVkZSAiREZH
RENFUGhhc2UuaCIKICNpbmNsdWRlICJERkdGYWlsZWRGaW5hbGl6ZXIuaCIKLSNpbmNsdWRlICJE
RkdGaXhlZEJ1dHRlcmZseUFjY2Vzc1VuY2FnaW5nUGhhc2UuaCIKICNpbmNsdWRlICJERkdGaXh1
cFBoYXNlLmgiCiAjaW5jbHVkZSAiREZHR3JhcGhTYWZlcG9pbnQuaCIKICNpbmNsdWRlICJERkdJ
bnRlZ2VyQ2hlY2tDb21iaW5pbmdQaGFzZS5oIgpAQCAtNDY0LDcgKzQ2Myw2IEBAIFBsYW46OkNv
bXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxlSW5UaHIKICAgICAgICAgUlVOX1BIQVNFKHBlcmZv
cm1DRkEpOwogICAgICAgICBSVU5fUEhBU0UocGVyZm9ybUdsb2JhbFN0b3JlQmFycmllckluc2Vy
dGlvbik7CiAgICAgICAgIFJVTl9QSEFTRShwZXJmb3JtU3RvcmVCYXJyaWVyQ2x1c3RlcmluZyk7
Ci0gICAgICAgIFJVTl9QSEFTRShwZXJmb3JtRml4ZWRCdXR0ZXJmbHlBY2Nlc3NVbmNhZ2luZyk7
CiAgICAgICAgIGlmIChPcHRpb25zOjp1c2VNb3ZIaW50UmVtb3ZhbCgpKQogICAgICAgICAgICAg
UlVOX1BIQVNFKHBlcmZvcm1Nb3ZIaW50UmVtb3ZhbCk7CiAgICAgICAgIFJVTl9QSEFTRShwZXJm
b3JtQ2xlYW5VcCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1ByZWRpY3Rp
b25Qcm9wYWdhdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1ByZWRpY3Rpb25Qcm9wYWdhdGlvblBoYXNlLmNwcAkocmV2aXNpb24gMjI1Mjgz
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdQcmVkaWN0aW9uUHJvcGFnYXRpb25Q
aGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg1NSw3ICs4NTUsNiBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0g
ICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKICAgICAgICAgY2FzZSBHZXRJ
bmRleGVkUHJvcGVydHlTdG9yYWdlOgogICAgICAgICBjYXNlIEFsbG9jYXRlUHJvcGVydHlTdG9y
YWdlOgogICAgICAgICBjYXNlIFJlYWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2U6IHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU2FmZVRvRXhlY3V0ZS5oCShyZXZpc2lvbiAy
MjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NhZmVUb0V4ZWN1dGUuaAko
d29ya2luZyBjb3B5KQpAQCAtMjQwLDcgKzI0MCw2IEBAIGJvb2wgc2FmZVRvRXhlY3V0ZShBYnN0
cmFjdFN0YXRlVHlwZSYgc3QKICAgICBjYXNlIENoZWNrU3RydWN0dXJlT3JFbXB0eToKICAgICBj
YXNlIEdldEV4ZWN1dGFibGU6CiAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgY2FzZSBHZXRC
dXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgIGNhc2UgQ2FsbERPTUdldHRlcjoKICAgICBjYXNl
IENhbGxET006CiAgICAgY2FzZSBDaGVja1N1YkNsYXNzOgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCShyZXZpc2lv
biAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDEzLDcgKzQ0MTMsNiBAQCB2b2lkIFNwZWN1
bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5vZGUpCiAgICAgICAgIGJyZWFrOwogICAgICAgICAK
ICAgICBjYXNlIEdldEJ1dHRlcmZseToKLSAgICBjYXNlIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdp
bmc6CiAgICAgICAgIGNvbXBpbGVHZXRCdXR0ZXJmbHkobm9kZSk7CiAgICAgICAgIGJyZWFrOwog
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUNjQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQ2NC5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHU3BlY3VsYXRpdmVKSVQ2NC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2MjQsNyArNDYyNCw2
IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgYnJl
YWs7CiAgICAgICAgIAogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgotICAgIGNhc2UgR2V0QnV0dGVy
Zmx5V2l0aG91dENhZ2luZzoKICAgICAgICAgY29tcGlsZUdldEJ1dHRlcmZseShub2RlKTsKICAg
ICAgICAgYnJlYWs7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3Vs
YXRpdmVKSVQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQuY3BwCShyZXZpc2lvbiAyMjUyODMpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzM1MCw3
ICs3MzUwLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZVNwcmVhZChOb2RlKgogICAg
ICAgICBzbG93UGF0aC5hcHBlbmQobV9qaXQuYnJhbmNoMzIoTWFjcm9Bc3NlbWJsZXI6OkFib3Zl
LCBzY3JhdGNoMUdQUiwgVHJ1c3RlZEltbTMyKENvbnRpZ3VvdXNTaGFwZSAtIEludDMyU2hhcGUp
KSk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhhcmd1
bWVudCwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgpKSwgbGVuZ3RoR1BSKTsKLSAgICAgICAg
bV9qaXQuY2FnZShHaWdhY2FnZTo6SlNWYWx1ZSwgbGVuZ3RoR1BSKTsgLy8gV2UgbWF5IGRvIGEg
ZG91YmxlIG1lbWNweSBsb29wIGJlbG93LCBzbyB3ZSBjb25zZXJ2YXRpdmVseSBjYWdlLgogICAg
ICAgICBtX2ppdC5sb2FkMzIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MobGVuZ3RoR1BSLCBCdXR0
ZXJmbHk6Om9mZnNldE9mUHVibGljTGVuZ3RoKCkpLCBsZW5ndGhHUFIpOwogICAgICAgICBzdGF0
aWNfYXNzZXJ0KHNpemVvZihKU1ZhbHVlKSA9PSA4ICYmIDEgPDwgMyA9PSA4LCAiVGhpcyBpcyBz
dHJvbmdseSBhc3N1bWVkIGluIHRoZSBjb2RlIGJlbG93LiIpOwogICAgICAgICBtX2ppdC5tb3Zl
KGxlbmd0aEdQUiwgc2NyYXRjaDFHUFIpOwpAQCAtNzM2MSw3ICs3MzYwLDYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZVNwcmVhZChOb2RlKgogICAgICAgICBtX2ppdC5zdG9yZTMyKGxl
bmd0aEdQUiwgTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU0ZpeGVkQXJyYXk6
Om9mZnNldE9mU2l6ZSgpKSk7CiAKICAgICAgICAgbV9qaXQubG9hZFB0cihNYWNyb0Fzc2VtYmxl
cjo6QWRkcmVzcyhhcmd1bWVudCwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNldCgpKSwgc2NyYXRj
aDFHUFIpOwotICAgICAgICBtX2ppdC5jYWdlKEdpZ2FjYWdlOjpKU1ZhbHVlLCBzY3JhdGNoMUdQ
Uik7IC8vIFdlIG1heSBkbyBhIGRvdWJsZSBtZW1jcHkgbG9vcCBiZWxvdywgc28gd2UgY29uc2Vy
dmF0aXZlbHkgY2FnZS4KIAogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6SnVtcExpc3QgZG9uZTsK
IApAQCAtNzcyNyw3ICs3NzI1LDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUFycmF5
U2xpY2UoTgogICAgIEdQUlJlZyByZXN1bHRCdXR0ZXJmbHkgPSB0ZW1wMi5ncHIoKTsKIAogICAg
IG1faml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocmVzdWx0R1BSLCBKU09iamVj
dDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCByZXN1bHRCdXR0ZXJmbHkpOwotICAgIG1faml0LmNhZ2Uo
R2lnYWNhZ2U6OkpTVmFsdWUsIHJlc3VsdEJ1dHRlcmZseSk7CiAgICAgbV9qaXQuemVyb0V4dGVu
ZDMyVG9QdHIodGVtcEdQUiwgdGVtcEdQUik7CiAgICAgbV9qaXQuemVyb0V4dGVuZDMyVG9QdHIo
bG9hZEluZGV4LCBsb2FkSW5kZXgpOwogICAgIGF1dG8gZG9uZSA9IG1faml0LmJyYW5jaFB0cihN
YWNyb0Fzc2VtYmxlcjo6QWJvdmVPckVxdWFsLCBsb2FkSW5kZXgsIHRlbXBHUFIpOwpAQCAtODU0
Niw3ICs4NTQzLDYgQEAgdm9pZCBTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZUdldEJ1dHRlcmZseQog
ICAgIEdQUlJlZyByZXN1bHRHUFIgPSByZXN1bHQuZ3ByKCk7CiAgICAgCiAgICAgbV9qaXQubG9h
ZFB0cihKSVRDb21waWxlcjo6QWRkcmVzcyhiYXNlR1BSLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zm
c2V0KCkpLCByZXN1bHRHUFIpOwotICAgIG1faml0LmNhZ2UoR2lnYWNhZ2U6OkpTVmFsdWUsIHJl
c3VsdEdQUik7CiAKICAgICBzdG9yYWdlUmVzdWx0KHJlc3VsdEdQUiwgbm9kZSk7CiB9CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1R5cGVDaGVja0hvaXN0aW5nUGhhc2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHVHlwZUNoZWNrSG9p
c3RpbmdQaGFzZS5jcHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9kZmcvREZHVHlwZUNoZWNrSG9pc3RpbmdQaGFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1
NSw3ICsyNTUsNiBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgIGNhc2UgUmVhbGxvY2F0ZVBy
b3BlcnR5U3RvcmFnZToKICAgICAgICAgICAgICAgICBjYXNlIE51a2VTdHJ1Y3R1cmVBbmRTZXRC
dXR0ZXJmbHk6CiAgICAgICAgICAgICAgICAgY2FzZSBHZXRCdXR0ZXJmbHk6Ci0gICAgICAgICAg
ICAgICAgY2FzZSBHZXRCdXR0ZXJmbHlXaXRob3V0Q2FnaW5nOgogICAgICAgICAgICAgICAgIGNh
c2UgR2V0QnlWYWw6CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbERpcmVjdDoKICAgICAg
ICAgICAgICAgICBjYXNlIFB1dEJ5VmFsOgpAQCAtMzMyLDcgKzMzMSw2IEBAIHByaXZhdGU6CiAg
ICAgICAgICAgICAgICAgY2FzZSBQdXRTdHJ1Y3R1cmU6CiAgICAgICAgICAgICAgICAgY2FzZSBS
ZWFsbG9jYXRlUHJvcGVydHlTdG9yYWdlOgogICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVy
Zmx5OgotICAgICAgICAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5V2l0aG91dENhZ2luZzoKICAg
ICAgICAgICAgICAgICBjYXNlIEdldEJ5VmFsOgogICAgICAgICAgICAgICAgIGNhc2UgUHV0QnlW
YWxEaXJlY3Q6CiAgICAgICAgICAgICAgICAgY2FzZSBQdXRCeVZhbDoKSW5kZXg6IFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTENhcGFiaWxpdGllcy5jcHAJKHJldmlzaW9uIDIyNTI4
MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMQ2FwYWJpbGl0aWVzLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzAsNyArNzAsNiBAQCBpbmxpbmUgQ2FwYWJpbGl0eUxldmVsIGNhbkNv
bXBpbGUoTm9kZSogCiAgICAgY2FzZSBBcnJheWlmeVRvU3RydWN0dXJlOgogICAgIGNhc2UgUHV0
U3RydWN0dXJlOgogICAgIGNhc2UgR2V0QnV0dGVyZmx5OgotICAgIGNhc2UgR2V0QnV0dGVyZmx5
V2l0aG91dENhZ2luZzoKICAgICBjYXNlIE5ld09iamVjdDoKICAgICBjYXNlIE5ld1N0cmluZ09i
amVjdDoKICAgICBjYXNlIE5ld0FycmF5OgpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0
bC9GVExMb3dlckRGR1RvQjMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9mdGwvRlRMTG93ZXJERkdUb0IzLmNwcAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2Z0bC9GVExMb3dlckRGR1RvQjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03
MTMsNyArNzEzLDYgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGNvbXBpbGVEZWxldGVCeVZhbCgp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgR2V0QnV0dGVyZmx5OgotICAgICAg
ICBjYXNlIEdldEJ1dHRlcmZseVdpdGhvdXRDYWdpbmc6CiAgICAgICAgICAgICBjb21waWxlR2V0
QnV0dGVyZmx5KCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb25zdGFudFN0
b3JhZ2VQb2ludGVyOgpAQCAtMzM4Miw4ICszMzgxLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNv
bXBpbGVHZXRCdXR0ZXJmbHkoKQogICAgIHsKICAgICAgICAgTFZhbHVlIGJ1dHRlcmZseSA9IG1f
b3V0LmxvYWRQdHIobG93Q2VsbChtX25vZGUtPmNoaWxkMSgpKSwgbV9oZWFwcy5KU09iamVjdF9i
dXR0ZXJmbHkpOwotICAgICAgICBpZiAobV9ub2RlLT5vcCgpICE9IEdldEJ1dHRlcmZseVdpdGhv
dXRDYWdpbmcpCi0gICAgICAgICAgICBidXR0ZXJmbHkgPSBjYWdlZChHaWdhY2FnZTo6SlNWYWx1
ZSwgYnV0dGVyZmx5KTsKICAgICAgICAgc2V0U3RvcmFnZShidXR0ZXJmbHkpOwogICAgIH0KIApJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vzcy5j
cHAJKHJldmlzaW9uIDIyNTI4MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzMsNyArMTczLDYgQEAgSklUOjpK
dW1wTGlzdCBKSVQ6OmVtaXREb3VibGVMb2FkKEluc3RydQogICAgIAogICAgIGJhZFR5cGUgPSBw
YXRjaGFibGVCcmFuY2gzMihOb3RFcXVhbCwgcmVnVDIsIFRydXN0ZWRJbW0zMihEb3VibGVTaGFw
ZSkpOwogICAgIGxvYWRQdHIoQWRkcmVzcyhyZWdUMCwgSlNPYmplY3Q6OmJ1dHRlcmZseU9mZnNl
dCgpKSwgcmVnVDIpOwotICAgIGNhZ2UoR2lnYWNhZ2U6OkpTVmFsdWUsIHJlZ1QyKTsKICAgICBz
bG93Q2FzZXMuYXBwZW5kKGJyYW5jaDMyKEFib3ZlT3JFcXVhbCwgcmVnVDEsIEFkZHJlc3MocmVn
VDIsIEJ1dHRlcmZseTo6b2Zmc2V0T2ZQdWJsaWNMZW5ndGgoKSkpKTsKICAgICBsb2FkRG91Ymxl
KEJhc2VJbmRleChyZWdUMiwgcmVnVDEsIFRpbWVzRWlnaHQpLCBmcFJlZ1QwKTsKICAgICBzbG93
Q2FzZXMuYXBwZW5kKGJyYW5jaERvdWJsZShEb3VibGVOb3RFcXVhbE9yVW5vcmRlcmVkLCBmcFJl
Z1QwLCBmcFJlZ1QwKSk7CkBAIC0zNDMsOCArMzQyLDYgQEAgSklUOjpKdW1wTGlzdCBKSVQ6OmVt
aXRHZW5lcmljQ29udGlndW91cwogICAgIGJhZFR5cGUgPSBwYXRjaGFibGVCcmFuY2gzMihOb3RF
cXVhbCwgcmVnVDIsIFRydXN0ZWRJbW0zMihpbmRleGluZ1NoYXBlKSk7CiAgICAgCiAgICAgbG9h
ZFB0cihBZGRyZXNzKHJlZ1QwLCBKU09iamVjdDo6YnV0dGVyZmx5T2Zmc2V0KCkpLCByZWdUMik7
Ci0gICAgaWYgKGluZGV4aW5nU2hhcGUgPT0gRG91YmxlU2hhcGUpCi0gICAgICAgIGNhZ2UoR2ln
YWNhZ2U6OkpTVmFsdWUsIHJlZ1QyKTsKICAgICBKdW1wIG91dE9mQm91bmRzID0gYnJhbmNoMzIo
QWJvdmVPckVxdWFsLCByZWdUMSwgQWRkcmVzcyhyZWdUMiwgQnV0dGVyZmx5OjpvZmZzZXRPZlB1
YmxpY0xlbmd0aCgpKSk7CiAKICAgICBMYWJlbCBzdG9yZVJlc3VsdCA9IGxhYmVsKCk7CkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CdXR0ZXJmbHkuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9CdXR0ZXJmbHkuaAkocmV2aXNpb24gMjI1
MjgzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5LmgJKHdvcmtp
bmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNiBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogICAgIGNo
YXIqIHBvaW50ZXIoKSB7IHJldHVybiByZWludGVycHJldF9jYXN0PGNoYXIqPih0aGlzKTsgfQot
ICAgIEJ1dHRlcmZseSogY2FnZWQoKSB7IHJldHVybiBHaWdhY2FnZTo6Y2FnZWQoR2lnYWNhZ2U6
OkpTVmFsdWUsIHRoaXMpOyB9CiAgICAgCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZklu
ZGV4aW5nSGVhZGVyKCkgeyByZXR1cm4gSW5kZXhpbmdIZWFkZXI6Om9mZnNldE9mSW5kZXhpbmdI
ZWFkZXIoKTsgfQogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZBcnJheUJ1ZmZlcigpIHsg
cmV0dXJuIG9mZnNldE9mSW5kZXhpbmdIZWFkZXIoKSArIEluZGV4aW5nSGVhZGVyOjpvZmZzZXRP
ZkFycmF5QnVmZmVyKCk7IH0KQEAgLTEzMSw3ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgQXJyYXlT
dG9yYWdlKiBhcnJheVN0b3JhZ2UoKSB7IHJldHVybiBpbmRleGluZ1BheWxvYWQ8QXJyYXlTdG9y
YWdlPigpOyB9CiAgICAgQ29udGlndW91c0pTVmFsdWVzIGNvbnRpZ3VvdXNJbnQzMigpIHsgcmV0
dXJuIENvbnRpZ3VvdXNKU1ZhbHVlcyhpbmRleGluZ1BheWxvYWQ8V3JpdGVCYXJyaWVyPFVua25v
d24+PigpLCB2ZWN0b3JMZW5ndGgoKSk7IH0KIAotICAgIENvbnRpZ3VvdXNEb3VibGVzIGNvbnRp
Z3VvdXNEb3VibGUoKSB7IHJldHVybiBDb250aWd1b3VzRG91YmxlcyhjYWdlZCgpLT5pbmRleGlu
Z1BheWxvYWQ8ZG91YmxlPigpLCB2ZWN0b3JMZW5ndGgoKSk7IH0KKyAgICBDb250aWd1b3VzRG91
YmxlcyBjb250aWd1b3VzRG91YmxlKCkgeyByZXR1cm4gQ29udGlndW91c0RvdWJsZXMoaW5kZXhp
bmdQYXlsb2FkPGRvdWJsZT4oKSwgdmVjdG9yTGVuZ3RoKCkpOyB9CiAgICAgQ29udGlndW91c0pT
VmFsdWVzIGNvbnRpZ3VvdXMoKSB7IHJldHVybiBDb250aWd1b3VzSlNWYWx1ZXMoaW5kZXhpbmdQ
YXlsb2FkPFdyaXRlQmFycmllcjxVbmtub3duPj4oKSwgdmVjdG9yTGVuZ3RoKCkpOyB9CiAgICAg
CiAgICAgc3RhdGljIEJ1dHRlcmZseSogZnJvbUNvbnRpZ3VvdXMoV3JpdGVCYXJyaWVyPFVua25v
d24+KiBjb250aWd1b3VzKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQnV0
dGVyZmx5SW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0J1dHRlcmZseUlubGluZXMuaAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvQnV0dGVyZmx5SW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDcsOCArMTA3LDYgQEAgaW5saW5lIEJ1dHRlcmZseSogQnV0dGVyZmx5OjpjcmVhdGVPckdybwog
ICAgIGlmICghb2xkQnV0dGVyZmx5KQogICAgICAgICByZXR1cm4gY3JlYXRlKHZtLCBpbnRlbmRl
ZE93bmVyLCAwLCBuZXdQcm9wZXJ0eUNhcGFjaXR5LCBmYWxzZSwgSW5kZXhpbmdIZWFkZXIoKSwg
MCk7CiAKLSAgICBvbGRCdXR0ZXJmbHkgPSBvbGRCdXR0ZXJmbHktPmNhZ2VkKCk7Ci0KICAgICBz
aXplX3QgcHJlQ2FwYWNpdHkgPSBvbGRCdXR0ZXJmbHktPmluZGV4aW5nSGVhZGVyKCktPnByZUNh
cGFjaXR5KHN0cnVjdHVyZSk7CiAgICAgc2l6ZV90IGluZGV4aW5nUGF5bG9hZFNpemVJbkJ5dGVz
ID0gb2xkQnV0dGVyZmx5LT5pbmRleGluZ0hlYWRlcigpLT5pbmRleGluZ1BheWxvYWRTaXplSW5C
eXRlcyhzdHJ1Y3R1cmUpOwogICAgIGJvb2wgaGFzSW5kZXhpbmdIZWFkZXIgPSBzdHJ1Y3R1cmUt
Pmhhc0luZGV4aW5nSGVhZGVyKGludGVuZGVkT3duZXIpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMjI1MjgzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
MTczLDcgKzMxNzMsNyBAQCBib29sIEpTT2JqZWN0OjppbmNyZWFzZVZlY3Rvckxlbmd0aChWTSYg
CiAKIGJvb2wgSlNPYmplY3Q6OmVuc3VyZUxlbmd0aFNsb3coVk0mIHZtLCB1bnNpZ25lZCBsZW5n
dGgpCiB7Ci0gICAgQnV0dGVyZmx5KiBidXR0ZXJmbHkgPSB0aGlzLT5idXR0ZXJmbHkoKS0+Y2Fn
ZWQoKTsKKyAgICBCdXR0ZXJmbHkqIGJ1dHRlcmZseSA9IHRoaXMtPmJ1dHRlcmZseSgpOwogICAg
IAogICAgIEFTU0VSVChsZW5ndGggPD0gTUFYX1NUT1JBR0VfVkVDVE9SX0xFTkdUSCk7CiAgICAg
QVNTRVJUKGhhc0NvbnRpZ3VvdXMoaW5kZXhpbmdUeXBlKCkpIHx8IGhhc0ludDMyKGluZGV4aW5n
VHlwZSgpKSB8fCBoYXNEb3VibGUoaW5kZXhpbmdUeXBlKCkpIHx8IGhhc1VuZGVjaWRlZChpbmRl
eGluZ1R5cGUoKSkpOwpAQCAtMzIzMyw3ICszMjMzLDcgQEAgdm9pZCBKU09iamVjdDo6cmVhbGxv
Y2F0ZUFuZFNocmlua0J1dHRlcgogICAgIEFTU0VSVCghbV9idXR0ZXJmbHktPmluZGV4aW5nSGVh
ZGVyKCktPnByZUNhcGFjaXR5KHN0cnVjdHVyZSgpKSk7CiAKICAgICBEZWZlckdDIGRlZmVyR0Mo
dm0uaGVhcCk7Ci0gICAgQnV0dGVyZmx5KiBuZXdCdXR0ZXJmbHkgPSBidXR0ZXJmbHkoKS0+Y2Fn
ZWQoKS0+cmVzaXplQXJyYXkodm0sIHRoaXMsIHN0cnVjdHVyZSgpLCAwLCBBcnJheVN0b3JhZ2U6
OnNpemVGb3IobGVuZ3RoKSk7CisgICAgQnV0dGVyZmx5KiBuZXdCdXR0ZXJmbHkgPSBidXR0ZXJm
bHkoKS0+cmVzaXplQXJyYXkodm0sIHRoaXMsIHN0cnVjdHVyZSgpLCAwLCBBcnJheVN0b3JhZ2U6
OnNpemVGb3IobGVuZ3RoKSk7CiAgICAgbmV3QnV0dGVyZmx5LT5zZXRWZWN0b3JMZW5ndGgobGVu
Z3RoKTsKICAgICBuZXdCdXR0ZXJmbHktPnNldFB1YmxpY0xlbmd0aChsZW5ndGgpOwogICAgIFdU
Rjo6c3RvcmVTdG9yZUZlbmNlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>