<?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>7091</bug_id>
          
          <creation_ts>2006-02-05 14:30:39 -0800</creation_ts>
          <short_desc>Autogenerate even more</short_desc>
          <delta_ts>2006-02-05 23:04:29 -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>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>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31483</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-02-05 14:30:39 -0800</bug_when>
    <thetext>Patch coming up which autogenerates Attr, CharacterData, Entity, Notation, ProcessingInstruction and Text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31484</commentid>
    <comment_count>1</comment_count>
      <attachid>6274</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2006-02-05 14:35:26 -0800</bug_when>
    <thetext>Created attachment 6274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31485</commentid>
    <comment_count>2</comment_count>
      <attachid>6274</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2006-02-05 14:45:48 -0800</bug_when>
    <thetext>Comment on attachment 6274
Patch

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6274</attachid>
            <date>2006-02-05 14:35:26 -0800</date>
            <delta_ts>2006-02-05 14:45:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>autogenerate-even-more.txt</filename>
            <type>text/plain</type>
            <size>27778</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IGtodG1sL3htbC9FbnRpdHkuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1sL3htbC9FbnRp
dHkuaWRsCShyZXZpc2lvbiAwKQorKysga2h0bWwveG1sL0VudGl0eS5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNyBAQAorbW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbTGVnYWN5UGFy
ZW50PUtKUzo6RE9NTm9kZV0gRW50aXR5IDogTm9kZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJp
YnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgcHVibGljSWQ7CisgICAg
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJp
bmcgc3lzdGVtSWQ7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBbQ29udmVydE51bGxTdHJp
bmdUbz1OdWxsXSBET01TdHJpbmcgbm90YXRpb25OYW1lOworICAgIH07Cit9CkluZGV4OiBraHRt
bC94bWwvVGV4dC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwveG1sL1RleHQuaWRsCShyZXZpc2lv
biAwKQorKysga2h0bWwveG1sL1RleHQuaWRsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDcgQEAK
K21vZHVsZSBjb3JlIHsKKyAgICBpbnRlcmZhY2UgVGV4dCA6IENoYXJhY3RlckRhdGEgeworICAg
IAorICAgICAgICBUZXh0IHNwbGl0VGV4dChpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZz
ZXQpCisgICAgICAgICAgICByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgfTsKK30KSW5kZXg6
IGtodG1sL3htbC9Ob3RhdGlvbi5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2h0bWwveG1sL05vdGF0aW9u
LmlkbAkocmV2aXNpb24gMCkKKysrIGtodG1sL3htbC9Ob3RhdGlvbi5pZGwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNiBAQAorbW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbTGVnYWN5UGFy
ZW50PUtKUzo6RE9NTm9kZV0gTm90YXRpb24gOiBOb2RlIHsKKyAgICAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0cmluZyBwdWJsaWNJZDsKKyAg
ICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERPTVN0
cmluZyBzeXN0ZW1JZDsKKyAgICB9OworfQpJbmRleDoga2h0bWwveG1sL0F0dHIuaWRsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtodG1sL3htbC9BdHRyLmlkbAkocmV2aXNpb24gMCkKKysrIGtodG1sL3htbC9B
dHRyLmlkbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorbW9kdWxlIGNvcmUgeworICAg
IGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6RE9NTm9kZV0gQXR0ciA6IE5vZGUgeworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3Ry
aW5nIG5hbWU7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIHNwZWNpZmllZDsK
KyAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtDb252ZXJ0TnVsbFN0cmluZ1RvPU51bGxdIERP
TVN0cmluZyB2YWx1ZSAKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9u
KTsKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIEVsZW1lbnQgb3duZXJFbGVtZW50OworICAg
ICAgICAKKyAgICAgICAgLy8gV2ViIGluc3BlY3RvciBleHRlbnNpb24KKyAgICAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIENTU1N0eWxlRGVjbGFyYXRpb24gc3R5bGU7CisgICAgfTsKK30KSW5kZXg6
IGtodG1sL3htbC9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1s
L3htbC9Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uaWRsCShyZXZpc2lvbiAwKQorKysga2h0bWwveG1s
L1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAor
bW9kdWxlIGNvcmUgeworICAgIGludGVyZmFjZSBbTGVnYWN5UGFyZW50PUtKUzo6RE9NTm9kZV0g
UHJvY2Vzc2luZ0luc3RydWN0aW9uIDogTm9kZSB7CisgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0
ZSBbQ29udmVydE51bGxTdHJpbmdUbz1OdWxsXSBET01TdHJpbmcgdGFyZ2V0OworICAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGUgW0NvbnZlcnROdWxsU3RyaW5nVG89TnVsbF0gRE9NU3RyaW5nIGRh
dGEKKyAgICAgICAgICAgICAgICAgICAgIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIFN0eWxlU2hlZXQgc2hlZXQ7CisgICAgfTsKK30KSW5kZXg6IGto
dG1sL3htbC9DaGFyYWN0ZXJEYXRhLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBraHRtbC94bWwvQ2hhcmFj
dGVyRGF0YS5pZGwJKHJldmlzaW9uIDApCisrKyBraHRtbC94bWwvQ2hhcmFjdGVyRGF0YS5pZGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKK21vZHVsZSBjb3JlIHsKKyAgICBpbnRlcmZh
Y2UgW0xlZ2FjeVBhcmVudD1LSlM6OkRPTU5vZGVdIENoYXJhY3RlckRhdGEgOiBOb2RlIHsKKyAg
ICAgICAgYXR0cmlidXRlIERPTVN0cmluZyBkYXRhCisgICAgICAgICAgICByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CisgICAgICAgICAgICAKKyAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIHVuc2ln
bmVkIGxvbmcgbGVuZ3RoOworICAgICAgICAKKyAgICAgICAgW0NvbnZlcnROdWxsU3RyaW5nVG89
TnVsbF0gRE9NU3RyaW5nIHN1YnN0cmluZ0RhdGEoaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcg
b2Zmc2V0LCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgY291bnQpCisgICAgICAgICAg
ICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKyAgICAgICAgICAgIAorICAgICAgICB2b2lkIGFwcGVu
ZERhdGEoaW4gRE9NU3RyaW5nIGFyZykKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgICAgICAgICAgCisgICAgICAgIHZvaWQgaW5zZXJ0RGF0YShpbiBbSXNJbmRleF0gdW5z
aWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAgICAgICAgICAgICAgICAgaW4gRE9NU3RyaW5n
IGFyZykKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24pOworCisgICAgICAgIHZvaWQg
ZGVsZXRlRGF0YShpbiBbSXNJbmRleF0gdW5zaWduZWQgbG9uZyBvZmZzZXQsIAorICAgICAgICAg
ICAgICAgICAgICAgICAgaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgY291bnQpCisgICAgICAg
ICAgICByYWlzZXMoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICB2b2lkIHJlcGxhY2VEYXRhKGlu
IFtJc0luZGV4XSB1bnNpZ25lZCBsb25nIG9mZnNldCwgCisgICAgICAgICAgICAgICAgICAgICAg
ICAgaW4gW0lzSW5kZXhdIHVuc2lnbmVkIGxvbmcgY291bnQsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgaW4gRE9NU3RyaW5nIGFyZykKKyAgICAgICAgICAgIHJhaXNlcyhET01FeGNlcHRpb24p
OworICAgIAorICAgIH07Cit9CkluZGV4OiBraHRtbC9lY21hL2tqc19kb20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIGtodG1sL2VjbWEva2pzX2RvbS5jcHAJKHJldmlzaW9uIDEyNTg2KQorKysga2h0bWwv
ZWNtYS9ranNfZG9tLmNwcAkoYXJiZXRza29waWEpCkBAIC0yNSw4ICsyNSwxNCBAQAogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnRJbXBsLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRUeXBlSW1wbC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgor
I2luY2x1ZGUgIkpTQXR0ci5oIgorI2luY2x1ZGUgIkpTQ2hhcmFjdGVyRGF0YS5oIgogI2luY2x1
ZGUgIkpTRG9jdW1lbnRUeXBlLmgiCisjaW5jbHVkZSAiSlNET01JbXBsZW1lbnRhdGlvbi5oIgor
I2luY2x1ZGUgIkpTRW50aXR5LmgiCisjaW5jbHVkZSAiSlNOb3RhdGlvbi5oIgorI2luY2x1ZGUg
IkpTUHJvY2Vzc2luZ0luc3RydWN0aW9uLmgiCisjaW5jbHVkZSAiSlNUZXh0LmgiCiAjaW5jbHVk
ZSAiY3NzL2Nzc19ydWxlaW1wbC5oIgogI2luY2x1ZGUgImNzcy9jc3Nfc3R5bGVzaGVldGltcGwu
aCIKICNpbmNsdWRlICJkb20vZG9tX2V4Y2VwdGlvbi5oIgpAQCAtODksNyArOTUsNiBAQCBuYW1l
c3BhY2UgS0pTIHsKICAgaXRlbSAgICAgICAgICBET01Ob2RlOjpJdGVtICAgICAgICAgICBEb250
RGVsZXRlfEZ1bmN0aW9uIDEKIEBlbmQKICovCi1LSlNfREVGSU5FX1BST1RPVFlQRShET01Ob2Rl
UHJvdG8pCiBLSlNfSU1QTEVNRU5UX1BST1RPRlVOQyhET01Ob2RlUHJvdG9GdW5jKQogS0pTX0lN
UExFTUVOVF9QUk9UT1RZUEUoIkRPTU5vZGUiLERPTU5vZGVQcm90byxET01Ob2RlUHJvdG9GdW5j
KQogCkBAIC03OTAsNjggKzc5NSw5IEBAIEpTVmFsdWUgKkRPTU5vZGVMaXN0RnVuYzo6Y2FsbEFz
RnVuY3Rpb24KICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKLS8vIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0KLQotY29uc3QgQ2xhc3NJbmZvIERPTUF0dHI6OmluZm8gPSB7ICJBdHRyIiwgJkRPTU5vZGU6
OmluZm8sICZET01BdHRyVGFibGUsIDAgfTsKLQotLyogU291cmNlIGZvciBET01BdHRyVGFibGUu
IFVzZSAibWFrZSBoYXNodGFibGVzIiB0byByZWdlbmVyYXRlLgotQGJlZ2luIERPTUF0dHJUYWJs
ZSA1Ci0gIG5hbWUgICAgICAgICAgRE9NQXR0cjo6TmFtZSAgICAgICAgICAgRG9udERlbGV0ZXxS
ZWFkT25seQotICBzcGVjaWZpZWQgICAgIERPTUF0dHI6OlNwZWNpZmllZCAgICAgIERvbnREZWxl
dGV8UmVhZE9ubHkKLSAgdmFsdWUgICAgICAgICBET01BdHRyOjpWYWx1ZVByb3BlcnR5ICBEb250
RGVsZXRlCi0gIG93bmVyRWxlbWVudCAgRE9NQXR0cjo6T3duZXJFbGVtZW50ICAgRG9udERlbGV0
ZXxSZWFkT25seQotICBzdHlsZSAgICAgICAgIERPTUF0dHI6OlN0eWxlICAgICAgICAgIERvbnRE
ZWxldGV8UmVhZE9ubHkKLUBlbmQKLSovCi0KLURPTUF0dHI6OkRPTUF0dHIoRXhlY1N0YXRlICpl
eGVjLCBBdHRySW1wbCAqYSkKLSAgOiBET01Ob2RlKGV4ZWMsIGEpCi17Ci19Ci0KLWJvb2wgRE9N
QXR0cjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gIHJldHVybiBnZXRTdGF0
aWNWYWx1ZVNsb3Q8RE9NQXR0ciwgRE9NTm9kZT4oZXhlYywgJkRPTUF0dHJUYWJsZSwgdGhpcywg
cHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotSlNWYWx1ZSAqRE9NQXR0cjo6Z2V0VmFsdWVQcm9w
ZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3QKLXsKLSAgQXR0ckltcGwgKmF0
dHIgPSBzdGF0aWNfY2FzdDxBdHRySW1wbCAqPihpbXBsKCkpOwotICBzd2l0Y2ggKHRva2VuKSB7
Ci0gIGNhc2UgTmFtZToKLSAgICByZXR1cm4ganNTdHJpbmdPck51bGwoYXR0ci0+bmFtZSgpKTsK
LSAgY2FzZSBTcGVjaWZpZWQ6Ci0gICAgcmV0dXJuIGpzQm9vbGVhbihhdHRyLT5zcGVjaWZpZWQo
KSk7Ci0gIGNhc2UgVmFsdWVQcm9wZXJ0eToKLSAgICByZXR1cm4ganNTdHJpbmdPck51bGwoYXR0
ci0+dmFsdWUoKSk7Ci0gIGNhc2UgT3duZXJFbGVtZW50OiAvLyBET00yCi0gICAgcmV0dXJuIGdl
dERPTU5vZGUoZXhlYywgYXR0ci0+b3duZXJFbGVtZW50KCkpOwotICBjYXNlIFN0eWxlOiAvLyBX
ZWIgSW5zcGVjdG9yIEV4dGVuc2lvbgotICAgIHJldHVybiBnZXRET01DU1NTdHlsZURlY2xhcmF0
aW9uKGV4ZWMsIGF0dHItPnN0eWxlKCkpOwotICB9Ci0gIHJldHVybiBOVUxMOyAvLyBub3QgcmVh
Y2hlZAotfQotCi12b2lkIERPTUF0dHI6OnB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50
aWZpZXIgJnByb3BlcnR5TmFtZSwgSlNWYWx1ZSAqdmFsdWUsIGludCBhdHRyKQotewotICAgIGxv
b2t1cFB1dDxET01BdHRyLERPTU5vZGU+KGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIGF0dHIs
ICZET01BdHRyVGFibGUsIHRoaXMpOwotfQotCi12b2lkIERPTUF0dHI6OnB1dFZhbHVlUHJvcGVy
dHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBpbnQgLyphdHRy
Ki8pCi17Ci0gIERPTUV4Y2VwdGlvblRyYW5zbGF0b3IgZXhjZXB0aW9uKGV4ZWMpOwotICBzd2l0
Y2ggKHRva2VuKSB7Ci0gIGNhc2UgVmFsdWVQcm9wZXJ0eToKLSAgICBzdGF0aWNfY2FzdDxBdHRy
SW1wbCAqPihpbXBsKCkpLT5zZXRWYWx1ZSh2YWx1ZS0+dG9TdHJpbmcoZXhlYykuZG9tU3RyaW5n
KCksIGV4Y2VwdGlvbik7Ci0gICAgcmV0dXJuOwotICBkZWZhdWx0OgotICAgIGtkV2FybmluZygp
IDw8ICJET01BdHRyOjpwdXRWYWx1ZVByb3BlcnR5IHVuaGFuZGxlZCB0b2tlbiAiIDw8IHRva2Vu
IDw8IGVuZGw7Ci0gIH0KLX0KLQogQXR0ckltcGwgKnRvQXR0cihKU1ZhbHVlICp2YWwpCiB7Ci0g
ICAgaWYgKCF2YWwgfHwgIXZhbC0+aXNPYmplY3QoJkRPTUF0dHI6OmluZm8pKQorICAgIGlmICgh
dmFsIHx8ICF2YWwtPmlzT2JqZWN0KCZKU0F0dHI6OmluZm8pKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8QXR0ckltcGwgKj4oc3RhdGljX2Nhc3Q8RE9NTm9kZSAq
Pih2YWwpLT5pbXBsKCkpOwogfQpAQCAtMTQwOSwxMjYgKzEzNTUsNiBAQCBKU1ZhbHVlICpET01O
YW1lZE5vZGVNYXBQcm90b0Z1bmM6OmNhbGxBCiAKIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAotY29u
c3QgQ2xhc3NJbmZvIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6aW5mbyA9IHsgIlByb2Nlc3Np
bmdJbnN0cnVjdGlvbiIsICZET01Ob2RlOjppbmZvLCAmRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9u
VGFibGUsIDAgfTsKLQotLyogU291cmNlIGZvciBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb25UYWJs
ZS4gVXNlICJtYWtlIGhhc2h0YWJsZXMiIHRvIHJlZ2VuZXJhdGUuCi1AYmVnaW4gRE9NUHJvY2Vz
c2luZ0luc3RydWN0aW9uVGFibGUgMwotICB0YXJnZXQgICAgICAgIERPTVByb2Nlc3NpbmdJbnN0
cnVjdGlvbjo6VGFyZ2V0ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci0gIGRhdGEgICAgICAg
ICAgRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpEYXRhICAgICAgICAgIERvbnREZWxldGUKLSAg
c2hlZXQgICAgICAgICBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OlNoZWV0ICAgICAgICAgRG9u
dERlbGV0ZXxSZWFkT25seQotQGVuZAotKi8KLQotRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uOjpE
T01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oRXhlY1N0YXRlICpleGVjLCBQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb25JbXBsICppKQotICA6IERPTU5vZGUoZXhlYywgaSkKLXsKLX0KLQotYm9vbCBET01Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb246OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUgKmV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICBy
ZXR1cm4gZ2V0U3RhdGljVmFsdWVTbG90PERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbiwgRE9NTm9k
ZT4oZXhlYywgJkRPTVByb2Nlc3NpbmdJbnN0cnVjdGlvblRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwotfQotCi1KU1ZhbHVlICpET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmdldFZh
bHVlUHJvcGVydHkoRXhlY1N0YXRlICpleGVjLCBpbnQgdG9rZW4pIGNvbnN0Ci17Ci0gIFByb2Nl
c3NpbmdJbnN0cnVjdGlvbkltcGwgKnBpID0gc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0
aW9uSW1wbCAqPihpbXBsKCkpOwotICBzd2l0Y2ggKHRva2VuKSB7Ci0gIGNhc2UgVGFyZ2V0Ogot
ICAgIHJldHVybiBqc1N0cmluZ09yTnVsbChwaS0+dGFyZ2V0KCkpOwotICBjYXNlIERhdGE6Ci0g
ICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHBpLT5kYXRhKCkpOwotICBjYXNlIFNoZWV0OgotICAg
IHJldHVybiBnZXRET01TdHlsZVNoZWV0KGV4ZWMscGktPnNoZWV0KCkpOwotICBkZWZhdWx0Ogot
ICAgIGtkV2FybmluZygpIDw8ICJET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb246OmdldFZhbHVlUHJv
cGVydHkgdW5oYW5kbGVkIHRva2VuICIgPDwgdG9rZW4gPDwgZW5kbDsKLSAgICByZXR1cm4gTlVM
TDsKLSAgfQotfQotCi12b2lkIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbjo6cHV0KEV4ZWNTdGF0
ZSAqZXhlYywgY29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwg
aW50IGF0dHIpCi17Ci0gIFByb2Nlc3NpbmdJbnN0cnVjdGlvbkltcGwgKnBpID0gc3RhdGljX2Nh
c3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbCAqPihpbXBsKCkpOwotICBET01FeGNlcHRpb25U
cmFuc2xhdG9yIGV4Y2VwdGlvbihleGVjKTsKLSAgLy8gTm90IHdvcnRoIHVzaW5nIHRoZSBoYXNo
dGFibGUgZm9yIHRoaXMgb25lIDspCi0gIGlmIChwcm9wZXJ0eU5hbWUgPT0gImRhdGEiKQotICAg
IHBpLT5zZXREYXRhKHZhbHVlLT50b1N0cmluZyhleGVjKS5kb21TdHJpbmcoKSwgZXhjZXB0aW9u
KTsKLSAgZWxzZQotICAgIERPTU5vZGU6OnB1dChleGVjLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBh
dHRyKTsKLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1jb25zdCBDbGFzc0luZm8gRE9NTm90
YXRpb246OmluZm8gPSB7ICJOb3RhdGlvbiIsICZET01Ob2RlOjppbmZvLCAmRE9NTm90YXRpb25U
YWJsZSwgMCB9OwotCi0vKiBTb3VyY2UgZm9yIERPTU5vdGF0aW9uVGFibGUuIFVzZSAibWFrZSBo
YXNodGFibGVzIiB0byByZWdlbmVyYXRlLgotQGJlZ2luIERPTU5vdGF0aW9uVGFibGUgMgotICBw
dWJsaWNJZCAgICAgICAgICAgICAgRE9NTm90YXRpb246OlB1YmxpY0lkICAgRG9udERlbGV0ZXxS
ZWFkT25seQotICBzeXN0ZW1JZCAgICAgICAgICAgICAgRE9NTm90YXRpb246OlN5c3RlbUlkICAg
RG9udERlbGV0ZXxSZWFkT25seQotQGVuZAotKi8KLQotRE9NTm90YXRpb246OkRPTU5vdGF0aW9u
KEV4ZWNTdGF0ZSAqZXhlYywgTm90YXRpb25JbXBsICpuKQotICA6IERPTU5vZGUoZXhlYywgbikK
LXsKLX0KLQotYm9vbCBET01Ob3RhdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAq
ZXhlYywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
Ci17Ci0gIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8RE9NTm90YXRpb24sIERPTU5vZGU+KGV4
ZWMsICZET01Ob3RhdGlvblRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1K
U1ZhbHVlICpET01Ob3RhdGlvbjo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKiwgaW50IHRv
a2VuKSBjb25zdAotewotICBzd2l0Y2ggKHRva2VuKSB7Ci0gIGNhc2UgUHVibGljSWQ6Ci0gICAg
cmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0YXRpY19jYXN0PE5vdGF0aW9uSW1wbCAqPihpbXBsKCkp
LT5wdWJsaWNJZCgpKTsKLSAgY2FzZSBTeXN0ZW1JZDoKLSAgICByZXR1cm4ganNTdHJpbmdPck51
bGwoc3RhdGljX2Nhc3Q8Tm90YXRpb25JbXBsICo+KGltcGwoKSktPnN5c3RlbUlkKCkpOwotICBk
ZWZhdWx0OgotICAgIGtkV2FybmluZygpIDw8ICJET01Ob3RhdGlvbjo6Z2V0VmFsdWVQcm9wZXJ0
eSB1bmhhbmRsZWQgdG9rZW4gIiA8PCB0b2tlbiA8PCBlbmRsOwotICAgIHJldHVybiBOVUxMOwot
ICB9Ci19Ci0KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQotY29uc3QgQ2xhc3NJbmZvIERPTUVudGl0
eTo6aW5mbyA9IHsgIkVudGl0eSIsICZET01Ob2RlOjppbmZvLCAwLCAwIH07Ci0KLS8qIFNvdXJj
ZSBmb3IgRE9NRW50aXR5VGFibGUuIFVzZSAibWFrZSBoYXNodGFibGVzIiB0byByZWdlbmVyYXRl
LgotQGJlZ2luIERPTUVudGl0eVRhYmxlIDIKLSAgcHVibGljSWQgICAgICAgICAgICAgIERPTUVu
dGl0eTo6UHVibGljSWQgICAgICAgICAgICAgRG9udERlbGV0ZXxSZWFkT25seQotICBzeXN0ZW1J
ZCAgICAgICAgICAgICAgRE9NRW50aXR5OjpTeXN0ZW1JZCAgICAgICAgICAgICBEb250RGVsZXRl
fFJlYWRPbmx5Ci0gIG5vdGF0aW9uTmFtZSAgICAgICAgICBET01FbnRpdHk6Ok5vdGF0aW9uTmFt
ZSBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi0qLwotCi1ET01FbnRpdHk6OkRPTUVudGl0eShF
eGVjU3RhdGUgKmV4ZWMsIEVudGl0eUltcGwgKmUpCi0gIDogRE9NTm9kZShleGVjLCBlKQotewot
fQotCi1ib29sIERPTUVudGl0eTo6Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqZXhlYywg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0g
IHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8RE9NRW50aXR5LCBET01Ob2RlPihleGVjLCAmRE9N
RW50aXR5VGFibGUsIHRoaXMsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLUpTVmFsdWUgKkRP
TUVudGl0eTo6Z2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKiwgaW50IHRva2VuKSBjb25zdAot
ewotICBzd2l0Y2ggKHRva2VuKSB7Ci0gIGNhc2UgUHVibGljSWQ6Ci0gICAgcmV0dXJuIGpzU3Ry
aW5nT3JOdWxsKHN0YXRpY19jYXN0PEVudGl0eUltcGwgKj4oaW1wbCgpKS0+cHVibGljSWQoKSk7
Ci0gIGNhc2UgU3lzdGVtSWQ6Ci0gICAgcmV0dXJuIGpzU3RyaW5nT3JOdWxsKHN0YXRpY19jYXN0
PEVudGl0eUltcGwgKj4oaW1wbCgpKS0+c3lzdGVtSWQoKSk7Ci0gIGNhc2UgTm90YXRpb25OYW1l
OgotICAgIHJldHVybiBqc1N0cmluZ09yTnVsbChzdGF0aWNfY2FzdDxFbnRpdHlJbXBsICo+KGlt
cGwoKSktPm5vdGF0aW9uTmFtZSgpKTsKLSAgZGVmYXVsdDoKLSAgICBrZFdhcm5pbmcoKSA8PCAi
RE9NRW50aXR5OjpnZXRWYWx1ZVByb3BlcnR5IHVuaGFuZGxlZCB0b2tlbiAiIDw8IHRva2VuIDw8
IGVuZGw7Ci0gICAgcmV0dXJuIE5VTEw7Ci0gIH0KLX0KLQotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot
CiBKU1ZhbHVlICpnZXRET01Eb2N1bWVudE5vZGUoRXhlY1N0YXRlICpleGVjLCBEb2N1bWVudElt
cGwgKm4pCiB7CiAgIERPTURvY3VtZW50ICpyZXQgPSAwOwpAQCAtMTU4NSwyMCArMTQxMSwyMCBA
QCBKU1ZhbHVlICpnZXRET01Ob2RlKEV4ZWNTdGF0ZSAqZXhlYywgUGFzCiAgICAgICAgIHJldCA9
IG5ldyBET01FbGVtZW50KGV4ZWMsIHN0YXRpY19jYXN0PEVsZW1lbnRJbXBsICo+KG4pKTsKICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgRE9NOjpOb2RlOjpBVFRSSUJVVEVfTk9ERToKLSAgICAgIHJl
dCA9IG5ldyBET01BdHRyKGV4ZWMsIHN0YXRpY19jYXN0PEF0dHJJbXBsICo+KG4pKTsKKyAgICAg
IHJldCA9IG5ldyBKU0F0dHIoZXhlYywgc3RhdGljX2Nhc3Q8QXR0ckltcGwgKj4obikpOwogICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBET006Ok5vZGU6OlRFWFRfTk9ERToKICAgICBjYXNlIERPTTo6
Tm9kZTo6Q0RBVEFfU0VDVElPTl9OT0RFOgotICAgICAgcmV0ID0gbmV3IERPTVRleHQoZXhlYywg
c3RhdGljX2Nhc3Q8VGV4dEltcGwgKj4obikpOworICAgICAgcmV0ID0gbmV3IEpTVGV4dChleGVj
LCBzdGF0aWNfY2FzdDxUZXh0SW1wbCAqPihuKSk7CiAgICAgICBicmVhazsKICAgICBjYXNlIERP
TTo6Tm9kZTo6RU5USVRZX05PREU6Ci0gICAgICByZXQgPSBuZXcgRE9NRW50aXR5KGV4ZWMsIHN0
YXRpY19jYXN0PEVudGl0eUltcGwgKj4obikpOworICAgICAgcmV0ID0gbmV3IEpTRW50aXR5KGV4
ZWMsIHN0YXRpY19jYXN0PEVudGl0eUltcGwgKj4obikpOwogICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBET006Ok5vZGU6OlBST0NFU1NJTkdfSU5TVFJVQ1RJT05fTk9ERToKLSAgICAgIHJldCA9IG5l
dyBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24oZXhlYywgc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0lu
c3RydWN0aW9uSW1wbCAqPihuKSk7CisgICAgICByZXQgPSBuZXcgSlNQcm9jZXNzaW5nSW5zdHJ1
Y3Rpb24oZXhlYywgc3RhdGljX2Nhc3Q8UHJvY2Vzc2luZ0luc3RydWN0aW9uSW1wbCAqPihuKSk7
CiAgICAgICBicmVhazsKICAgICBjYXNlIERPTTo6Tm9kZTo6Q09NTUVOVF9OT0RFOgotICAgICAg
cmV0ID0gbmV3IERPTUNoYXJhY3RlckRhdGEoZXhlYywgc3RhdGljX2Nhc3Q8Q2hhcmFjdGVyRGF0
YUltcGwgKj4obikpOworICAgICAgcmV0ID0gbmV3IEpTQ2hhcmFjdGVyRGF0YShleGVjLCBzdGF0
aWNfY2FzdDxDaGFyYWN0ZXJEYXRhSW1wbCAqPihuKSk7CiAgICAgICBicmVhazsKICAgICBjYXNl
IERPTTo6Tm9kZTo6RE9DVU1FTlRfTk9ERToKICAgICAgIC8vIHdlIGRvbid0IHdhbnQgdG8gY2Fj
aGUgdGhlIGRvY3VtZW50IGl0c2VsZiBpbiB0aGUgcGVyLWRvY3VtZW50IGRpY3Rpb25hcnkKQEAg
LTE2MDcsNyArMTQzMyw3IEBAIEpTVmFsdWUgKmdldERPTU5vZGUoRXhlY1N0YXRlICpleGVjLCBQ
YXMKICAgICAgIHJldCA9IG5ldyBKU0RvY3VtZW50VHlwZShleGVjLCBzdGF0aWNfY2FzdDxEb2N1
bWVudFR5cGVJbXBsICo+KG4pKTsKICAgICAgIGJyZWFrOwogICAgIGNhc2UgRE9NOjpOb2RlOjpO
T1RBVElPTl9OT0RFOgotICAgICAgcmV0ID0gbmV3IERPTU5vdGF0aW9uKGV4ZWMsIHN0YXRpY19j
YXN0PE5vdGF0aW9uSW1wbCAqPihuKSk7CisgICAgICByZXQgPSBuZXcgSlNOb3RhdGlvbihleGVj
LCBzdGF0aWNfY2FzdDxOb3RhdGlvbkltcGwgKj4obikpOwogICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBET006Ok5vZGU6OkRPQ1VNRU5UX0ZSQUdNRU5UX05PREU6CiAgICAgY2FzZSBET006Ok5vZGU6
OkVOVElUWV9SRUZFUkVOQ0VfTk9ERToKQEAgLTE3OTQsMTM1ICsxNjIwLDUgQEAgYm9vbCBET01O
YW1lZE5vZGVzQ29sbGVjdGlvbjo6Z2V0T3duUHJvcAogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAK
LWNvbnN0IENsYXNzSW5mbyBET01DaGFyYWN0ZXJEYXRhOjppbmZvID0geyAiQ2hhcmFjdGVySW1w
IiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZET01Ob2RlOjpp
bmZvLCAmRE9NQ2hhcmFjdGVyRGF0YVRhYmxlLCAwIH07Ci0vKgotQGJlZ2luIERPTUNoYXJhY3Rl
ckRhdGFUYWJsZSAyCi0gIGRhdGEgICAgICAgICAgRE9NQ2hhcmFjdGVyRGF0YTo6RGF0YSAgICAg
ICAgICBEb250RGVsZXRlCi0gIGxlbmd0aCAgICAgICAgRE9NQ2hhcmFjdGVyRGF0YTo6TGVuZ3Ro
ICAgICAgICBEb250RGVsZXRlfFJlYWRPbmx5Ci1AZW5kCi1AYmVnaW4gRE9NQ2hhcmFjdGVyRGF0
YVByb3RvVGFibGUgNwotICBzdWJzdHJpbmdEYXRhIERPTUNoYXJhY3RlckRhdGE6OlN1YnN0cmlu
Z0RhdGEgRG9udERlbGV0ZXxGdW5jdGlvbiAyCi0gIGFwcGVuZERhdGEgICAgRE9NQ2hhcmFjdGVy
RGF0YTo6QXBwZW5kRGF0YSAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKLSAgaW5zZXJ0RGF0YSAg
ICBET01DaGFyYWN0ZXJEYXRhOjpJbnNlcnREYXRhICAgIERvbnREZWxldGV8RnVuY3Rpb24gMgot
ICBkZWxldGVEYXRhICAgIERPTUNoYXJhY3RlckRhdGE6OkRlbGV0ZURhdGEgICAgRG9udERlbGV0
ZXxGdW5jdGlvbiAyCi0gIHJlcGxhY2VEYXRhICAgRE9NQ2hhcmFjdGVyRGF0YTo6UmVwbGFjZURh
dGEgICBEb250RGVsZXRlfEZ1bmN0aW9uIDIKLUBlbmQKLSovCi1LSlNfREVGSU5FX1BST1RPVFlQ
RShET01DaGFyYWN0ZXJEYXRhUHJvdG8pCi1LSlNfSU1QTEVNRU5UX1BST1RPRlVOQyhET01DaGFy
YWN0ZXJEYXRhUHJvdG9GdW5jKQotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEVfV0lUSF9QQVJFTlQo
IkRPTUNoYXJhY3RlckRhdGEiLERPTUNoYXJhY3RlckRhdGFQcm90byxET01DaGFyYWN0ZXJEYXRh
UHJvdG9GdW5jLCBET01Ob2RlUHJvdG8pCi0KLURPTUNoYXJhY3RlckRhdGE6OkRPTUNoYXJhY3Rl
ckRhdGEoRXhlY1N0YXRlICpleGVjLCBDaGFyYWN0ZXJEYXRhSW1wbCAqZCkKLSA6IERPTU5vZGUo
ZCkgCi17Ci0gIHNldFByb3RvdHlwZShET01DaGFyYWN0ZXJEYXRhUHJvdG86OnNlbGYoZXhlYykp
OwotfQotCi1ET01DaGFyYWN0ZXJEYXRhOjpET01DaGFyYWN0ZXJEYXRhKENoYXJhY3RlckRhdGFJ
bXBsICpkKQotIDogRE9NTm9kZShkKSAKLXsKLX0KLQotYm9vbCBET01DaGFyYWN0ZXJEYXRhOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgcmV0dXJuIGdldFN0YXRpY1ZhbHVl
U2xvdDxET01DaGFyYWN0ZXJEYXRhLCBET01Ob2RlPihleGVjLCAmRE9NQ2hhcmFjdGVyRGF0YVRh
YmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1KU1ZhbHVlICpET01DaGFyYWN0
ZXJEYXRhOjpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqLCBpbnQgdG9rZW4pIGNvbnN0Ci17
Ci0gIENoYXJhY3RlckRhdGFJbXBsICZkYXRhID0gKnN0YXRpY19jYXN0PENoYXJhY3RlckRhdGFJ
bXBsICo+KGltcGwoKSk7Ci0gIHN3aXRjaCAodG9rZW4pIHsKLSAgY2FzZSBEYXRhOgotICAgIHJl
dHVybiBqc1N0cmluZyhkYXRhLmRhdGEoKSk7Ci0gIGNhc2UgTGVuZ3RoOgotICAgIHJldHVybiBq
c051bWJlcihkYXRhLmxlbmd0aCgpKTsKLSAgZGVmYXVsdDoKLSAgICBrZFdhcm5pbmcoKSA8PCAi
VW5oYW5kbGVkIHRva2VuIGluIERPTUNoYXJhY3RlckRhdGE6OmdldFZhbHVlUHJvcGVydHkgOiAi
IDw8IHRva2VuIDw8IGVuZGw7Ci0gICAgcmV0dXJuIE5VTEw7Ci0gIH0KLX0KLQotdm9pZCBET01D
aGFyYWN0ZXJEYXRhOjpwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0cikKLXsKLSAgRE9NRXhjZXB0aW9uVHJh
bnNsYXRvciBleGNlcHRpb24oZXhlYyk7Ci0gIGlmIChwcm9wZXJ0eU5hbWUgPT0gImRhdGEiKQot
ICAgIHN0YXRpY19jYXN0PENoYXJhY3RlckRhdGFJbXBsICo+KGltcGwoKSktPnNldERhdGEodmFs
dWUtPnRvU3RyaW5nKGV4ZWMpLmRvbVN0cmluZygpLCBleGNlcHRpb24pOwotICBlbHNlCi0gICAg
RE9NTm9kZTo6cHV0KGV4ZWMsIHByb3BlcnR5TmFtZSx2YWx1ZSxhdHRyKTsKLX0KLQotSlNWYWx1
ZSAqRE9NQ2hhcmFjdGVyRGF0YVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKLXsKLSAgaWYgKCF0aGlz
T2JqLT5pbmhlcml0cygmS0pTOjpET01DaGFyYWN0ZXJEYXRhOjppbmZvKSkKLSAgICByZXR1cm4g
dGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICBET01FeGNlcHRpb25UcmFuc2xhdG9yIGV4
Y2VwdGlvbihleGVjKTsKLSAgQ2hhcmFjdGVyRGF0YUltcGwgJmRhdGEgPSAqc3RhdGljX2Nhc3Q8
Q2hhcmFjdGVyRGF0YUltcGwgKj4oc3RhdGljX2Nhc3Q8RE9NQ2hhcmFjdGVyRGF0YSAqPih0aGlz
T2JqKS0+aW1wbCgpKTsKLSAgc3dpdGNoKGlkKSB7Ci0gICAgY2FzZSBET01DaGFyYWN0ZXJEYXRh
OjpTdWJzdHJpbmdEYXRhOiB7Ci0gICAgICBjb25zdCBpbnQgY291bnQgPSBhcmdzWzFdLT50b0lu
dDMyKGV4ZWMpOwotICAgICAgaWYgKGNvdW50IDwgMCkKLSAgICAgICAgc2V0RE9NRXhjZXB0aW9u
KGV4ZWMsIERPTUV4Y2VwdGlvbjo6SU5ERVhfU0laRV9FUlIpOwotICAgICAgZWxzZQotICAgICAg
ICByZXR1cm4ganNTdHJpbmdPck51bGwoZGF0YS5zdWJzdHJpbmdEYXRhKGFyZ3NbMF0tPnRvSW50
MzIoZXhlYyksIGNvdW50LCBleGNlcHRpb24pKTsKLSAgICB9Ci0gICAgY2FzZSBET01DaGFyYWN0
ZXJEYXRhOjpBcHBlbmREYXRhOgotICAgICAgZGF0YS5hcHBlbmREYXRhKGFyZ3NbMF0tPnRvU3Ry
aW5nKGV4ZWMpLmRvbVN0cmluZygpLCBleGNlcHRpb24pOwotICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0gICAgY2FzZSBET01DaGFyYWN0ZXJEYXRhOjpJbnNlcnREYXRhOgotICAgICAgZGF0
YS5pbnNlcnREYXRhKGFyZ3NbMF0tPnRvSW50MzIoZXhlYyksIGFyZ3NbMV0tPnRvU3RyaW5nKGV4
ZWMpLmRvbVN0cmluZygpLCBleGNlcHRpb24pOwotICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0gICAgY2FzZSBET01DaGFyYWN0ZXJEYXRhOjpEZWxldGVEYXRhOiB7Ci0gICAgICBjb25zdCBp
bnQgY291bnQgPSBhcmdzWzFdLT50b0ludDMyKGV4ZWMpOwotICAgICAgaWYgKGNvdW50IDwgMCkK
LSAgICAgICAgc2V0RE9NRXhjZXB0aW9uKGV4ZWMsIERPTUV4Y2VwdGlvbjo6SU5ERVhfU0laRV9F
UlIpOwotICAgICAgZWxzZQotICAgICAgICBkYXRhLmRlbGV0ZURhdGEoYXJnc1swXS0+dG9JbnQz
MihleGVjKSwgY291bnQsIGV4Y2VwdGlvbik7Ci0gICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LSAgICB9Ci0gICAgY2FzZSBET01DaGFyYWN0ZXJEYXRhOjpSZXBsYWNlRGF0YTogewotICAgICAg
Y29uc3QgaW50IGNvdW50ID0gYXJnc1sxXS0+dG9JbnQzMihleGVjKTsKLSAgICAgIGlmIChjb3Vu
dCA8IDApCi0gICAgICAgIHNldERPTUV4Y2VwdGlvbihleGVjLCBET01FeGNlcHRpb246OklOREVY
X1NJWkVfRVJSKTsKLSAgICAgIGVsc2UKLSAgICAgICAgZGF0YS5yZXBsYWNlRGF0YShhcmdzWzBd
LT50b0ludDMyKGV4ZWMpLCBjb3VudCwgYXJnc1syXS0+dG9TdHJpbmcoZXhlYykuZG9tU3RyaW5n
KCksIGV4Y2VwdGlvbik7Ci0gICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLSAgICB9Ci0gICAg
ZGVmYXVsdDoKLSAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICB9Ci19Ci0KLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0KLQotY29uc3QgQ2xhc3NJbmZvIERPTVRleHQ6OmluZm8gPSB7ICJUZXh0IiwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZET01DaGFyYWN0ZXJEYXRhOjppbmZv
LCAwLCAwIH07Ci0vKgotQGJlZ2luIERPTVRleHRQcm90b1RhYmxlIDEKLSAgc3BsaXRUZXh0ICAg
ICBET01UZXh0OjpTcGxpdFRleHQgICAgICBEb250RGVsZXRlfEZ1bmN0aW9uIDEKLUBlbmQKLSov
Ci1LSlNfREVGSU5FX1BST1RPVFlQRShET01UZXh0UHJvdG8pCi1LSlNfSU1QTEVNRU5UX1BST1RP
RlVOQyhET01UZXh0UHJvdG9GdW5jKQotS0pTX0lNUExFTUVOVF9QUk9UT1RZUEVfV0lUSF9QQVJF
TlQoIkRPTVRleHQiLERPTVRleHRQcm90byxET01UZXh0UHJvdG9GdW5jLERPTUNoYXJhY3RlckRh
dGFQcm90bykKLQotRE9NVGV4dDo6RE9NVGV4dChFeGVjU3RhdGUgKmV4ZWMsIFRleHRJbXBsICp0
KQotICA6IERPTUNoYXJhY3RlckRhdGEodCkgCi17IAotICBzZXRQcm90b3R5cGUoRE9NVGV4dFBy
b3RvOjpzZWxmKGV4ZWMpKTsKLX0KLQotSlNWYWx1ZSAqRE9NVGV4dFByb3RvRnVuYzo6Y2FsbEFz
RnVuY3Rpb24oRXhlY1N0YXRlICpleGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAm
YXJncykKLXsKLSAgaWYgKCF0aGlzT2JqLT5pbmhlcml0cygmS0pTOjpET01UZXh0OjppbmZvKSkK
LSAgICByZXR1cm4gdGhyb3dFcnJvcihleGVjLCBUeXBlRXJyb3IpOwotICBET01FeGNlcHRpb25U
cmFuc2xhdG9yIGV4Y2VwdGlvbihleGVjKTsKLSAgVGV4dEltcGwgJnRleHQgPSAqc3RhdGljX2Nh
c3Q8VGV4dEltcGwgKj4oc3RhdGljX2Nhc3Q8RE9NVGV4dCAqPih0aGlzT2JqKS0+aW1wbCgpKTsK
LSAgc3dpdGNoKGlkKSB7Ci0gICAgY2FzZSBET01UZXh0OjpTcGxpdFRleHQ6Ci0gICAgICByZXR1
cm4gZ2V0RE9NTm9kZShleGVjLCB0ZXh0LnNwbGl0VGV4dChhcmdzWzBdLT50b0ludDMyKGV4ZWMp
LCBleGNlcHRpb24pKTsKLSAgfQotICByZXR1cm4ganNVbmRlZmluZWQoKTsKLX0KIAogfSAvLyBu
YW1lc3BhY2UKSW5kZXg6IGtodG1sL2VjbWEva2pzX2RvbS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtodG1s
L2VjbWEva2pzX2RvbS5oCShyZXZpc2lvbiAxMjU4NikKKysrIGtodG1sL2VjbWEva2pzX2RvbS5o
CShhcmJldHNrb3BpYSkKQEAgLTQzLDYgKzQzLDggQEAgbmFtZXNwYWNlIERPTSB7CiAKIG5hbWVz
cGFjZSBLSlMgewogCisgIEtKU19ERUZJTkVfUFJPVE9UWVBFKERPTU5vZGVQcm90bykKKwogICBj
bGFzcyBET01Ob2RlIDogcHVibGljIERPTU9iamVjdCB7CiAgIHB1YmxpYzoKICAgICBET01Ob2Rl
KEV4ZWNTdGF0ZSAqZXhlYywgRE9NOjpOb2RlSW1wbCAqbik7CkBAIC0xNDEsMTggKzE0Myw2IEBA
IG5hbWVzcGFjZSBLSlMgewogICAgIERPTURvY3VtZW50KERPTTo6RG9jdW1lbnRJbXBsICpkKTsK
ICAgfTsKIAotICBjbGFzcyBET01BdHRyIDogcHVibGljIERPTU5vZGUgewotICBwdWJsaWM6Ci0g
ICAgRE9NQXR0cihFeGVjU3RhdGUgKmV4ZWMsIERPTTo6QXR0ckltcGwgKmEpOwotICAgIHZpcnR1
YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIm
LCBQcm9wZXJ0eVNsb3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KEV4ZWNTdGF0ZSAqZXhlYywg
Y29uc3QgSWRlbnRpZmllciAmcHJvcGVydHlOYW1lLCBKU1ZhbHVlICp2YWx1ZSwgaW50IGF0dHIg
PSBOb25lKTsKLSAgICBKU1ZhbHVlICpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqZXhlYywg
aW50IHRva2VuKSBjb25zdDsKLSAgICB2b2lkIHB1dFZhbHVlUHJvcGVydHkoRXhlY1N0YXRlICpl
eGVjLCBpbnQgdG9rZW4sIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0cik7Ci0gICAgdmlydHVhbCBj
b25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9Ci0gICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAgIGVudW0geyBOYW1lLCBTcGVjaWZpZWQs
IFZhbHVlUHJvcGVydHksIE93bmVyRWxlbWVudCwgU3R5bGUgfTsKLSAgfTsKLQogICBET006OkF0
dHJJbXBsICp0b0F0dHIoSlNWYWx1ZSAqKTsgLy8gcmV0dXJucyAwIGlmIHBhc3NlZC1pbiB2YWx1
ZSBpcyBub3QgYSBET01BdHRyIG9iamVjdAogCiAgIGNsYXNzIERPTUVsZW1lbnQgOiBwdWJsaWMg
RE9NTm9kZSB7CkBAIC0yMDAsMzkgKzE5MCw2IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFJlZlB0
cjxET006Ok5hbWVkTm9kZU1hcEltcGw+IG1faW1wbDsKICAgfTsKIAotICBjbGFzcyBET01Qcm9j
ZXNzaW5nSW5zdHJ1Y3Rpb24gOiBwdWJsaWMgRE9NTm9kZSB7Ci0gIHB1YmxpYzoKLSAgICBET01Q
cm9jZXNzaW5nSW5zdHJ1Y3Rpb24oRXhlY1N0YXRlICpleGVjLCBET006OlByb2Nlc3NpbmdJbnN0
cnVjdGlvbkltcGwgKnBpKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4
ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgSlNWYWx1
ZSAqZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3Q7Ci0g
ICAgdmlydHVhbCB2b2lkIHB1dChFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSAqdmFsdWUsIGludCBhdHRyID0gTm9uZSk7Ci0gICAgdmlydHVh
bCBjb25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9Ci0g
ICAgc3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAgIGVudW0geyBUYXJnZXQsIERhdGEs
IFNoZWV0IH07Ci0gIH07Ci0KLSAgY2xhc3MgRE9NTm90YXRpb24gOiBwdWJsaWMgRE9NTm9kZSB7
Ci0gIHB1YmxpYzoKLSAgICBET01Ob3RhdGlvbihFeGVjU3RhdGUgKmV4ZWMsIERPTTo6Tm90YXRp
b25JbXBsICpuKTsKLSAgICB2aXJ0dWFsIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0
ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVydHlTbG90Jik7Ci0gICAgSlNWYWx1ZSAqZ2V0
VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMsIGludCB0b2tlbikgY29uc3Q7Ci0gICAgLy8g
bm8gcHV0IC0gYWxsIHJlYWQtb25seQotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFz
c0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsgfQotICAgIHN0YXRpYyBjb25zdCBDbGFzc0lu
Zm8gaW5mbzsKLSAgICBlbnVtIHsgUHVibGljSWQsIFN5c3RlbUlkIH07Ci0gIH07Ci0KLSAgY2xh
c3MgRE9NRW50aXR5IDogcHVibGljIERPTU5vZGUgewotICBwdWJsaWM6Ci0gICAgRE9NRW50aXR5
KEV4ZWNTdGF0ZSAqZXhlYywgRE9NOjpFbnRpdHlJbXBsICplKTsKLSAgICB2aXJ0dWFsIGJvb2wg
Z2V0T3duUHJvcGVydHlTbG90KEV4ZWNTdGF0ZSAqLCBjb25zdCBJZGVudGlmaWVyJiwgUHJvcGVy
dHlTbG90Jik7Ci0gICAgSlNWYWx1ZSAqZ2V0VmFsdWVQcm9wZXJ0eShFeGVjU3RhdGUgKmV4ZWMs
IGludCB0b2tlbikgY29uc3Q7Ci0gICAgLy8gbm8gcHV0IC0gYWxsIHJlYWQtb25seQotICAgIHZp
cnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmaW5mbzsg
fQotICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKLSAgICBlbnVtIHsgUHVibGljSWQs
IFN5c3RlbUlkLCBOb3RhdGlvbk5hbWUgfTsKLSAgfTsKLQogICAvLyBDb25zdHJ1Y3RvciBmb3Ig
Tm9kZSAtIGNvbnN0cnVjdG9yIHN0dWZmIG5vdCBpbXBsZW1lbnRlZCB5ZXQKICAgY2xhc3MgTm9k
ZUNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7CiAgIHB1YmxpYzoKQEAgLTI3OCwzMSAr
MjM1LDYgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgUVZhbHVlTGlzdDwgUmVmUHRyPERPTTo6Tm9k
ZUltcGw+ID4gbV9ub2RlczsKICAgfTsKIAotICBjbGFzcyBET01DaGFyYWN0ZXJEYXRhIDogcHVi
bGljIERPTU5vZGUgewotICBwdWJsaWM6Ci0gICAgRE9NQ2hhcmFjdGVyRGF0YShFeGVjU3RhdGUg
KmV4ZWMsIERPTTo6Q2hhcmFjdGVyRGF0YUltcGwgKmQpOwotICAgIHZpcnR1YWwgYm9vbCBnZXRP
d25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXImLCBQcm9wZXJ0eVNs
b3QmKTsKLSAgICBKU1ZhbHVlICpnZXRWYWx1ZVByb3BlcnR5KEV4ZWNTdGF0ZSAqLCBpbnQgdG9r
ZW4pIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBwdXQoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJ
ZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgKnZhbHVlLCBpbnQgYXR0ciA9IE5vbmUp
OwotICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVy
biAmaW5mbzsgfQotICAgIHN0YXRpYyBjb25zdCBDbGFzc0luZm8gaW5mbzsKLSAgICBET006OkNo
YXJhY3RlckRhdGFJbXBsICp0b0RhdGEoKSBjb25zdDsKLSAgICBlbnVtIHsgRGF0YSwgTGVuZ3Ro
LAotICAgICAgICAgICBTdWJzdHJpbmdEYXRhLCBBcHBlbmREYXRhLCBJbnNlcnREYXRhLCBEZWxl
dGVEYXRhLCBSZXBsYWNlRGF0YSB9OwotICBwcm90ZWN0ZWQ6Ci0gICAgLy8gQ29uc3RydWN0b3Ig
Zm9yIGluaGVyaXRlZCBjbGFzc2VzOyBkb2Vzbid0IHNldCB1cCBhIHByb3RvdHlwZS4KLSAgICBE
T01DaGFyYWN0ZXJEYXRhKERPTTo6Q2hhcmFjdGVyRGF0YUltcGwgKmQpOwotICB9OwotCi0gIGNs
YXNzIERPTVRleHQgOiBwdWJsaWMgRE9NQ2hhcmFjdGVyRGF0YSB7Ci0gIHB1YmxpYzoKLSAgICBE
T01UZXh0KEV4ZWNTdGF0ZSAqZXhlYywgRE9NOjpUZXh0SW1wbCAqdCk7Ci0gICAgdmlydHVhbCBj
b25zdCBDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZpbmZvOyB9Ci0gICAg
c3RhdGljIGNvbnN0IENsYXNzSW5mbyBpbmZvOwotICAgIERPTTo6VGV4dEltcGwgKnRvVGV4dCgp
IGNvbnN0OwotICAgIGVudW0geyBTcGxpdFRleHQgfTsKLSAgfTsKLQogfSAvLyBuYW1lc3BhY2UK
IAogI2VuZGlmCkluZGV4OiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24g
MTI1ODYpCisrKyBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkoYXJiZXRza29w
aWEpCkBAIC0xODcsNiArMTg3LDggQEAgc3ViIEFkZEluY2x1ZGVzRm9yVHlwZQogICAgICAgJHR5
cGUgZXEgIkRvY3VtZW50IiBvcgogICAgICAgJHR5cGUgZXEgIkRPTUltcGxlbWVudGF0aW9uIikg
ewogICAgICRpbXBsSW5jbHVkZXN7IiR7dHlwZX1JbXBsLmgifSA9IDE7CisgIH0gZWxzaWYgKCR0
eXBlIGVxICJBdHRyIikgeworICAgICRpbXBsSW5jbHVkZXN7ImRvbV9lbGVtZW50aW1wbC5oIn0g
PSAxOwogICB9IGVsc2lmICgkdHlwZSBlcSAiQ1NTU3R5bGVTaGVldCIpIHsKICAgICAkaW1wbElu
Y2x1ZGVzeyJjc3Nfc3R5bGVzaGVldGltcGwuaCJ9ID0gMTsKICAgfSBlbHNpZiAoJHR5cGUgZXEg
IkhUTUxEb2N1bWVudCIpIHsKQEAgLTE5NCw3ICsxOTYsMTUgQEAgc3ViIEFkZEluY2x1ZGVzRm9y
VHlwZQogICB9IGVsc2lmICgkdHlwZSBlcSAiTXV0YXRpb25FdmVudCIgb3IKICAgICAgICAgICAg
JHR5cGUgZXEgIldoZWVsRXZlbnQiKSB7CiAgICAgJGltcGxJbmNsdWRlc3siZG9tMl9ldmVudHNp
bXBsLmgifSA9IDE7Ci0gIH0gZWxzaWYgKCRjb2RlR2VuZXJhdG9yLT5Jc1ByaW1pdGl2ZVR5cGUo
JHR5cGUpKSB7CisgIH0gZWxzaWYgKCR0eXBlIGVxICJQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24iIG9y
CisgICAgICAgICAgICR0eXBlIGVxICJFbnRpdHkiIG9yCisgICAgICAgICAgICR0eXBlIGVxICJO
b3RhdGlvbiIpIHsKKyAgICAkaW1wbEluY2x1ZGVzeyJkb21feG1saW1wbC5oIn0gPSAxOworICB9
IGVsc2lmICgkdHlwZSBlcSAiVGV4dCIgb3IgCisgICAgICAgICAgICR0eXBlIGVxICJDaGFyYWN0
ZXJEYXRhIikgeworICAgICRpbXBsSW5jbHVkZXN7ImRvbV90ZXh0aW1wbC5oIn0gPSAxOworICB9
IGVsc2lmICgkY29kZUdlbmVyYXRvci0+SXNQcmltaXRpdmVUeXBlKCR0eXBlKSBvcgorICAgICAg
ICAgICAkdHlwZSBlcSAiRE9NU3RyaW5nIikgewogICAgICMgRG8gbm90aGluZwogICB9IGVsc2Ug
ewogICAgIGRpZSAiRG9uJ3Qga25vdyB3aGF0IHRvIGluY2x1ZGUgZm9yIGludGVyZmFjZSAkdHlw
ZSI7CkBAIC02NTEsNiArNjYxLDE1IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICBmb3JlYWNoIG15ICRwYXJhbWV0ZXIgKEB7JGZ1bmN0aW9uLT5wYXJhbWV0ZXJzfSkgewogICAg
ICAgICBteSAkbmFtZSA9ICRwYXJhbWV0ZXItPm5hbWU7CiAgICAgICAgIHB1c2goQGltcGxDb250
ZW50LCAiICAgICAgICAiIC4gR2V0TmF0aXZlVHlwZSgkcGFyYW1ldGVyKSAuICIgJG5hbWUgPSAi
IC4gSlNWYWx1ZVRvTmF0aXZlKCRwYXJhbWV0ZXIsICJhcmdzWyRwYXJhbUluZGV4XSIpIC4gIjtc
biIpOyAgICAgICAgCisgICAgICAgIAorICAgICAgICAjIElmIGEgcGFyYW1ldGVyIGlzICJhbiBp
bmRleCIsIGl0IHNob3VsZCB0aHJvdyBhbiBJTkRFWF9TSVpFX0VSUgorICAgICAgICAjIGV4Y2Vw
dGlvbiAgICAgICAgCisgICAgICAgIGlmICgkcGFyYW1ldGVyLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PnsiSXNJbmRleCJ9KSB7CisgICAgICAgICAgJGltcGxJbmNsdWRlc3siZG9tX2V4Y2VwdGlvbi5o
In0gPSAxOworICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBpZiAoJG5hbWUg
PCAwKSB7XG4iKTsKKyAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgICAgIHNl
dERPTUV4Y2VwdGlvbihleGVjLCBET01FeGNlcHRpb246OklOREVYX1NJWkVfRVJSKTtcbiIpOwor
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICAgICAgYnJlYWs7XG4gICAgICAg
IH1cbiIpOyAgICAgICAgICAKKyAgICAgICAgfQogICAgICAgICAkcGFyYW1JbmRleCsrOwogICAg
ICAgICAKICAgICAgICAgaWYgKCRwYXJhbUluZGV4IDwgJG51bVBhcmFtZXRlcnMpIHsKQEAgLTY5
MSw3ICs3MTAsMTMgQEAgc3ViIEdldE5hdGl2ZVR5cGUKICAgaWYgKCR0eXBlIGVxICJib29sZWFu
IikgewogICAgIHJldHVybiAiYm9vbCI7CiAgIH0gZWxzaWYgKCR0eXBlIGVxICJ1bnNpZ25lZCBs
b25nIikgewotICAgIHJldHVybiAidW5zaWduZWQiOworICAgIGlmICgkc2lnbmF0dXJlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPnsiSXNJbmRleCJ9KSB7CisgICAgICAjIFNwZWNpYWwtY2FzZSBpbmRl
eCBhcmd1bWVudHMgYmVjYXVzZSB3ZSBuZWVkIHRvIGNoZWNrIHRoYXQKKyAgICAgICMgdGhleSBh
cmVuJ3QgPCAwLiAgICAgICAgCisgICAgICByZXR1cm4gImludCI7CisgICAgfSBlbHNlIHsKKyAg
ICAgIHJldHVybiAidW5zaWduZWQiOworICAgIH0gCiAgIH0gZWxzaWYgKCR0eXBlIGVxICJsb25n
IikgewogICAgIHJldHVybiAiaW50IjsKICAgfSBlbHNpZiAoJHR5cGUgZXEgInVuc2lnbmVkIHNo
b3J0IikgewpAQCAtNzcxLDcgKzc5Niw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUKICAgICB9CiAg
IH0gZWxzaWYgKCR0eXBlIGVxICJOb2RlIiBvciAkdHlwZSBlcSAiVGV4dCIgb3IKICAgICAgICAg
ICAgJHR5cGUgZXEgIkRvY3VtZW50VHlwZSIgb3IgJHR5cGUgZXEgIkRvY3VtZW50IiBvcgotICAg
ICAgICAgICAkdHlwZSBlcSAiSFRNTERvY3VtZW50IikgeworICAgICAgICAgICAkdHlwZSBlcSAi
SFRNTERvY3VtZW50IiBvciAkdHlwZSBlcSAiRWxlbWVudCIpIHsKICAgICAjIEFkZCBuZWNlc3Nh
cnkgaW5jbHVkZXMKICAgICAkaW1wbEluY2x1ZGVzeyJranNfZG9tLmgifSA9IDE7ICAgCiAgICAg
JGltcGxJbmNsdWRlc3siTm9kZUltcGwuaCJ9ID0gMTsgICAgIApAQCAtNzgwLDExICs4MDUsMTcg
QEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZQogICAgICMgQWRkIG5lY2Vzc2FyeSBpbmNsdWRlcwogICAg
ICRpbXBsSW5jbHVkZXN7Imtqc19kb20uaCJ9ID0gMTsgICAgCiAgICAgcmV0dXJuICJnZXRET01O
YW1lZE5vZGVNYXAoZXhlYywgJHZhbHVlKSI7Ci0gIH0gZWxzaWYgKCR0eXBlIGVxICJDU1NTdHls
ZVNoZWV0IikgeworICB9IGVsc2lmICgkdHlwZSBlcSAiQ1NTU3R5bGVTaGVldCIgb3IgCisgICAg
ICAgICAgICR0eXBlIGVxICJTdHlsZVNoZWV0IikgewogICAgICMgQWRkIG5lY2Vzc2FyeSBpbmNs
dWRlcwogICAgICRpbXBsSW5jbHVkZXN7ImNzc19ydWxlaW1wbC5oIn0gPSAxOyAgICAKICAgICAk
aW1wbEluY2x1ZGVzeyJranNfY3NzLmgifSA9IDE7ICAgICAgICAKICAgICByZXR1cm4gImdldERP
TVN0eWxlU2hlZXQoZXhlYywgJHZhbHVlKSI7ICAgIAorICB9IGVsc2lmICgkdHlwZSBlcSAiQ1NT
U3R5bGVEZWNsYXJhdGlvbiIpIHsKKyAgICAjIEFkZCBuZWNlc3NhcnkgaW5jbHVkZXMKKyAgICAk
aW1wbEluY2x1ZGVzeyJjc3NfdmFsdWVpbXBsLmgifSA9IDE7IAorICAgICRpbXBsSW5jbHVkZXN7
Imtqc19jc3MuaCJ9ID0gMTsgICAgICAgICAgICAKKyAgICByZXR1cm4gImdldERPTUNTU1N0eWxl
RGVjbGFyYXRpb24oZXhlYywgJHZhbHVlKSI7CiAgIH0gZWxzZSB7CiAgICAgZGllICJEb24ndCBr
bm93IGhvdyB0byBjb252ZXJ0IGEgdmFsdWUgb2YgdHlwZSAkdHlwZSB0byBhIEpTIFZhbHVlIjsK
ICAgfQpJbmRleDogQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIENoYW5nZUxvZwkocmV2aXNpb24g
MTI1ODYpCisrKyBDaGFuZ2VMb2cJKGFyYmV0c2tvcGlhKQpAQCAtMSwzICsxLDM1IEBACisyMDA2
LTAyLTA1ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBtYWMuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gaHR0cDovL2J1Z3ppbGxhLm9w
ZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD03MDkxCisgICAgICAgIEF1dG9nZW5lcmF0ZSBl
dmVuIG1vcmUuCisKKyAgICAgICAgKiBKU0NvcmUuY3BwOgorICAgICAgICBBZGQgbmV3IGdlbmVy
YXRlZCBmaWxlcy4KKyAgICAgICAgCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2Vu
ZXJhdG9ySlMucG06CisgICAgICAgIEFkZCAiSXNJbmRleCIgZXh0ZW5kZWQgYXR0cmlidXRlIGZv
ciBwYXJhbWV0ZXJzLiBBbnkgcGFyYW1ldGVyIHRoYXQgaXMgInVuc2lnbmVkIGxvbmciIAorICAg
ICAgICBhbmQgaGFzIHRoaXMgYXR0cmlidXRlIHdpbGwgYmUgY2hlY2tlZCB0byBtYWtlIHN1cmUg
dGhhdCBpdCdzIG5vdCA8IDAuIElmIGl0IGlzLCBhbiBpbmRleCBzaXplIGVycm9yCisgICAgICAg
IGV4Y2VwdGlvbiB3aWxsIGJlIHRocm93bi4KKyAgICAgICAgCisgICAgICAgICoga2h0bWwvZWNt
YS9ranNfZG9tLmNwcDoKKyAgICAgICAgKEtKUzo6dG9BdHRyKToKKyAgICAgICAgVXNlIEpTQXR0
cjo6aW5mby4KKyAgICAgICAgCisgICAgICAgIChLSlM6OmdldERPTU5vZGUpOgorICAgICAgICBV
c2UgbmV3IGNvbnN0cnVjdG9ycy4KKyAgICAgICAgCisgICAgICAgICoga2h0bWwvZWNtYS9ranNf
ZG9tLmg6CisgICAgICAgIFJlbW92ZSBjbGFzc2VzIHRoYXQgYXJlIGdlbmVyYXRlZCBub3cuCisg
ICAgICAgIAorICAgICAgICAqIGtodG1sL3htbC9BdHRyLmlkbDogQWRkZWQuCisgICAgICAgICog
a2h0bWwveG1sL0NoYXJhY3RlckRhdGEuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBraHRtbC94bWwv
RW50aXR5LmlkbDogQWRkZWQuCisgICAgICAgICoga2h0bWwveG1sL05vdGF0aW9uLmlkbDogQWRk
ZWQuCisgICAgICAgICoga2h0bWwveG1sL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGw6IEFkZGVk
LgorICAgICAgICAqIGtodG1sL3htbC9UZXh0LmlkbDogQWRkZWQuCisKIDIwMDYtMDItMDUgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEdlb2Zm
LgpJbmRleDogSlNDb3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKU0NvcmUuY3BwCShyZXZpc2lvbiAx
MjU4NikKKysrIEpTQ29yZS5jcHAJKGFyYmV0c2tvcGlhKQpAQCAtMiw2ICsyLDExIEBACiAKIC8v
IFRoZXNlIGFyZSBnZW5lcmF0ZWQgZmlsZXMKIAotI2luY2x1ZGUgIkpTRE9NSW1wbGVtZW50YXRp
b24uY3BwIgorI2luY2x1ZGUgIkpTQXR0ci5jcHAiCisjaW5jbHVkZSAiSlNDaGFyYWN0ZXJEYXRh
LmNwcCIKICNpbmNsdWRlICJKU0RvY3VtZW50VHlwZS5jcHAiCi0KKyNpbmNsdWRlICJKU0RPTUlt
cGxlbWVudGF0aW9uLmNwcCIKKyNpbmNsdWRlICJKU0VudGl0eS5jcHAiCisjaW5jbHVkZSAiSlNO
b3RhdGlvbi5jcHAiCisjaW5jbHVkZSAiSlNQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24uY3BwIgorI2lu
Y2x1ZGUgIkpTVGV4dC5jcHAiCg==
</data>
<flag name="review"
          id="1518"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>