<?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>10393</bug_id>
          
          <creation_ts>2006-08-14 16:46:21 -0700</creation_ts>
          <short_desc>Autogenerate NodeIterator and TreeWalker</short_desc>
          <delta_ts>2019-02-06 09:02:59 -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>DOM</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>cdumez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>52567</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-08-14 16:46:21 -0700</bug_when>
    <thetext>These should be autogenerated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52569</commentid>
    <comment_count>1</comment_count>
      <attachid>10026</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-08-14 16:53:47 -0700</bug_when>
    <thetext>Created attachment 10026
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52574</commentid>
    <comment_count>2</comment_count>
      <attachid>10026</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-08-14 17:45:29 -0700</bug_when>
    <thetext>Comment on attachment 10026
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>52575</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-08-14 17:54:19 -0700</bug_when>
    <thetext>Committed revision 15866</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502882</commentid>
    <comment_count>4</comment_count>
    <who name="Lucas Forschler">lforschler</who>
    <bug_when>2019-02-06 09:02:59 -0800</bug_when>
    <thetext>Mass moving XML DOM bugs to the &quot;DOM&quot; Component.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>10026</attachid>
            <date>2006-08-14 16:53:47 -0700</date>
            <delta_ts>2006-08-14 17:45:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>node-iterator-tree-walker-autogen.txt</filename>
            <type>text/plain</type>
            <size>28848</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDE1ODU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzUgQEAKKzIwMDYtMDgt
MTQgIEFuZGVycyBDYXJsc3NvbiAgPGFjYXJsc3NvbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5k
YXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM5MworICAgICAgICBBdXRvZ2VuZXJhdGUgTm9k
ZUl0ZXJhdG9yIGFuZCBUcmVlV2Fsa2VyLgorICAgICAgICAKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy5tYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgQWRkIG5ldyBmaWxlcy4KKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3MvanMv
SlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTTm9k
ZUl0ZXJhdG9yOjptYXJrKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1RyZWVXYWxrZXJDdXN0
b20uY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTVHJlZVdhbGtlcjo6bWFyayk6Cisg
ICAgICAgIAorICAgICAgICAqIGJpbmRpbmdzL2pzL2tqc190cmF2ZXJzYWwuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL2tqc190cmF2ZXJzYWwuaDoKKyAgICAgICAgUmVtb3ZlIGltcGxlbWVu
dGF0aW9ucyBvZiBET01Ob2RlSXRlcmF0b3IgYW5kIERPTVRyZWVXYWxrZXIuCisKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbToKKyAgICAgICAgQWRkICJDdXN0
b21NYXJrRnVuY3Rpb24iIGF0dHJpYnV0ZSBmb3IgY2xhc3NlcyB3aGVyZSBtYXJrKCkgbmVlZHMg
dG8gYmUgb3ZlcnJpZGRlbi4KKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET00u
bW06CisgICAgICAgICgtW0RPTU5vZGVJdGVyYXRvciBkZXRhY2hdKToKKyAgICAgICAgKiBkb20v
Tm9kZUl0ZXJhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVJdGVyYXRvcjo6ZGV0YWNo
KToKKyAgICAgICAgKiBkb20vTm9kZUl0ZXJhdG9yLmg6CisgICAgICAgIEdldCByaWQgb2YgZXhj
ZXB0aW9uIGluIGRldGFjaCwgaXQgaXNuJ3QgdXNlZCBhdCBhbGwgYW5kIHRoaXMgZnVuY3Rpb24g
Y2FuJ3QgdGhyb3cgYW4gZXhjZXB0aW9uIGFjY29yZGluZyB0byB0aGUgc3BlYy4KKyAgICAgICAg
KiBkb20vTm9kZUl0ZXJhdG9yLmlkbDogQWRkZWQuCisgICAgICAgICogZG9tL1RyZWVXYWxrZXIu
aWRsOiBBZGRlZC4KKwogMjAwNi0wOC0xMSAgQW5kZXJzIENhcmxzc29uICA8YWNhcmxzc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbi4KSW5kZXg6IERlcml2ZWRTb3Vy
Y2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMTU4
NTUpCisrKyBEZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsNiArMTE4
LDcgQEAgYWxsIDogXAogICAgIEpTTXV0YXRpb25FdmVudC5oIFwKICAgICBKU05vZGUuaCBcCiAg
ICAgSlNOb2RlRmlsdGVyLmggXAorCUpTTm9kZUl0ZXJhdG9yLmggXAogICAgIEpTTm90YXRpb24u
aCBcCiAJSlNPdmVyZmxvd0V2ZW50LmggXAogICAgIEpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgg
XApAQCAtMTM0LDYgKzEzNSw3IEBAIGFsbCA6IFwKICAgICBKU1NWR1NWR0VsZW1lbnQuaCBcCiAg
ICAgSlNTVkdUcmFuc2Zvcm0uaCBcCiAgICAgSlNUZXh0LmggXAorCUpTVHJlZVdhbGtlci5oIFwK
ICAgICBKU1VJRXZlbnQuaCBcCiAgICAgSlNYUGF0aEV2YWx1YXRvci5oIFwKICAgICBKU1hQYXRo
RXhwcmVzc2lvbi5oIFwKSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9u
IDE1ODU1KQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MCw2ICs2MCwxMyBAQAogCQkxQTRBMkRGMjBBMUI4NTJBMDBDODA3RjggLyogSlNI
VE1MQXBwbGV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUE0QTJERUUwQTFCODUyQTAwQzgwN0Y4IC8qIEpTSFRNTEFwcGxldEVsZW1lbnQu
aCAqLzsgfTsKIAkJMUE2OTM4MDEwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTY5MzdGRjBB
MTExMDBBMDBDMTI3RkUgLyogVGV4dERvY3VtZW50LmNwcCAqLzsgfTsKIAkJMUE2OTM4MDIwQTEx
MTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMUE2OTM4MDAwQTExMTAwQTAwQzEyN0ZFIC8qIFRleHREb2N1
bWVudC5oICovOyB9OworCQkxQTc1MEQ1QzBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzUw
RDVBMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuY3BwICovOyB9OworCQkxQTc1MEQ1
RDBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTc1MEQ1QjBBOTBERUUxMDAwRkYyMTUgLyogSlNU
cmVlV2Fsa2VyLmggKi87IH07CisJCTFBNzUwRDg4MEE5MEUzOTQwMDBGRjIxNSAvKiBOb2RlSXRl
cmF0b3IuaWRsIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTc1MEQ4NzBBOTBFMzk0MDAwRkYyMTUgLyogTm9kZUl0ZXJhdG9yLmlkbCAqLzsgfTsKKwkJ
MUE3NTBEOEQwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzUwRDhCMEE5MEU1MjEwMDBG
RjIxNSAvKiBKU05vZGVJdGVyYXRvci5jcHAgKi87IH07CisJCTFBNzUwRDhFMEE5MEU1MjEwMDBG
RjIxNSAvKiBKU05vZGVJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMUE3NTBEOEMwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9y
LmggKi87IH07CisJCTFBNzUwREQ0MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvckN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QTc1MEREMzBBOTBFNzI5MDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwICovOyB9
OworCQkxQTc1MEUzNDBBOTBGODlGMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzUwRTMzMEE5
MEY4OUYwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXJDdXN0b20uY3BwICovOyB9OwogCQkxQTc2MjlE
NTBBMDc0MjUxMDA5ODlGNUIgLyogWFBhdGhHcmFtbWFyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzYyOUQzMEEwNzQyNTEwMDk4OUY1QiAvKiBY
UGF0aEdyYW1tYXIuY3BwICovOyB9OwogCQkxQTc2MjlENjBBMDc0MjUxMDA5ODlGNUIgLyogWFBh
dGhHcmFtbWFyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTc2MjlENDBBMDc0MjUxMDA5ODlGNUIgLyogWFBhdGhHcmFtbWFyLmggKi87IH07CiAJCTFB
NzYyQzczMEEwNzRGMjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNzYyQzZCMEEwNzRGMjYwMDk4
OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNwcCAqLzsgfTsKQEAgLTE2NjcsNiArMTY3NCwxNCBA
QAogCQkxQTRBMkRFRTBBMUI4NTJBMDBDODA3RjggLyogSlNIVE1MQXBwbGV0RWxlbWVudC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNIVE1MQXBwbGV0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY5MzdGRjBBMTExMDBBMDBDMTI3RkUgLyog
VGV4dERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
ZXh0RG9jdW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQTY5MzgwMDBB
MTExMDBBMDBDMTI3RkUgLyogVGV4dERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBUZXh0RG9jdW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MUE3NTBEM0MwQTkwREUzNTAwMEZGMjE1IC8qIFRyZWVXYWxrZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFRyZWVXYWxrZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkx
QTc1MEQ1QTBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU1RyZWVXYWxrZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQkxQTc1MEQ1QjBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2Vy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1RyZWVXYWxrZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE3NTBEODcwQTkwRTM5NDAwMEZGMjE1IC8qIE5v
ZGVJdGVyYXRvci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTm9kZUl0ZXJhdG9yLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE3NTBEOEIwQTkwRTUyMTAwMEZGMjE1IC8q
IEpTTm9kZUl0ZXJhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBKU05vZGVJdGVyYXRvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTFBNzUw
RDhDMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gSlNOb2RlSXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMUE3NTBERDMwQTkwRTcyOTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9t
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUl0ZXJhdG9y
Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUE3NTBFMzMwQTkwRjg5
RjAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlckN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJMUE3NjI5RDMwQTA3NDI1MTAwOTg5RjVCIC8qIFhQYXRoR3JhbW1hci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWFBhdGhHcmFtbWFyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUE3NjI5RDQwQTA3NDI1MTAwOTg5RjVC
IC8qIFhQYXRoR3JhbW1hci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFBh
dGhHcmFtbWFyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBNzYyQzZCMEEwNzRG
MjYwMDk4OUY1QiAvKiBKU1hQYXRoRXZhbHVhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU1hQYXRoRXZhbHVhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM2OTEsNiArMzcwNiw4IEBACiAJCQkJMTREQzBEMzYwOUZFRDA3MzAwN0Iw
MjM1IC8qIEpTTm9kZS5oICovLAogCQkJCTE0MTE1QjcwMDlGODRDRDYwMENBNEZDMSAvKiBKU05v
ZGVGaWx0ZXIuY3BwICovLAogCQkJCTE0MTE1QjcxMDlGODRDRDYwMENBNEZDMSAvKiBKU05vZGVG
aWx0ZXIuaCAqLywKKwkJCQkxQTc1MEQ4QjBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0
b3IuY3BwICovLAorCQkJCTFBNzUwRDhDMEE5MEU1MjEwMDBGRjIxNSAvKiBKU05vZGVJdGVyYXRv
ci5oICovLAogCQkJCTY1REYzMUU5MDlEMUNDNjAwMDBCRTMyNSAvKiBKU05vdGF0aW9uLmNwcCAq
LywKIAkJCQk2NURGMzFFQTA5RDFDQzYwMDAwQkUzMjUgLyogSlNOb3RhdGlvbi5oICovLAogCQkJ
CTFBMEQ1NzNFMEE1Qzc4NjcwMDdFREQ0QyAvKiBKU092ZXJmbG93RXZlbnQuY3BwICovLApAQCAt
MzcxOSw2ICszNzM2LDggQEAKIAkJCQlBODMzQzBGNjBBMkM1MTMzMDBENTc2NjQgLyogSlNTVkdU
cmFuc2Zvcm0uaCAqLywKIAkJCQk2NURGMzFFRjA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmNw
cCAqLywKIAkJCQk2NURGMzFGMDA5RDFDQzYwMDAwQkUzMjUgLyogSlNUZXh0LmggKi8sCisJCQkJ
MUE3NTBENUEwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlci5jcHAgKi8sCisJCQkJMUE3
NTBENUIwQTkwREVFMTAwMEZGMjE1IC8qIEpTVHJlZVdhbGtlci5oICovLAogCQkJCUE4NjYyOUNB
MDlEQTJCNDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuY3BwICovLAogCQkJCUE4NjYyOUM5MDlEQTJC
NDcwMDk2MzNBNSAvKiBKU1VJRXZlbnQuaCAqLywKIAkJCQk2NURGMzFGMTA5RDFDQzYwMDAwQkUz
MjUgLyogSlNXaGVlbEV2ZW50LmNwcCAqLywKQEAgLTQ5MzAsNiArNDk0OSw4IEBACiAJCQkJQTgy
NkU4QUQwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1lbnRDb25zdHJ1Y3Rvci5j
cHAgKi8sCiAJCQkJQTgyNkU4QUMwQTFBOEYyMzAwQ0QxQkI2IC8qIEpTSFRNTE9wdGlvbkVsZW1l
bnRDb25zdHJ1Y3Rvci5oICovLAogCQkJCTQ0OEFEMjdBMEE0ODEzNzkwMDIzRDE3OSAvKiBKU0hU
TUxPcHRpb25zQ29sbGVjdGlvbkN1c3RvbS5jcHAgKi8sCisJCQkJMUE3NTBERDMwQTkwRTcyOTAw
MEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcCAqLywKKwkJCQkxQTc1MEUzMzBBOTBG
ODlGMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLywKIAkJCQk5M0I3MEQ0MTA5
RUIwQzdDMDA5RDg0NjggLyogSlNYTUxIdHRwUmVxdWVzdC5jcHAgKi8sCiAJCQkJOTNCNzBENDIw
OUVCMEM3QzAwOUQ4NDY4IC8qIEpTWE1MSHR0cFJlcXVlc3QuaCAqLywKIAkJCQk5M0I3MEQ0NTA5
RUIwQzdDMDA5RDg0NjggLyogSlNYU0xUUHJvY2Vzc29yLmNwcCAqLywKQEAgLTU1NTMsNiArNTU3
NCw3IEBACiAJCQkJODU0RkU3MjkwQTIyOTdCRTAwNThEN0FEIC8qIE5vZGVGaWx0ZXJDb25kaXRp
b24uaCAqLywKIAkJCQk4NTRGRTcyQTBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0ZXJhdG9yLmNw
cCAqLywKIAkJCQk4NTRGRTcyQjBBMjI5N0JFMDA1OEQ3QUQgLyogTm9kZUl0ZXJhdG9yLmggKi8s
CisJCQkJMUE3NTBEODcwQTkwRTM5NDAwMEZGMjE1IC8qIE5vZGVJdGVyYXRvci5pZGwgKi8sCiAJ
CQkJQTgxODcyMTYwOTc3RDNDMDAwNTgyNkQ5IC8qIE5vZGVMaXN0LmNwcCAqLywKIAkJCQlBODE4
NzIxMDA5NzdEM0MwMDA1ODI2RDkgLyogTm9kZUxpc3QuaCAqLywKIAkJCQlBOEVBN0VCNzBBMTk0
NUQwMDBBOEVGNUYgLyogTm90YXRpb24uY3BwICovLApAQCAtNTU4Miw2ICs1NjA0LDcgQEAKIAkJ
CQk4NTRGRTcyRDBBMjI5N0JFMDA1OEQ3QUQgLyogVHJhdmVyc2FsLmggKi8sCiAJCQkJODU0RkU3
MkUwQTIyOTdCRTAwNThEN0FEIC8qIFRyZWVXYWxrZXIuY3BwICovLAogCQkJCTg1NEZFNzJGMEEy
Mjk3QkUwMDU4RDdBRCAvKiBUcmVlV2Fsa2VyLmggKi8sCisJCQkJMUE3NTBEM0MwQTkwREUzNTAw
MEZGMjE1IC8qIFRyZWVXYWxrZXIuaWRsICovLAogCQkJCTg1MDMxQjM3MEE0NEVGQzcwMEY5OTJF
MCAvKiBVSUV2ZW50LmNwcCAqLywKIAkJCQk4NTAzMUIzODBBNDRFRkM3MDBGOTkyRTAgLyogVUlF
dmVudC5oICovLAogCQkJCTg1MDMxQjM5MEE0NEVGQzcwMEY5OTJFMCAvKiBVSUV2ZW50V2l0aEtl
eVN0YXRlLmggKi8sCkBAIC02Mzk4LDYgKzY0MjEsOCBAQAogCQkJCTFBQ0U1M0U4MEE4RDE4RTcw
MDIyOTQ3RCAvKiBET01QYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQ0U1M0VCMEE4RDE4
RTcwMDIyOTQ3RCAvKiBYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUNFNTNG
NzBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQkxQTc1MEQ1RDBBOTBERUUxMDAwRkYyMTUgLyogSlNUcmVlV2Fsa2VyLmggaW4gSGVhZGVycyAq
LywKKwkJCQkxQTc1MEQ4RTBBOTBFNTIxMDAwRkYyMTUgLyogSlNOb2RlSXRlcmF0b3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Npbmcg
PSAwOwogCQl9OwpAQCAtNjQ5MSw2ICs2NTE2LDcgQEAKIAkJCQkxQ0Q0NDE4RTBBNENFNzZGMDBB
MDA3QUIgLyogbm9ydGhFYXN0U291dGhXZXN0UmVzaXplQ3Vyc29yLnRpZmYgaW4gUmVzb3VyY2Vz
ICovLAogCQkJCTFDRDQ0MThGMEE0Q0U3NkYwMEEwMDdBQiAvKiBub3J0aFNvdXRoUmVzaXplQ3Vy
c29yLnRpZmYgaW4gUmVzb3VyY2VzICovLAogCQkJCTFDRDQ0MTkwMEE0Q0U3NkYwMEEwMDdBQiAv
KiBub3J0aFdlc3RTb3V0aEVhc3RSZXNpemVDdXJzb3IudGlmZiBpbiBSZXNvdXJjZXMgKi8sCisJ
CQkJMUE3NTBEODgwQTkwRTM5NDAwMEZGMjE1IC8qIE5vZGVJdGVyYXRvci5pZGwgaW4gUmVzb3Vy
Y2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAw
OwogCQl9OwpAQCAtNzI3MSw2ICs3Mjk3LDEwIEBACiAJCQkJMUFDRTUzRTcwQThEMThFNzAwMjI5
NDdEIC8qIERPTVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNFNTNFQTBBOEQxOEU3
MDAyMjk0N0QgLyogWE1MU2VyaWFsaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUNFNTNG
NjBBOEQxOTQ3MDAyMjk0N0QgLyogSlNYTUxTZXJpYWxpemVyLmNwcCBpbiBTb3VyY2VzICovLAor
CQkJCTFBNzUwRDVDMEE5MERFRTEwMDBGRjIxNSAvKiBKU1RyZWVXYWxrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCisJCQkJMUE3NTBEOEQwQTkwRTUyMTAwMEZGMjE1IC8qIEpTTm9kZUl0ZXJhdG9yLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTFBNzUwREQ0MEE5MEU3MjkwMDBGRjIxNSAvKiBKU05vZGVJ
dGVyYXRvckN1c3RvbS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQTc1MEUzNDBBOTBGODlGMDAw
RkYyMTUgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJ
CXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRleDogYmlu
ZGluZ3MvanMvSlNOb2RlSXRlcmF0b3JDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdz
L2pzL0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIGJpbmRpbmdzL2pz
L0pTTm9kZUl0ZXJhdG9yQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzNCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSAtIFN1aXRlIDMz
MCwKKyAqIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBLgorICovCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSlNOb2RlSXRlcmF0b3IuaCIKKworI2luY2x1ZGUgIk5vZGVGaWx0ZXIu
aCIKKyNpbmNsdWRlICJOb2RlSXRlcmF0b3IuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIEpTTm9kZUl0ZXJhdG9yOjptYXJrKCkKK3sKKyAgICBtX2ltcGwtPmZpbHRlcigpLT5tYXJr
KCk7CisgICAgCisgICAgRE9NT2JqZWN0OjptYXJrKCk7Cit9CisKK30KSW5kZXg6IGJpbmRpbmdz
L2pzL0pTVHJlZVdhbGtlckN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gYmluZGluZ3MvanMvSlNU
cmVlV2Fsa2VyQ3VzdG9tLmNwcAkocmV2aXNpb24gMCkKKysrIGJpbmRpbmdzL2pzL0pTVHJlZVdh
bGtlckN1c3RvbS5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhl
IGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0
b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkpTVHJlZVdhbGtlci5oIgorCisjaW5jbHVkZSAiTm9kZUZpbHRlci5oIgorI2luY2x1ZGUg
IlRyZWVXYWxrZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIAordm9pZCBKU1RyZWVX
YWxrZXI6Om1hcmsoKQoreworICAgIG1faW1wbC0+ZmlsdGVyKCktPm1hcmsoKTsKKyAgICAKKyAg
ICBET01PYmplY3Q6Om1hcmsoKTsKK30KKyAgICAKK30KSW5kZXg6IGJpbmRpbmdzL2pzL2tqc190
cmF2ZXJzYWwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGJpbmRpbmdzL2pzL2tqc190cmF2ZXJzYWwuY3Bw
CShyZXZpc2lvbiAxNTg1NCkKKysrIGJpbmRpbmdzL2pzL2tqc190cmF2ZXJzYWwuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw5NSArMzMsNiBAQCBuYW1lc3BhY2UgS0pTIHsKIAogLy8gLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQogCi1jb25zdCBDbGFzc0luZm8gRE9NTm9kZUl0ZXJhdG9yOjppbmZvID0geyAi
Tm9kZUl0ZXJhdG9yIiwgMCwgJkRPTU5vZGVJdGVyYXRvclRhYmxlLCAwIH07Ci0vKgotQGJlZ2lu
IERPTU5vZGVJdGVyYXRvclRhYmxlIDUKLSAgcm9vdCAgICAgICAgICAgICAgICAgICAgICAgICAg
RE9NTm9kZUl0ZXJhdG9yOjpSb290ICAgICAgICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9u
bHkKLSAgd2hhdFRvU2hvdyAgICAgICAgICAgICAgICAgICAgRE9NTm9kZUl0ZXJhdG9yOjpXaGF0
VG9TaG93ICAgICAgICAgICAgIERvbnREZWxldGV8UmVhZE9ubHkKLSAgZmlsdGVyICAgICAgICAg
ICAgICAgICAgICAgICAgRE9NTm9kZUl0ZXJhdG9yOjpGaWx0ZXIgICAgICAgICAgICAgICAgIERv
bnREZWxldGV8UmVhZE9ubHkKLSAgZXhwYW5kRW50aXR5UmVmZXJlbmNlcyAgICAgICAgRE9NTm9k
ZUl0ZXJhdG9yOjpFeHBhbmRFbnRpdHlSZWZlcmVuY2VzIERvbnREZWxldGV8UmVhZE9ubHkKLSAg
cmVmZXJlbmNlTm9kZSBET01Ob2RlSXRlcmF0b3I6OlJlZmVyZW5jZU5vZGUgIERvbnREZWxldGV8
UmVhZE9ubHkKLSAgcG9pbnRlckJlZm9yZVJlZmVyZW5jZU5vZGUgRE9NTm9kZUl0ZXJhdG9yOjpQ
b2ludGVyQmVmb3JlUmVmZXJlbmNlTm9kZSAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotQGVu
ZAotQGJlZ2luIERPTU5vZGVJdGVyYXRvclByb3RvVGFibGUgMwotICBuZXh0Tm9kZSAgICAgIERP
TU5vZGVJdGVyYXRvcjo6TmV4dE5vZGUgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIHBy
ZXZpb3VzTm9kZSAgRE9NTm9kZUl0ZXJhdG9yOjpQcmV2aW91c05vZGUgICBEb250RGVsZXRlfEZ1
bmN0aW9uIDAKLSAgZGV0YWNoICAgICAgICBET01Ob2RlSXRlcmF0b3I6OkRldGFjaCAgICAgICAg
IERvbnREZWxldGV8RnVuY3Rpb24gMAotQGVuZAotKi8KLUtKU19ERUZJTkVfUFJPVE9UWVBFKERP
TU5vZGVJdGVyYXRvclByb3RvKQotS0pTX0lNUExFTUVOVF9QUk9UT0ZVTkMoRE9NTm9kZUl0ZXJh
dG9yUHJvdG9GdW5jKQotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEUoIkRPTU5vZGVJdGVyYXRvciIs
RE9NTm9kZUl0ZXJhdG9yUHJvdG8sRE9NTm9kZUl0ZXJhdG9yUHJvdG9GdW5jKQotCi1ET01Ob2Rl
SXRlcmF0b3I6OkRPTU5vZGVJdGVyYXRvcihFeGVjU3RhdGUgKmV4ZWMsIE5vZGVJdGVyYXRvciAq
bmkpCi0gIDogbV9pbXBsKG5pKQotewotICBzZXRQcm90b3R5cGUoRE9NTm9kZUl0ZXJhdG9yUHJv
dG86OnNlbGYoZXhlYykpOwotfQotCi1ET01Ob2RlSXRlcmF0b3I6On5ET01Ob2RlSXRlcmF0b3Io
KQotewotICBTY3JpcHRJbnRlcnByZXRlcjo6Zm9yZ2V0RE9NT2JqZWN0KG1faW1wbC5nZXQoKSk7
Ci19Ci0KLXZvaWQgRE9NTm9kZUl0ZXJhdG9yOjptYXJrKCkKLXsKLSAgICBtX2ltcGwtPmZpbHRl
cigpLT5tYXJrKCk7Ci0gICAgRE9NT2JqZWN0OjptYXJrKCk7Ci19Ci0KLWJvb2wgRE9NTm9kZUl0
ZXJhdG9yOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlm
aWVyJiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgcmV0dXJuIGdldFN0
YXRpY1ZhbHVlU2xvdDxET01Ob2RlSXRlcmF0b3IsIERPTU9iamVjdD4oZXhlYywgJkRPTU5vZGVJ
dGVyYXRvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1KU1ZhbHVlICpE
T01Ob2RlSXRlcmF0b3I6OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9r
ZW4pIGNvbnN0Ci17Ci0gIE5vZGVJdGVyYXRvciAmbmkgPSAqbV9pbXBsOwotICBzd2l0Y2ggKHRv
a2VuKSB7Ci0gIGNhc2UgUm9vdDoKLSAgICByZXR1cm4gdG9KUyhleGVjLG5pLnJvb3QoKSk7Ci0g
IGNhc2UgV2hhdFRvU2hvdzoKLSAgICByZXR1cm4ganNOdW1iZXIobmkud2hhdFRvU2hvdygpKTsK
LSAgY2FzZSBGaWx0ZXI6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYyxuaS5maWx0ZXIoKSk7Ci0gIGNh
c2UgRXhwYW5kRW50aXR5UmVmZXJlbmNlczoKLSAgICByZXR1cm4ganNCb29sZWFuKG5pLmV4cGFu
ZEVudGl0eVJlZmVyZW5jZXMoKSk7Ci0gIGNhc2UgUmVmZXJlbmNlTm9kZToKLSAgICByZXR1cm4g
dG9KUyhleGVjLG5pLnJlZmVyZW5jZU5vZGUoKSk7Ci0gIGNhc2UgUG9pbnRlckJlZm9yZVJlZmVy
ZW5jZU5vZGU6Ci0gICAgcmV0dXJuIGpzQm9vbGVhbihuaS5wb2ludGVyQmVmb3JlUmVmZXJlbmNl
Tm9kZSgpKTsKLSBkZWZhdWx0OgotICAgcmV0dXJuIDA7Ci0gIH0KLX0KLQotSlNWYWx1ZSAqRE9N
Tm9kZUl0ZXJhdG9yUHJvdG9GdW5jOjpjYWxsQXNGdW5jdGlvbihFeGVjU3RhdGUgKmV4ZWMsIEpT
T2JqZWN0ICp0aGlzT2JqLCBjb25zdCBMaXN0ICYpCi17Ci0gIGlmICghdGhpc09iai0+aW5oZXJp
dHMoJktKUzo6RE9NTm9kZUl0ZXJhdG9yOjppbmZvKSkKLSAgICByZXR1cm4gdGhyb3dFcnJvcihl
eGVjLCBUeXBlRXJyb3IpOwotICBET01FeGNlcHRpb25UcmFuc2xhdG9yIGV4Y2VwdGlvbihleGVj
KTsKLSAgTm9kZUl0ZXJhdG9yICZub2RlSXRlcmF0b3IgPSAqc3RhdGljX2Nhc3Q8RE9NTm9kZUl0
ZXJhdG9yICo+KHRoaXNPYmopLT5pbXBsKCk7Ci0gIHN3aXRjaCAoaWQpIHsKLSAgY2FzZSBET01O
b2RlSXRlcmF0b3I6OlByZXZpb3VzTm9kZToKLSAgICByZXR1cm4gdG9KUyhleGVjLG5vZGVJdGVy
YXRvci5wcmV2aW91c05vZGUoZXhjZXB0aW9uKSk7Ci0gIGNhc2UgRE9NTm9kZUl0ZXJhdG9yOjpO
ZXh0Tm9kZToKLSAgICByZXR1cm4gdG9KUyhleGVjLG5vZGVJdGVyYXRvci5uZXh0Tm9kZShleGNl
cHRpb24pKTsKLSAgY2FzZSBET01Ob2RlSXRlcmF0b3I6OkRldGFjaDoKLSAgICBub2RlSXRlcmF0
b3IuZGV0YWNoKGV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gIH0KLSAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci19Ci0KLUpTVmFsdWUgKnRvSlMoRXhlY1N0YXRlICpleGVj
LCBOb2RlSXRlcmF0b3IgKm5pKQotewotICByZXR1cm4gY2FjaGVET01PYmplY3Q8Tm9kZUl0ZXJh
dG9yLCBET01Ob2RlSXRlcmF0b3I+KGV4ZWMsIG5pKTsKLX0KLQotCi0vLyAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCi0KIGNvbnN0IENsYXNzSW5mbyBET01Ob2RlRmlsdGVyOjppbmZvID0geyAiTm9kZUZpbHRl
ciIsIDAsIDAsIDAgfTsKIC8qCiBAYmVnaW4gRE9NTm9kZUZpbHRlclByb3RvVGFibGUgMQpAQCAt
MTg1LDExMiArOTYsNiBAQCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU1Zh
CiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotY29uc3QgQ2xhc3NJbmZvIERPTVRyZWVXYWxrZXI6
OmluZm8gPSB7ICJUcmVlV2Fsa2VyIiwgMCwgJkRPTVRyZWVXYWxrZXJUYWJsZSwgMCB9OwotLyoK
LUBiZWdpbiBET01UcmVlV2Fsa2VyVGFibGUgNQotICByb290ICAgICAgICAgICAgICAgICAgRE9N
VHJlZVdhbGtlcjo6Um9vdCAgICAgICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIHdoYXRU
b1Nob3cgICAgICAgICAgICBET01UcmVlV2Fsa2VyOjpXaGF0VG9TaG93ICAgICAgIERvbnREZWxl
dGV8UmVhZE9ubHkKLSAgZmlsdGVyICAgICAgICAgICAgICAgIERPTVRyZWVXYWxrZXI6OkZpbHRl
ciAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBleHBhbmRFbnRpdHlSZWZlcmVuY2Vz
IERPTVRyZWVXYWxrZXI6OkV4cGFuZEVudGl0eVJlZmVyZW5jZXMgIERvbnREZWxldGV8UmVhZE9u
bHkKLSAgY3VycmVudE5vZGUgICAgICAgICAgIERPTVRyZWVXYWxrZXI6OkN1cnJlbnROb2RlICAg
ICAgRG9udERlbGV0ZQotQGVuZAotQGJlZ2luIERPTVRyZWVXYWxrZXJQcm90b1RhYmxlIDcKLSAg
cGFyZW50Tm9kZSAgICBET01UcmVlV2Fsa2VyOjpQYXJlbnROb2RlICAgICAgIERvbnREZWxldGV8
RnVuY3Rpb24gMAotICBmaXJzdENoaWxkICAgIERPTVRyZWVXYWxrZXI6OkZpcnN0Q2hpbGQgICAg
ICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi0gIGxhc3RDaGlsZCAgICAgRE9NVHJlZVdhbGtlcjo6
TGFzdENoaWxkICAgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDAKLSAgcHJldmlvdXNTaWJsaW5n
IERPTVRyZWVXYWxrZXI6OlByZXZpb3VzU2libGluZyAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlv
biAwCi0gIG5leHRTaWJsaW5nICAgRE9NVHJlZVdhbGtlcjo6TmV4dFNpYmxpbmcgICAgICBEb250
RGVsZXRlfEZ1bmN0aW9uIDAKLSAgcHJldmlvdXNOb2RlICBET01UcmVlV2Fsa2VyOjpQcmV2aW91
c05vZGUgICAgIERvbnREZWxldGV8RnVuY3Rpb24gMAotICBuZXh0Tm9kZSAgICAgIERPTVRyZWVX
YWxrZXI6Ok5leHROb2RlICAgICAgICAgRG9udERlbGV0ZXxGdW5jdGlvbiAwCi1AZW5kCi0qLwot
S0pTX0RFRklORV9QUk9UT1RZUEUoRE9NVHJlZVdhbGtlclByb3RvKQotS0pTX0lNUExFTUVOVF9Q
Uk9UT0ZVTkMoRE9NVHJlZVdhbGtlclByb3RvRnVuYykKLUtKU19JTVBMRU1FTlRfUFJPVE9UWVBF
KCJET01UcmVlV2Fsa2VyIixET01UcmVlV2Fsa2VyUHJvdG8sRE9NVHJlZVdhbGtlclByb3RvRnVu
YykKLQotRE9NVHJlZVdhbGtlcjo6RE9NVHJlZVdhbGtlcihFeGVjU3RhdGUgKmV4ZWMsIFRyZWVX
YWxrZXIgKnR3KQotICA6IG1faW1wbCh0dykKLXsKLSAgc2V0UHJvdG90eXBlKERPTVRyZWVXYWxr
ZXJQcm90bzo6c2VsZihleGVjKSk7Ci19Ci0KLURPTVRyZWVXYWxrZXI6On5ET01UcmVlV2Fsa2Vy
KCkKLXsKLSAgU2NyaXB0SW50ZXJwcmV0ZXI6OmZvcmdldERPTU9iamVjdChtX2ltcGwuZ2V0KCkp
OwotfQotCi12b2lkIERPTVRyZWVXYWxrZXI6Om1hcmsoKQotewotICAgIG1faW1wbC0+ZmlsdGVy
KCktPm1hcmsoKTsKLSAgICBET01PYmplY3Q6Om1hcmsoKTsKLX0KLQotYm9vbCBET01UcmVlV2Fs
a2VyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVy
JiBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgcmV0dXJuIGdldFN0YXRp
Y1ZhbHVlU2xvdDxET01UcmVlV2Fsa2VyLCBET01PYmplY3Q+KGV4ZWMsICZET01UcmVlV2Fsa2Vy
VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLUpTVmFsdWUgKkRPTVRyZWVX
YWxrZXI6OmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0
Ci17Ci0gIFRyZWVXYWxrZXIgJnR3ID0gKm1faW1wbDsKLSAgc3dpdGNoICh0b2tlbikgewotICBj
YXNlIFJvb3Q6Ci0gICAgcmV0dXJuIHRvSlMoZXhlYyx0dy5yb290KCkpOwotICBjYXNlIFdoYXRU
b1Nob3c6Ci0gICAgcmV0dXJuIGpzTnVtYmVyKHR3LndoYXRUb1Nob3coKSk7Ci0gIGNhc2UgRmls
dGVyOgotICAgIHJldHVybiB0b0pTKGV4ZWMsdHcuZmlsdGVyKCkpOwotICBjYXNlIEV4cGFuZEVu
dGl0eVJlZmVyZW5jZXM6Ci0gICAgcmV0dXJuIGpzQm9vbGVhbih0dy5leHBhbmRFbnRpdHlSZWZl
cmVuY2VzKCkpOwotICBjYXNlIEN1cnJlbnROb2RlOgotICAgIHJldHVybiB0b0pTKGV4ZWMsdHcu
Y3VycmVudE5vZGUoKSk7Ci0gIGRlZmF1bHQ6Ci0gICAgcmV0dXJuIDA7Ci0gIH0KLX0KLQotdm9p
ZCBET01UcmVlV2Fsa2VyOjpwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZw
cm9wZXJ0eU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBKU1ZhbHVlICp2YWx1ZSwg
aW50IGF0dHIpCi17Ci0gIGlmIChwcm9wZXJ0eU5hbWUgPT0gImN1cnJlbnROb2RlIikgewotICAg
IERPTUV4Y2VwdGlvblRyYW5zbGF0b3IgZXhjZXB0aW9uKGV4ZWMpOwotICAgIG1faW1wbC0+c2V0
Q3VycmVudE5vZGUodG9Ob2RlKHZhbHVlKSwgZXhjZXB0aW9uKTsKLSAgfQotICBlbHNlCi0gICAg
SlNPYmplY3Q6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBhdHRyKTsKLX0KLQotSlNW
YWx1ZSAqRE9NVHJlZVdhbGtlclByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmKQotewotICBpZiAoIXRoaXNPYmot
PmluaGVyaXRzKCZLSlM6OkRPTVRyZWVXYWxrZXI6OmluZm8pKQotICAgIHJldHVybiB0aHJvd0Vy
cm9yKGV4ZWMsIFR5cGVFcnJvcik7Ci0gIFRyZWVXYWxrZXIgJnRyZWVXYWxrZXIgPSAqc3RhdGlj
X2Nhc3Q8RE9NVHJlZVdhbGtlciAqPih0aGlzT2JqKS0+aW1wbCgpOwotICBzd2l0Y2ggKGlkKSB7
Ci0gICAgY2FzZSBET01UcmVlV2Fsa2VyOjpQYXJlbnROb2RlOgotICAgICAgcmV0dXJuIHRvSlMo
ZXhlYyx0cmVlV2Fsa2VyLnBhcmVudE5vZGUoKSk7Ci0gICAgY2FzZSBET01UcmVlV2Fsa2VyOjpG
aXJzdENoaWxkOgotICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0cmVlV2Fsa2VyLmZpcnN0Q2hpbGQo
KSk7Ci0gICAgY2FzZSBET01UcmVlV2Fsa2VyOjpMYXN0Q2hpbGQ6Ci0gICAgICByZXR1cm4gdG9K
UyhleGVjLHRyZWVXYWxrZXIubGFzdENoaWxkKCkpOwotICAgIGNhc2UgRE9NVHJlZVdhbGtlcjo6
UHJldmlvdXNTaWJsaW5nOgotICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0cmVlV2Fsa2VyLnByZXZp
b3VzU2libGluZygpKTsKLSAgICBjYXNlIERPTVRyZWVXYWxrZXI6Ok5leHRTaWJsaW5nOgotICAg
ICAgcmV0dXJuIHRvSlMoZXhlYyx0cmVlV2Fsa2VyLm5leHRTaWJsaW5nKCkpOwotICAgIGNhc2Ug
RE9NVHJlZVdhbGtlcjo6UHJldmlvdXNOb2RlOgotICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0cmVl
V2Fsa2VyLnByZXZpb3VzTm9kZSgpKTsKLSAgICBjYXNlIERPTVRyZWVXYWxrZXI6Ok5leHROb2Rl
OgotICAgICAgcmV0dXJuIHRvSlMoZXhlYyx0cmVlV2Fsa2VyLm5leHROb2RlKCkpOwotICB9Ci0g
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotfQotCi1KU1ZhbHVlICp0b0pTKEV4ZWNTdGF0ZSAqZXhl
YywgVHJlZVdhbGtlciAqdHcpCi17Ci0gIHJldHVybiBjYWNoZURPTU9iamVjdDxUcmVlV2Fsa2Vy
LCBET01UcmVlV2Fsa2VyPihleGVjLCB0dyk7Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQog
SlNOb2RlRmlsdGVyQ29uZGl0aW9uOjpKU05vZGVGaWx0ZXJDb25kaXRpb24oSlNPYmplY3QgKiBf
ZmlsdGVyKQogICAgIDogZmlsdGVyKCBfZmlsdGVyICkKIHsKSW5kZXg6IGJpbmRpbmdzL2pzL2tq
c190cmF2ZXJzYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5kaW5ncy9qcy9ranNfdHJhdmVyc2FsLmgJ
KHJldmlzaW9uIDE1ODU0KQorKysgYmluZGluZ3MvanMva2pzX3RyYXZlcnNhbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMywzNSArMjMsMTQgQEAKIAogI2luY2x1ZGUgIk5vZGVGaWx0ZXIuaCIKICNp
bmNsdWRlICJOb2RlRmlsdGVyQ29uZGl0aW9uLmgiCi0jaW5jbHVkZSAiTm9kZUl0ZXJhdG9yLmgi
Ci0jaW5jbHVkZSAiVHJlZVdhbGtlci5oIgogI2luY2x1ZGUgImtqc19kb20uaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGVGaWx0ZXI7Ci0gICAgY2xhc3MgTm9kZUl0ZXJh
dG9yOwotICAgIGNsYXNzIFRyZWVXYWxrZXI7CiB9CiAKIG5hbWVzcGFjZSBLSlMgewogCi0gIGNs
YXNzIERPTU5vZGVJdGVyYXRvciA6IHB1YmxpYyBET01PYmplY3QgewotICBwdWJsaWM6Ci0gICAg
RE9NTm9kZUl0ZXJhdG9yKEV4ZWNTdGF0ZSosIFdlYkNvcmU6Ok5vZGVJdGVyYXRvciopOwotICAg
IH5ET01Ob2RlSXRlcmF0b3IoKTsKLSAgICB2aXJ0dWFsIHZvaWQgbWFyaygpOwotICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYs
IFByb3BlcnR5U2xvdCYpOwotICAgIEpTVmFsdWUgKmdldFZhbHVlUHJvcGVydHkoRXhlY1N0YXRl
KiwgaW50IHRva2VuKSBjb25zdDsKLSAgICAvLyBubyBwdXQgLSBhbGwgcmVhZC1vbmx5Ci0gICAg
dmlydHVhbCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZv
OyB9Ci0gICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAgIGVudW0geyBGaWx0ZXIs
IFJvb3QsIFdoYXRUb1Nob3csIEV4cGFuZEVudGl0eVJlZmVyZW5jZXMsIFJlZmVyZW5jZU5vZGUs
IFBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlLAotICAgICAgICAgICBOZXh0Tm9kZSwgUHJldmlv
dXNOb2RlLCBEZXRhY2ggfTsKLSAgICBXZWJDb3JlOjpOb2RlSXRlcmF0b3IqIGltcGwoKSBjb25z
dCB7IHJldHVybiBtX2ltcGwuZ2V0KCk7IH0KLSAgcHJpdmF0ZToKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6Tm9kZUl0ZXJhdG9yPiBtX2ltcGw7Ci0gIH07Ci0KICAgY2xhc3MgRE9NTm9kZUZpbHRlciA6
IHB1YmxpYyBET01PYmplY3QgewogICBwdWJsaWM6CiAgICAgRE9NTm9kZUZpbHRlcihFeGVjU3Rh
dGUqLCBXZWJDb3JlOjpOb2RlRmlsdGVyKik7CkBAIC02NiwyNyArNDUsNyBAQCBuYW1lc3BhY2Ug
S0pTIHsKICAgICBSZWZQdHI8V2ViQ29yZTo6Tm9kZUZpbHRlcj4gbV9pbXBsOwogICB9OwogCi0g
IGNsYXNzIERPTVRyZWVXYWxrZXIgOiBwdWJsaWMgRE9NT2JqZWN0IHsKLSAgcHVibGljOgotICAg
IERPTVRyZWVXYWxrZXIoRXhlY1N0YXRlKiwgV2ViQ29yZTo6VHJlZVdhbGtlciopOwotICAgIH5E
T01UcmVlV2Fsa2VyKCk7Ci0gICAgdmlydHVhbCB2b2lkIG1hcmsoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJv
cGVydHlTbG90Jik7Ci0gICAgSlNWYWx1ZSogZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUqLCBp
bnQgdG9rZW4pIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlKiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlKiwgaW50IGF0dHIgPSBOb25lKTsKLSAg
ICB2aXJ0dWFsIGNvbnN0IENsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJmlu
Zm87IH0KLSAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87Ci0gICAgZW51bSB7IFJvb3Qs
IFdoYXRUb1Nob3csIEZpbHRlciwgRXhwYW5kRW50aXR5UmVmZXJlbmNlcywgQ3VycmVudE5vZGUs
Ci0gICAgICAgICAgIFBhcmVudE5vZGUsIEZpcnN0Q2hpbGQsIExhc3RDaGlsZCwgUHJldmlvdXNT
aWJsaW5nLCBOZXh0U2libGluZywKLSAgICAgICAgICAgUHJldmlvdXNOb2RlLCBOZXh0Tm9kZSB9
OwotICAgIFdlYkNvcmU6OlRyZWVXYWxrZXIqIGltcGwoKSBjb25zdCB7IHJldHVybiBtX2ltcGwu
Z2V0KCk7IH0KLSAgcHJpdmF0ZToKLSAgICBSZWZQdHI8V2ViQ29yZTo6VHJlZVdhbGtlcj4gbV9p
bXBsOwotICB9OwotCi0gIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Tm9kZUl0
ZXJhdG9yKik7CiAgIEpTVmFsdWUqIHRvSlMoRXhlY1N0YXRlKiwgV2ViQ29yZTo6Tm9kZUZpbHRl
ciopOwotICBKU1ZhbHVlKiB0b0pTKEV4ZWNTdGF0ZSosIFdlYkNvcmU6OlRyZWVXYWxrZXIqKTsK
IAogICBQYXNzUmVmUHRyPFdlYkNvcmU6Ok5vZGVGaWx0ZXI+IHRvTm9kZUZpbHRlcihKU1ZhbHVl
Kik7IC8vIHJldHVybnMgMCBpZiB2YWx1ZSBpcyBub3QgYSBET01Ob2RlRmlsdGVyIG9yIEpTIGZ1
bmN0aW9uIAogCkluZGV4OiBiaW5kaW5ncy9vYmpjL0RPTS5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBiaW5k
aW5ncy9vYmpjL0RPTS5tbQkocmV2aXNpb24gMTU4NTQpCisrKyBiaW5kaW5ncy9vYmpjL0RPTS5t
bQkod29ya2luZyBjb3B5KQpAQCAtMjEyNCw5ICsyMTI0LDcgQEAgc3RhdGljIENsYXNzIGVsZW1l
bnRDbGFzcyhjb25zdCBBdG9taWNTdAogCiAtICh2b2lkKWRldGFjaAogewotICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwotICAgIFtzZWxmIF9ub2RlSXRlcmF0b3JdLT5kZXRhY2goZWMpOwotICAg
IHJhaXNlT25ET01FcnJvcihlYyk7CisgICAgW3NlbGYgX25vZGVJdGVyYXRvcl0tPmRldGFjaCgp
OwogfQogCiBAZW5kCkluZGV4OiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNp
b24gMTU4NTQpCisrKyBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjU5LDcgKzI1OSwxMiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAjIENs
YXNzIGluZm8KICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHZpcnR1YWwgY29uc3QgS0pT
OjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9XG4iKTsKICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBjb25zdCBLSlM6OkNsYXNzSW5mbyBp
bmZvO1xuIik7Ci0gICAgCisKKyAgICAjIEN1c3RvbSBtYXJrIGZ1bmN0aW9uCisgICAgaWYgKCRk
YXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkN1c3RvbU1hcmtGdW5jdGlvbiJ9KSB7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICJcbiAgICB2aXJ0dWFsIHZvaWQgbWFyaygpO1xu
XG4iKTsKKyAgICB9CisKICAgICAjIENvbnN0cnVjdG9yIG9iamVjdCBnZXR0ZXIKICAgICBpZiAo
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVDb25zdHJ1Y3RvciJ9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEtKUzo6SlNWYWx1ZSog
Z2V0Q29uc3RydWN0b3IoS0pTOjpFeGVjU3RhdGUqKTtcbiIpCkBAIC0xMTcyLDEwICsxMTc3LDYg
QEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICAgICAkaW1wbEluY2x1ZGVzeyJranNfZG9tLmgi
fSA9IDE7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7IkhUTUxDYW52YXNFbGVtZW50LmgifSA9IDE7
CiAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsKLSAgICB9IGVsc2lmICgkdHlw
ZSBlcSAiTm9kZUl0ZXJhdG9yIiBvcgotICAgICAgICAgICAgICR0eXBlIGVxICJUcmVlV2Fsa2Vy
IikgewotICAgICAgICAkaW1wbEluY2x1ZGVzeyJranNfdHJhdmVyc2FsLmgifSA9IDE7Ci0gICAg
ICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsKICAgICB9IGVsc2lmICgkdHlwZSBlcSAi
RE9NV2luZG93IikgewogICAgICAgICAkaW1wbEluY2x1ZGVzeyJranNfd2luZG93LmgifSA9IDE7
CiAgICAgICAgIHJldHVybiAidG9KUyhleGVjLCAkdmFsdWUpIjsKSW5kZXg6IGRvbS9Ob2RlSXRl
cmF0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCShyZXZpc2lvbiAx
NTg1NCkKKysrIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDAsNyAr
MTAwLDcgQEAgTm9kZSogTm9kZUl0ZXJhdG9yOjpwcmV2aW91c05vZGUoRXhjZXB0aQogICAgIHJl
dHVybiBub2RlOwogfQogCi12b2lkIE5vZGVJdGVyYXRvcjo6ZGV0YWNoKEV4Y2VwdGlvbkNvZGUm
KQordm9pZCBOb2RlSXRlcmF0b3I6OmRldGFjaCgpCiB7CiAgICAgaWYgKCFkZXRhY2hlZCgpICYm
IGRvY3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50KCktPmRldGFjaE5vZGVJdGVyYXRvcih0aGlz
KTsKSW5kZXg6IGRvbS9Ob2RlSXRlcmF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vTm9kZUl0ZXJh
dG9yLmgJKHJldmlzaW9uIDE1ODU0KQorKysgZG9tL05vZGVJdGVyYXRvci5oCSh3b3JraW5nIGNv
cHkpCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBOb2Rl
KiBuZXh0Tm9kZShFeGNlcHRpb25Db2RlJik7CiAgICAgICAgIE5vZGUqIHByZXZpb3VzTm9kZShF
eGNlcHRpb25Db2RlJik7Ci0gICAgICAgIHZvaWQgZGV0YWNoKEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICAgICAgdm9pZCBkZXRhY2goKTsKIAogICAgICAgICBOb2RlKiByZWZlcmVuY2VOb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9yZWZlcmVuY2VOb2RlLmdldCgpOyB9CiAgICAgICAgIGJvb2wgcG9pbnRl
ckJlZm9yZVJlZmVyZW5jZU5vZGUoKSBjb25zdCB7IHJldHVybiBtX2JlZm9yZVJlZmVyZW5jZU5v
ZGU7IH0KSW5kZXg6IGRvbS9Ob2RlSXRlcmF0b3IuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9Ob2Rl
SXRlcmF0b3IuaWRsCShyZXZpc2lvbiAwKQorKysgZG9tL05vZGVJdGVyYXRvci5pZGwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUg
Q29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisg
KgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2ls
bCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UK
KyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJ
ZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1
OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVT
QS4KKyAqLworCittb2R1bGUgdHJhdmVyc2FsIHsKKworICAgIGludGVyZmFjZSBbQ3VzdG9tTWFy
a0Z1bmN0aW9uXSBOb2RlSXRlcmF0b3IgeworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9k
ZSByb290OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgbG9uZyB3aGF0VG9T
aG93OworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgTm9kZUZpbHRlciBmaWx0ZXI7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGV4cGFuZEVudGl0eVJlZmVyZW5jZXM7Cisg
ICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBOb2RlIHJlZmVyZW5jZU5vZGU7CisgICAgICAgIHJl
YWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHBvaW50ZXJCZWZvcmVSZWZlcmVuY2VOb2RlOworICAg
ICAgICAKKyAgICAgICAgTm9kZSBuZXh0Tm9kZSgpIAorICAgICAgICAgICAgcmFpc2VzIChET01F
eGNlcHRpb24pOworICAgICAgICBOb2RlIHByZXZpb3VzTm9kZSgpCisgICAgICAgICAgICByYWlz
ZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgZGV0YWNoKCk7CisgICAgfTsKK30KKwor
IApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IGRvbS9UcmVlV2Fsa2VyLmlkbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBkb20vVHJlZVdhbGtlci5pZGwJKHJldmlzaW9uIDApCisrKyBkb20vVHJl
ZVdhbGtlci5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAzMzAsCisgKiBCb3N0b24s
IE1BIDAyMTExLTEzMDcsIFVTQS4KKyAqLworCittb2R1bGUgdHJhdmVyc2FsIHsKKworICAgIGlu
dGVyZmFjZSBbQ3VzdG9tTWFya0Z1bmN0aW9uXSBUcmVlV2Fsa2VyIHsKKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIE5vZGUgcm9vdDsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgd2hhdFRvU2hvdzsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIE5vZGVGaWx0
ZXIgZmlsdGVyOworICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgYm9vbGVhbiBleHBhbmRFbnRp
dHlSZWZlcmVuY2VzOyAgICAgICAgCisgICAgICAgIGF0dHJpYnV0ZSBOb2RlIGN1cnJlbnROb2Rl
CisgICAgICAgICAgICBzZXR0ZXIgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAgICAgIE5v
ZGUgcGFyZW50Tm9kZSgpOworICAgICAgICBOb2RlIGZpcnN0Q2hpbGQoKTsKKyAgICAgICAgTm9k
ZSBsYXN0Q2hpbGQoKTsKKyAgICAgICAgTm9kZSBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICAgICAg
Tm9kZSBuZXh0U2libGluZygpOworICAgICAgICBOb2RlIHByZXZpb3VzTm9kZSgpOworICAgICAg
ICBOb2RlIG5leHROb2RlKCk7CisgICAgfTsKK30KKworIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUK
</data>
<flag name="review"
          id="3110"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>