<?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>70710</bug_id>
          
          <creation_ts>2011-10-23 23:18:27 -0700</creation_ts>
          <short_desc>Eliminate OptionElement (second and final part)</short_desc>
          <delta_ts>2011-10-23 23:58:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>jonlee</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>489197</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-23 23:18:27 -0700</bug_when>
    <thetext>Eliminate OptionElement (second and final part)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489198</commentid>
    <comment_count>1</comment_count>
      <attachid>112155</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-23 23:20:54 -0700</bug_when>
    <thetext>Created attachment 112155
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489204</commentid>
    <comment_count>2</comment_count>
      <attachid>112155</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-23 23:43:14 -0700</bug_when>
    <thetext>Comment on attachment 112155
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=112155&amp;action=review

Looks good

&gt; Source/WebCore/ChangeLog:21
&gt; +        toElement function. Use hasTagName and toHTMLOptionElement instead.

toElement -&gt; toOptionElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489205</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-23 23:58:14 -0700</bug_when>
    <thetext>Committed r98219: &lt;http://trac.webkit.org/changeset/98219&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112155</attachid>
            <date>2011-10-23 23:20:54 -0700</date>
            <delta_ts>2011-10-23 23:43:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70710-20111023232053.patch</filename>
            <type>text/plain</type>
            <size>26928</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk4MjE3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMTAtMjMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIEVsaW1pbmF0ZSBPcHRpb25FbGVtZW50
IChzZWNvbmQgYW5kIGZpbmFsIHBhcnQpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MDcxMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6IFJlbW92ZWQgT3B0aW9uRWxlbWVudC5o
IGFuZCBPcHRpb25FbGVtZW50LmNwcC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUu
cHJvOiBEaXR0by4KKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajogRGl0
dG8uCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBEaXR0by4K
KyAgICAgICAgKiBkb20vRE9NQWxsSW5PbmUuY3BwOiBEaXR0by4KKworICAgICAgICAqIGRvbS9P
cHRpb25FbGVtZW50LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20vT3B0aW9uRWxlbWVudC5o
OiBSZW1vdmVkLgorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2F2ZUxhc3RTZWxlY3Rpb24pOiBFbGlt
aW5hdGUgdXNlIG9mIHRoZQorICAgICAgICB0b0VsZW1lbnQgZnVuY3Rpb24uIFVzZSBoYXNUYWdO
YW1lIGFuZCB0b0hUTUxPcHRpb25FbGVtZW50IGluc3RlYWQuCisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2VsZWN0RWxlbWVudDo6c2V0QWN0aXZlU2VsZWN0aW9uQW5jaG9ySW5kZXgpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94U2VsZWN0
aW9uKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJv
eE9uQ2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6
cmVjYWxjTGlzdEl0ZW1zKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxl
bWVudDo6c2VsZWN0ZWRJbmRleCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVj
dEVsZW1lbnQ6OnNldFNlbGVjdGVkSW5kZXgpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24pOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0
ZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxl
bWVudDo6YXBwZW5kRm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxl
Y3RFbGVtZW50OjpyZXNldCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkU3RhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxTZWxlY3RFbGVtZW50OjpsYXN0U2VsZWN0ZWRMaXN0SW5kZXgpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50Ojp0eXBlQWhlYWRGaW5kKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6YWNjZXNzS2V5U2V0U2VsZWN0ZWRJbmRl
eCk6IERpdHRvLgorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOiBDaGFuZ2Vk
IHRoZSBhcmd1bWVudCB0eXBlIG9mIHRoZQorICAgICAgICBkZXNlbGVjdEl0ZW1zV2l0aG91dFZh
bGlkYXRpb24gZnVuY3Rpb24gdG8gSFRNTEVsZW1lbnQqIHNpbmNlIHRoYXQncworICAgICAgICB0
aGUgdHlwZSBvZiBhbiBpdGVtIGluIG91ciBpdGVtcyB2ZWN0b3Igbm93LgorCiAyMDExLTEwLTIz
ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgPGltZyBjcm9zc29y
aWdpbj4gc2hvdWxkIGZhaWwgdG8gbG9hZCB3aGVuIENPUlMgY2hlY2sgZmFpbHMKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiA5ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC01NzYsNyArNTc2LDYgQEAgU0VUKFdlYkNvcmVf
U09VUkNFUwogICAgIGRvbS9Ob2RlSXRlcmF0b3IuY3BwCiAgICAgZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcAogICAgIGRvbS9Ob3RhdGlvbi5jcHAKLSAgICBkb20vT3B0aW9uRWxlbWVudC5j
cHAKICAgICBkb20vT3ZlcmZsb3dFdmVudC5jcHAKICAgICBkb20vUGFnZVRyYW5zaXRpb25FdmVu
dC5jcHAKICAgICBkb20vUGVuZGluZ1NjcmlwdC5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvR05VbWFrZWZp
bGUubGlzdC5hbQkocmV2aXNpb24gOTgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtCSh3b3JraW5nIGNvcHkpCkBAIC0xMjc2LDggKzEyNzYsNiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlV2l0aEluZGV4LmggXAogCVNvdXJj
ZS9XZWJDb3JlL2RvbS9Ob3RhdGlvbi5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9Ob3RhdGlv
bi5oIFwKLQlTb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAgXAotCVNvdXJjZS9X
ZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL2RvbS9PdmVyZmxv
d0V2ZW50LmNwcCBcCiAJU291cmNlL1dlYkNvcmUvZG9tL092ZXJmbG93RXZlbnQuaCBcCiAJU291
cmNlL1dlYkNvcmUvZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIFwKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkJKHJldmlzaW9uIDk4MjE1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3
b3JraW5nIGNvcHkpCkBAIC01MjU1LDggKzUyNTUsNiBAQAogICAgICAgICAgICAgJ2RvbS9Ob2Rl
V2l0aEluZGV4LmgnLAogICAgICAgICAgICAgJ2RvbS9Ob3RhdGlvbi5jcHAnLAogICAgICAgICAg
ICAgJ2RvbS9Ob3RhdGlvbi5oJywKLSAgICAgICAgICAgICdkb20vT3B0aW9uRWxlbWVudC5jcHAn
LAotICAgICAgICAgICAgJ2RvbS9PcHRpb25FbGVtZW50LmgnLAogICAgICAgICAgICAgJ2RvbS9P
dmVyZmxvd0V2ZW50LmNwcCcsCiAgICAgICAgICAgICAnZG9tL092ZXJmbG93RXZlbnQuaCcsCiAg
ICAgICAgICAgICAnZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwJywKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
cHJvCShyZXZpc2lvbiA5ODIxNSkKKysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCSh3b3Jr
aW5nIGNvcHkpCkBAIC01MjksNyArNTI5LDYgQEAgU09VUkNFUyArPSBcCiAgICAgZG9tL05vZGVJ
dGVyYXRvci5jcHAgXAogICAgIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAgXAogICAgIGRv
bS9Ob3RhdGlvbi5jcHAgXAotICAgIGRvbS9PcHRpb25FbGVtZW50LmNwcCBcCiAgICAgZG9tL1N0
YXRpY0hhc2hTZXROb2RlTGlzdC5jcHAgXAogICAgIGRvbS9PdmVyZmxvd0V2ZW50LmNwcCBcCiAg
ICAgZG9tL1BhZ2VUcmFuc2l0aW9uRXZlbnQuY3BwIFwKQEAgLTE1NzksNyArMTU3OCw2IEBAIEhF
QURFUlMgKz0gXAogICAgIGRvbS9Ob2RlSXRlcmF0b3IuaCBcCiAgICAgZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmggXAogICAgIGRvbS9Ob3RhdGlvbi5oIFwKLSAgICBkb20vT3B0aW9uRWxlbWVu
dC5oIFwKICAgICBkb20vU3RhdGljSGFzaFNldE5vZGVMaXN0LmggXAogICAgIGRvbS9PdmVyZmxv
d0V2ZW50LmggXAogICAgIGRvbS9QYWdlVHJhbnNpdGlvbkV2ZW50LmggXApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9uIDk4MjE1
KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtp
bmcgY29weSkKQEAgLTQ2OTUwLDYyICs0Njk1MCw2IEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJ
PEZpbGUKLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxPcHRpb25FbGVtZW50LmNwcCIKLQkJCQk+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IkRlYnVnfFdpbjMyIgotCQkJCQlF
eGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0i
VkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJ
CTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJSZWxlYXNlfFdpbjMyIgotCQkJCQlFeGNs
dWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9vbAotCQkJCQkJTmFtZT0iVkND
TENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25maWd1cmF0aW9uPgotCQkJCTxG
aWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19DYWlyb19DRkxpdGV8V2luMzIiCi0J
CQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29sCi0JCQkJCQlO
YW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZpZ3VyYXRpb24+
Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlJlbGVhc2VfQ2Fpcm9fQ0ZMaXRl
fFdpbjMyIgotCQkJCQlFeGNsdWRlZEZyb21CdWlsZD0idHJ1ZSIKLQkJCQkJPgotCQkJCQk8VG9v
bAotCQkJCQkJTmFtZT0iVkNDTENvbXBpbGVyVG9vbCIKLQkJCQkJLz4KLQkJCQk8L0ZpbGVDb25m
aWd1cmF0aW9uPgotCQkJCTxGaWxlQ29uZmlndXJhdGlvbgotCQkJCQlOYW1lPSJEZWJ1Z19BbGx8
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQkJPEZpbGVDb25maWd1cmF0aW9uCi0JCQkJCU5hbWU9IlByb2R1Y3Rpb258
V2luMzIiCi0JCQkJCUV4Y2x1ZGVkRnJvbUJ1aWxkPSJ0cnVlIgotCQkJCQk+Ci0JCQkJCTxUb29s
Ci0JCQkJCQlOYW1lPSJWQ0NMQ29tcGlsZXJUb29sIgotCQkJCQkvPgotCQkJCTwvRmlsZUNvbmZp
Z3VyYXRpb24+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQotCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XE9wdGlvbkVsZW1lbnQuaCIKLQkJCQk+Ci0JCQk8L0ZpbGU+Ci0JCQk8RmlsZQogCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXE92ZXJmbG93RXZlbnQuY3BwIgogCQkJCT4KIAkJCQk8RmlsZUNvbmZp
Z3VyYXRpb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDk4MjE1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQsOCArMTQ0
LDYgQEAKIAkJMDg2NDFENDcxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VT
dHlsZUltYWdlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDA4NjQxRDQ1MTIxNDJGN0QwMDhERTlGNiAvKiBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJ
bWFnZS5jcHAgKi87IH07CiAJCTA4NjQxRDQ4MTIxNDJGN0QwMDhERTlGNiAvKiBSZW5kZXJJbWFn
ZVJlc291cmNlU3R5bGVJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMDg2NDFENDYxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3Vy
Y2VTdHlsZUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMDg2QkJEMEYxMzYwMzlDMjAwOEIxNUQ4IC8qIEdseXBoLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODZCQkQwRTEzNjAzOUMyMDA4QjE1
RDggLyogR2x5cGguaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1MTBGMjZC
OUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgKi87IH07Ci0JCTA4NzI4MTU2MEYyNkI5
QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODcyODE1MjBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxl
bWVudC5oICovOyB9OwogCQkwODczQjg2QjEzNjA2NEVBMDBBNTIyQzIgLyogR2x5cGhQYWdlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwODczQjg2QTEz
NjA2NEVBMDBBNTIyQzIgLyogR2x5cGhQYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMDg3NTU4QzUxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJv
Z2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAwODc1NThDMzEzQjRBNTdEMDBGNDkzMDcgLyogU3Vycm9nYXRl
UGFpckF3YXJlVGV4dEl0ZXJhdG9yLmNwcCAqLzsgfTsKIAkJMDg3NTU4QzYxM0I0QTU3RDAwRjQ5
MzA3IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDg3NTU4QzQxM0I0QTU3RDAwRjQ5MzA3IC8q
IFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC03MTQyLDggKzcxNDAsNiBAQAogCQkwODY0MUQ0
NTEyMTQyRjdEMDA4REU5RjYgLyogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVySW1hZ2VSZXNvdXJjZVN0
eWxlSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwODY0MUQ0NjEyMTQy
RjdEMDA4REU5RjYgLyogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxlSW1hZ2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg2QkJEMEUxMzYwMzlDMjAwOEIxNUQ4IC8q
IEdseXBoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdseXBoLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTA4NzI4MTUxMEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRp
b25FbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE9wdGlv
bkVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkwODcyODE1MjBGMjZC
OUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBPcHRpb25FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA4
NzNCODZBMTM2MDY0RUEwMEE1MjJDMiAvKiBHbHlwaFBhZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gR2x5cGhQYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTA4NzU1OEMzMTNCNEE1N0QwMEY0OTMwNyAvKiBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0SXRlcmF0
b3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3Vycm9nYXRlUGFp
ckF3YXJlVGV4dEl0ZXJhdG9yLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDg3
NTU4QzQxM0I0QTU3RDAwRjQ5MzA3IC8qIFN1cnJvZ2F0ZVBhaXJBd2FyZVRleHRJdGVyYXRvci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdXJyb2dhdGVQYWlyQXdhcmVUZXh0
SXRlcmF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIxMDQ4LDggKzIxMDQ0
LDYgQEAKIAkJCQlBOEVBN0VCNzBBMTk0NUQwMDBBOEVGNUYgLyogTm90YXRpb24uY3BwICovLAog
CQkJCUE4RUE3RUI2MEExOTQ1RDAwMEE4RUY1RiAvKiBOb3RhdGlvbi5oICovLAogCQkJCTkzRUVD
MUY0MDlDMjg3NzcwMEM1MTVEMSAvKiBOb3RhdGlvbi5pZGwgKi8sCi0JCQkJMDg3MjgxNTEwRjI2
QjlCNjAwQUZDNTk2IC8qIE9wdGlvbkVsZW1lbnQuY3BwICovLAotCQkJCTA4NzI4MTUyMEYyNkI5
QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggKi8sCiAJCQkJMUEwRDU3MzQwQTVDNzdGRTAw
N0VERDRDIC8qIE92ZXJmbG93RXZlbnQuY3BwICovLAogCQkJCTFBMEQ1NzM1MEE1Qzc3RkUwMDdF
REQ0QyAvKiBPdmVyZmxvd0V2ZW50LmggKi8sCiAJCQkJMUEwRDU3MzgwQTVDNzgxMjAwN0VERDRD
IC8qIE92ZXJmbG93RXZlbnQuaWRsICovLApAQCAtMjM1NDcsNyArMjM1NDEsNiBAQAogCQkJCUZE
QTNFOTVDMTM0QTQ5RUYwMDhENEI1QSAvKiBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNh
bml0aXplci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkUyNDQ1RjcxMzk1ODkzQTAwNEI2QzE5IC8q
IE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTA4NzI4
MTU2MEYyNkI5QjYwMEFGQzU5NiAvKiBPcHRpb25FbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwMDE0NjI4QjEwM0NEMURFMDAwQjIwREIgLyogT3JpZ2luQWNjZXNzRW50cnkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQTkyNjdEMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmlnaW5RdW90YU1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxQTkyNjdGMEQ1M0YwNTcwMDYzRUNDMiAvKiBPcmln
aW5Vc2FnZVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjU4NCw3ICsyNjU3Nyw2IEBACiAJ
CQkJRkRBM0U5NTkxMzRBNDlFRjAwOEQ0QjVBIC8qIE9mZmxpbmVBdWRpb0NvbXBsZXRpb25FdmVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGREEzRTk1QjEzNEE0OUVGMDA4RDRCNUEgLyogT2Zm
bGluZUF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUY0RUFGNEFF
MTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgaW4gU291cmNlcyAqLywK
LQkJCQkwODcyODE1NTBGMjZCOUI2MDBBRkM1OTYgLyogT3B0aW9uRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkwMDE0NjI4QTEwM0NEMURFMDAwQjIwREIgLyogT3JpZ2luQWNjZXNzRW50
cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFBOTI2N0MwRDUzRjA1NzAwNjNFQ0MyIC8qIE9y
aWdpblF1b3RhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUE5MjY3RTBENTNGMDU3
MDA2M0VDQzIgLyogT3JpZ2luVXNhZ2VSZWNvcmQuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9kb20vRE9NQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2RvbS9ET01BbGxJbk9uZS5jcHAJKHJldmlzaW9uIDk4MjE1KQorKysgU291cmNlL1dl
YkNvcmUvZG9tL0RPTUFsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTMsNyArOTMsNiBA
QAogI2luY2x1ZGUgIk5vZGVJdGVyYXRvci5jcHAiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0Nv
bnRleHQuY3BwIgogI2luY2x1ZGUgIk5vdGF0aW9uLmNwcCIKLSNpbmNsdWRlICJPcHRpb25FbGVt
ZW50LmNwcCIKICNpbmNsdWRlICJPdmVyZmxvd0V2ZW50LmNwcCIKICNpbmNsdWRlICJQYWdlVHJh
bnNpdGlvbkV2ZW50LmNwcCIKICNpbmNsdWRlICJQZW5kaW5nU2NyaXB0LmNwcCIKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDk4MjE1KQorKysgU291cmNl
L1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xICswLDAg
QEAKLS8vIEZJWE1FOiBEZWxldGUgdGhpcyBmaWxlIGFmdGVyIHVwZGF0aW5nIGFsbCB0aGUgcHJv
amVjdCBmaWxlcy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9PcHRpb25FbGVtZW50LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9tL09wdGlvbkVsZW1lbnQuaAkocmV2aXNpb24g
OTgyMTUpCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vT3B0aW9uRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDIgKzAsMCBAQAotLy8gRklYTUU6IERlbGV0ZSB0aGlzIGZpbGUgYWZ0ZXIgdXBk
YXRpbmcgYWxsIHRoZSBwcm9qZWN0IGZpbGVzLgotI2Vycm9yCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gOTgyMTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzUs
MTIgKzc1LDYgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFNlbGVjdEl0ZW1zID0gMQogCiBz
dGF0aWMgY29uc3QgRE9NVGltZVN0YW1wIHR5cGVBaGVhZFRpbWVvdXQgPSAxMDAwOwogCi0vLyBG
SVhNRTogQ2hhbmdlIGFsbCB0aGUgY2FsbCBzaXRlcyB0byB1c2UgaGFzVGFnTmFtZSBhbmQgdG9I
VE1MT3B0aW9uRWxlbWVudCBpbnN0ZWFkLgotc3RhdGljIGlubGluZSBIVE1MT3B0aW9uRWxlbWVu
dCogdG9PcHRpb25FbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCi17Ci0gICAgcmV0dXJuIGVsZW1l
bnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSA/IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCkg
OiAwOwotfQotCiBIVE1MU2VsZWN0RWxlbWVudDo6SFRNTFNlbGVjdEVsZW1lbnQoY29uc3QgUXVh
bGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvY3VtZW50LCBIVE1MRm9ybUVsZW1lbnQq
IGZvcm0pCiAgICAgOiBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlKHRhZ05hbWUsIGRv
Y3VtZW50LCBmb3JtKQogICAgICwgbV9sYXN0Q2hhclRpbWUoMCkKQEAgLTUzMiw4ICs1MjYsOCBA
QCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlTGFzdFNlbGVjdGlvCiAgICAgbV9sYXN0T25D
aGFuZ2VTZWxlY3Rpb24uY2xlYXIoKTsKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYg
aXRlbXMgPSBsaXN0SXRlbXMoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMu
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQg
PSB0b09wdGlvbkVsZW1lbnQoaXRlbXNbaV0pOwotICAgICAgICBtX2xhc3RPbkNoYW5nZVNlbGVj
dGlvbi5hcHBlbmQob3B0aW9uRWxlbWVudCAmJiBvcHRpb25FbGVtZW50LT5zZWxlY3RlZCgpKTsK
KyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpXTsKKyAgICAgICAgbV9sYXN0
T25DaGFuZ2VTZWxlY3Rpb24uYXBwZW5kKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSAm
JiB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZWxlY3RlZCgpKTsKICAgICB9CiB9CiAK
QEAgLTU0Nyw4ICs1NDEsOCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpzZXRBY3RpdmVTZWxl
Y3RpCiAKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQo
aXRlbXNbaV0pOwotICAgICAgICBtX2NhY2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uLmFwcGVu
ZChvcHRpb25FbGVtZW50ICYmIG9wdGlvbkVsZW1lbnQtPnNlbGVjdGVkKCkpOworICAgICAgICBI
VE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2ldOworICAgICAgICBtX2NhY2hlZFN0YXRlRm9y
QWN0aXZlU2VsZWN0aW9uLmFwcGVuZChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgJiYg
dG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+c2VsZWN0ZWQoKSk7CiAgICAgfQogfQogCkBA
IC01NjcsMTYgKzU2MSwxNiBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50Ojp1cGRhdGVMaXN0Qm94
U2VsCiAKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0SXRlbXMo
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyArK2kpIHsKLSAg
ICAgICAgSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQo
aXRlbXNbaV0pOwotICAgICAgICBpZiAoIW9wdGlvbkVsZW1lbnQgfHwgaXRlbXNbaV0tPmRpc2Fi
bGVkKCkpCisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaV07CisgICAgICAg
IGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlvbkVsZW1l
bnQoZWxlbWVudCktPmRpc2FibGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAg
ICBpZiAoaSA+PSBzdGFydCAmJiBpIDw9IGVuZCkKLSAgICAgICAgICAgIG9wdGlvbkVsZW1lbnQt
PnNldFNlbGVjdGVkU3RhdGUobV9hY3RpdmVTZWxlY3Rpb25TdGF0ZSk7CisgICAgICAgICAgICB0
b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZXRTZWxlY3RlZFN0YXRlKG1fYWN0aXZlU2Vs
ZWN0aW9uU3RhdGUpOwogICAgICAgICBlbHNlIGlmIChkZXNlbGVjdE90aGVyT3B0aW9ucyB8fCBp
ID49IG1fY2FjaGVkU3RhdGVGb3JBY3RpdmVTZWxlY3Rpb24uc2l6ZSgpKQotICAgICAgICAgICAg
b3B0aW9uRWxlbWVudC0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB0b0hU
TUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZXRTZWxlY3RlZFN0YXRlKGZhbHNlKTsKICAgICAg
ICAgZWxzZQotICAgICAgICAgICAgb3B0aW9uRWxlbWVudC0+c2V0U2VsZWN0ZWRTdGF0ZShtX2Nh
Y2hlZFN0YXRlRm9yQWN0aXZlU2VsZWN0aW9uW2ldKTsKKyAgICAgICAgICAgIHRvSFRNTE9wdGlv
bkVsZW1lbnQoZWxlbWVudCktPnNldFNlbGVjdGVkU3RhdGUobV9jYWNoZWRTdGF0ZUZvckFjdGl2
ZVNlbGVjdGlvbltpXSk7CiAgICAgfQogCiAgICAgc2Nyb2xsVG9TZWxlY3Rpb24oKTsKQEAgLTU5
OSw4ICs1OTMsOCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94T25DaGFuZ2UoCiAg
ICAgLy8gVXBkYXRlIG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uIGFuZCBmaXJlIGRpc3BhdGNoRm9y
bUNvbnRyb2xDaGFuZ2VFdmVudC4KICAgICBib29sIGZpcmVPbkNoYW5nZSA9IGZhbHNlOwogICAg
IGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgewotICAgICAgICBI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tp
XSk7Ci0gICAgICAgIGJvb2wgc2VsZWN0ZWQgPSBvcHRpb25FbGVtZW50ICYmIG9wdGlvbkVsZW1l
bnQtPnNlbGVjdGVkKCk7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaV07
CisgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSBlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykg
JiYgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+c2VsZWN0ZWQoKTsKICAgICAgICAgaWYg
KHNlbGVjdGVkICE9IG1fbGFzdE9uQ2hhbmdlU2VsZWN0aW9uW2ldKQogICAgICAgICAgICAgZmly
ZU9uQ2hhbmdlID0gdHJ1ZTsKICAgICAgICAgbV9sYXN0T25DaGFuZ2VTZWxlY3Rpb25baV0gPSBz
ZWxlY3RlZDsKQEAgLTY5MywxNiArNjg3LDE2IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnJl
Y2FsY0xpc3RJdGVtcygKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCi0gICAgICAgIGlmIChI
VE1MT3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChjdXJyZW50
KSkgeworICAgICAgICBpZiAoY3VycmVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpKSB7CiAgICAg
ICAgICAgICBtX2xpc3RJdGVtcy5hcHBlbmQoY3VycmVudCk7CiAKICAgICAgICAgICAgIGlmICh1
cGRhdGVTZWxlY3RlZFN0YXRlcyAmJiAhbV9tdWx0aXBsZSkgewotICAgICAgICAgICAgICAgIGlm
ICghZm91bmRTZWxlY3RlZCAmJiAobV9zaXplIDw9IDEgfHwgb3B0aW9uRWxlbWVudC0+c2VsZWN0
ZWQoKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgZm91bmRTZWxlY3RlZCA9IG9wdGlvbkVsZW1l
bnQ7CisgICAgICAgICAgICAgICAgaWYgKCFmb3VuZFNlbGVjdGVkICYmIChtX3NpemUgPD0gMSB8
fCB0b0hUTUxPcHRpb25FbGVtZW50KGN1cnJlbnQpLT5zZWxlY3RlZCgpKSkgeworICAgICAgICAg
ICAgICAgICAgICBmb3VuZFNlbGVjdGVkID0gdG9IVE1MT3B0aW9uRWxlbWVudChjdXJyZW50KTsK
ICAgICAgICAgICAgICAgICAgICAgZm91bmRTZWxlY3RlZC0+c2V0U2VsZWN0ZWRTdGF0ZSh0cnVl
KTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGZvdW5kU2VsZWN0ZWQgJiYgb3B0aW9uRWxl
bWVudC0+c2VsZWN0ZWQoKSkgeworICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZm91bmRTZWxl
Y3RlZCAmJiB0b0hUTUxPcHRpb25FbGVtZW50KGN1cnJlbnQpLT5zZWxlY3RlZCgpKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGZvdW5kU2VsZWN0ZWQtPnNldFNlbGVjdGVkU3RhdGUoZmFsc2UpOwot
ICAgICAgICAgICAgICAgICAgICBmb3VuZFNlbGVjdGVkID0gb3B0aW9uRWxlbWVudDsKKyAgICAg
ICAgICAgICAgICAgICAgZm91bmRTZWxlY3RlZCA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoY3VycmVu
dCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03Mjcs
OCArNzIxLDkgQEAgaW50IEhUTUxTZWxlY3RFbGVtZW50OjpzZWxlY3RlZEluZGV4KCkgYwogICAg
IC8vIFJldHVybiB0aGUgbnVtYmVyIG9mIHRoZSBmaXJzdCBvcHRpb24gc2VsZWN0ZWQuCiAgICAg
Y29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBpdGVtcy5zaXplKCk7ICsraSkgewotICAgICAgICBpZiAoSFRN
TE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoaXRlbXNbaV0p
KSB7Ci0gICAgICAgICAgICBpZiAob3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkKKyAgICAgICAg
SFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpXTsKKyAgICAgICAgaWYgKGVsZW1lbnQtPmhh
c1RhZ05hbWUob3B0aW9uVGFnKSkgeworICAgICAgICAgICAgaWYgKHRvSFRNTE9wdGlvbkVsZW1l
bnQoZWxlbWVudCktPnNlbGVjdGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4Owog
ICAgICAgICAgICAgKytpbmRleDsKICAgICAgICAgfQpAQCAtNzQ3LDE4ICs3NDIsMjAgQEAgdm9p
ZCBIVE1MU2VsZWN0RWxlbWVudDo6c2V0U2VsZWN0ZWRJbmRleAogICAgIGNvbnN0IFZlY3RvcjxI
VE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwogICAgIGludCBsaXN0SW5kZXggPSBv
cHRpb25Ub0xpc3RJbmRleChvcHRpb25JbmRleCk7CiAKLSAgICBFbGVtZW50KiBleGNsdWRlRWxl
bWVudCA9IDA7Ci0gICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gKGxp
c3RJbmRleCA+PSAwID8gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2xpc3RJbmRleF0pIDogMCkpIHsK
LSAgICAgICAgZXhjbHVkZUVsZW1lbnQgPSBpdGVtc1tsaXN0SW5kZXhdOwotICAgICAgICBpZiAo
bV9hY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleCA8IDAgfHwgZGVzZWxlY3QpCi0gICAgICAgICAg
ICBzZXRBY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleChsaXN0SW5kZXgpOwotICAgICAgICBpZiAo
bV9hY3RpdmVTZWxlY3Rpb25FbmRJbmRleCA8IDAgfHwgZGVzZWxlY3QpCi0gICAgICAgICAgICBz
ZXRBY3RpdmVTZWxlY3Rpb25FbmRJbmRleChsaXN0SW5kZXgpOwotICAgICAgICBvcHRpb25FbGVt
ZW50LT5zZXRTZWxlY3RlZFN0YXRlKHRydWUpOworICAgIEhUTUxFbGVtZW50KiBlbGVtZW50ID0g
MDsKKyAgICBpZiAobGlzdEluZGV4ID49IDApIHsKKyAgICAgICAgZWxlbWVudCA9IGl0ZW1zW2xp
c3RJbmRleF07CisgICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykpIHsK
KyAgICAgICAgICAgIGlmIChtX2FjdGl2ZVNlbGVjdGlvbkFuY2hvckluZGV4IDwgMCB8fCBkZXNl
bGVjdCkKKyAgICAgICAgICAgICAgICBzZXRBY3RpdmVTZWxlY3Rpb25BbmNob3JJbmRleChsaXN0
SW5kZXgpOworICAgICAgICAgICAgaWYgKG1fYWN0aXZlU2VsZWN0aW9uRW5kSW5kZXggPCAwIHx8
IGRlc2VsZWN0KQorICAgICAgICAgICAgICAgIHNldEFjdGl2ZVNlbGVjdGlvbkVuZEluZGV4KGxp
c3RJbmRleCk7CisgICAgICAgICAgICB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZXRT
ZWxlY3RlZFN0YXRlKHRydWUpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKGRlc2VsZWN0
KQotICAgICAgICBkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24oZXhjbHVkZUVsZW1lbnQp
OworICAgICAgICBkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24oZWxlbWVudCk7CiAKICAg
ICAvLyBGb3IgdGhlIG1lbnUgbGlzdCBjYXNlLCB0aGlzIGlzIHdoYXQgbWFrZXMgdGhlIHNlbGVj
dGVkIGVsZW1lbnQgYXBwZWFyLgogICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gdGhp
cy0+cmVuZGVyZXIoKSkKQEAgLTgzOSwxNSArODM2LDEzIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1l
bnQ6OmRpc3BhdGNoQmx1ckV2ZW4KICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
OjpkaXNwYXRjaEJsdXJFdmVudChuZXdGb2N1c2VkTm9kZSk7CiB9CiAKLXZvaWQgSFRNTFNlbGVj
dEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFsaWRhdGlvbihFbGVtZW50KiBleGNsdWRl
RWxlbWVudCkKK3ZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OmRlc2VsZWN0SXRlbXNXaXRob3V0VmFs
aWRhdGlvbihIVE1MRWxlbWVudCogZXhjbHVkZUVsZW1lbnQpCiB7CiAgICAgY29uc3QgVmVjdG9y
PEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChpdGVtc1tpXSA9PSBl
eGNsdWRlRWxlbWVudCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIGlmIChIVE1M
T3B0aW9uRWxlbWVudCogb3B0aW9uRWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSkp
Ci0gICAgICAgICAgICBvcHRpb25FbGVtZW50LT5zZXRTZWxlY3RlZFN0YXRlKGZhbHNlKTsKKyAg
ICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpXTsKKyAgICAgICAgaWYgKGVsZW1l
bnQgIT0gZXhjbHVkZUVsZW1lbnQgJiYgZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpKQor
ICAgICAgICAgICAgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+c2V0U2VsZWN0ZWRTdGF0
ZShmYWxzZSk7CiAgICAgfQogfQogCkBAIC04NTgsOCArODUzLDggQEAgYm9vbCBIVE1MU2VsZWN0
RWxlbWVudDo6c2F2ZUZvcm1Db250cm9sUwogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKICAg
ICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eShsZW5ndGgpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9u
RWxlbWVudCA9IHRvT3B0aW9uRWxlbWVudChpdGVtc1tpXSk7Ci0gICAgICAgIGJvb2wgc2VsZWN0
ZWQgPSBvcHRpb25FbGVtZW50ICYmIG9wdGlvbkVsZW1lbnQtPnNlbGVjdGVkKCk7CisgICAgICAg
IEhUTUxFbGVtZW50KiBlbGVtZW50ID0gaXRlbXNbaV07CisgICAgICAgIGJvb2wgc2VsZWN0ZWQg
PSBlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgJiYgdG9IVE1MT3B0aW9uRWxlbWVudChl
bGVtZW50KS0+c2VsZWN0ZWQoKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VsZWN0ZWQgPyAn
WCcgOiAnLicpOwogICAgIH0KICAgICB2YWx1ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKQEAgLTg3
Myw5ICs4NjgsMTAgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cgog
ICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9IGxpc3RJdGVtcygpOwogICAg
IHNpemVfdCBsZW5ndGggPSBpdGVtcy5zaXplKCk7CiAKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
OyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAgICAgICAgaWYgKEhUTUxPcHRpb25FbGVtZW50KiBvcHRp
b25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zW2ldKSkKLSAgICAgICAgICAgIG9wdGlv
bkVsZW1lbnQtPnNldFNlbGVjdGVkU3RhdGUoc3RhdGVbaV0gPT0gJ1gnKTsKKyAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gaXRlbXNbaV07CisgICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRh
ZykpCisgICAgICAgICAgICB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZXRTZWxlY3Rl
ZFN0YXRlKHN0YXRlW2ldID09ICdYJyk7CiAgICAgfQogCiAgICAgc2V0T3B0aW9uc0NoYW5nZWRP
blJlbmRlcmVyKCk7CkBAIC05MDEsOSArODk3LDkgQEAgYm9vbCBIVE1MU2VsZWN0RWxlbWVudDo6
YXBwZW5kRm9ybURhdGEoRgogICAgIGNvbnN0IFZlY3RvcjxIVE1MRWxlbWVudCo+JiBpdGVtcyA9
IGxpc3RJdGVtcygpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9P
cHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKLSAgICAgICAgaWYgKG9wdGlvbkVsZW1lbnQgJiYgb3B0
aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSAmJiAhb3B0aW9uRWxlbWVudC0+ZGlzYWJsZWQoKSkgewot
ICAgICAgICAgICAgbGlzdC5hcHBlbmREYXRhKG5hbWUsIG9wdGlvbkVsZW1lbnQtPnZhbHVlKCkp
OworICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2ldOworICAgICAgICBpZiAo
ZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpICYmIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxl
bWVudCktPnNlbGVjdGVkKCkgJiYgIXRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPmRpc2Fi
bGVkKCkpIHsKKyAgICAgICAgICAgIGxpc3QuYXBwZW5kRGF0YShuYW1lLCB0b0hUTUxPcHRpb25F
bGVtZW50KGVsZW1lbnQpLT52YWx1ZSgpKTsKICAgICAgICAgICAgIHN1Y2Nlc3NmdWwgPSB0cnVl
OwogICAgICAgICB9CiAgICAgfQpAQCAtOTIxLDIwICs5MTcsMjAgQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6cmVzZXQoKQogCiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1z
ID0gbGlzdEl0ZW1zKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUo
KTsgKytpKSB7Ci0gICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9P
cHRpb25FbGVtZW50KGl0ZW1zW2ldKTsKLSAgICAgICAgaWYgKCFvcHRpb25FbGVtZW50KQorICAg
ICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9IGl0ZW1zW2ldOworICAgICAgICBpZiAoIWVsZW1l
bnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAg
ICAgIGlmIChpdGVtc1tpXS0+ZmFzdEhhc0F0dHJpYnV0ZShzZWxlY3RlZEF0dHIpKSB7CiAgICAg
ICAgICAgICBpZiAoc2VsZWN0ZWRPcHRpb24gJiYgIW1fbXVsdGlwbGUpCiAgICAgICAgICAgICAg
ICAgc2VsZWN0ZWRPcHRpb24tPnNldFNlbGVjdGVkU3RhdGUoZmFsc2UpOwotICAgICAgICAgICAg
b3B0aW9uRWxlbWVudC0+c2V0U2VsZWN0ZWRTdGF0ZSh0cnVlKTsKLSAgICAgICAgICAgIHNlbGVj
dGVkT3B0aW9uID0gb3B0aW9uRWxlbWVudDsKKyAgICAgICAgICAgIHRvSFRNTE9wdGlvbkVsZW1l
bnQoZWxlbWVudCktPnNldFNlbGVjdGVkU3RhdGUodHJ1ZSk7CisgICAgICAgICAgICBzZWxlY3Rl
ZE9wdGlvbiA9IHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCk7CiAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgb3B0aW9uRWxlbWVudC0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CisgICAg
ICAgICAgICB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT5zZXRTZWxlY3RlZFN0YXRlKGZh
bHNlKTsKIAogICAgICAgICBpZiAoIWZpcnN0T3B0aW9uKQotICAgICAgICAgICAgZmlyc3RPcHRp
b24gPSBvcHRpb25FbGVtZW50OworICAgICAgICAgICAgZmlyc3RPcHRpb24gPSB0b0hUTUxPcHRp
b25FbGVtZW50KGVsZW1lbnQpOwogICAgIH0KIAogICAgIGlmICghc2VsZWN0ZWRPcHRpb24gJiYg
Zmlyc3RPcHRpb24gJiYgIW1fbXVsdGlwbGUgJiYgbV9zaXplIDw9IDEpCkBAIC0xMTIxLDE2ICsx
MTE3LDE0IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnVwZGF0ZVNlbGVjdGVkU3QKICAgICBi
b29sIHNoaWZ0U2VsZWN0ID0gbV9tdWx0aXBsZSAmJiBzaGlmdDsKICAgICBib29sIG11bHRpU2Vs
ZWN0ID0gbV9tdWx0aXBsZSAmJiBtdWx0aSAmJiAhc2hpZnQ7CiAKLSAgICBFbGVtZW50KiBjbGlj
a2VkRWxlbWVudCA9IGxpc3RJdGVtcygpW2xpc3RJbmRleF07Ci0gICAgSFRNTE9wdGlvbkVsZW1l
bnQqIG9wdGlvbiA9IHRvT3B0aW9uRWxlbWVudChjbGlja2VkRWxlbWVudCk7Ci0gICAgaWYgKG9w
dGlvbikgeworICAgIEhUTUxFbGVtZW50KiBjbGlja2VkRWxlbWVudCA9IGxpc3RJdGVtcygpW2xp
c3RJbmRleF07CisgICAgaWYgKGNsaWNrZWRFbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykp
IHsKICAgICAgICAgLy8gS2VlcCB0cmFjayBvZiB3aGV0aGVyIGFuIGFjdGl2ZSBzZWxlY3Rpb24g
KGxpa2UgZHVyaW5nIGRyYWcKICAgICAgICAgLy8gc2VsZWN0aW9uKSwgc2hvdWxkIHNlbGVjdCBv
ciBkZXNlbGVjdC4KLSAgICAgICAgaWYgKG9wdGlvbi0+c2VsZWN0ZWQoKSAmJiBtdWx0aSkKKyAg
ICAgICAgaWYgKHRvSFRNTE9wdGlvbkVsZW1lbnQoY2xpY2tlZEVsZW1lbnQpLT5zZWxlY3RlZCgp
ICYmIG11bHRpKQogICAgICAgICAgICAgbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZSA9IGZhbHNlOwot
CiAgICAgICAgIGlmICghbV9hY3RpdmVTZWxlY3Rpb25TdGF0ZSkKLSAgICAgICAgICAgIG9wdGlv
bi0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICB0b0hUTUxPcHRpb25FbGVt
ZW50KGNsaWNrZWRFbGVtZW50KS0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CiAgICAgfQogCiAg
ICAgLy8gSWYgd2UncmUgbm90IGluIGFueSBzcGVjaWFsIG11bHRpcGxlIHNlbGVjdGlvbiBtb2Rl
LCB0aGVuIGRlc2VsZWN0IGFsbApAQCAtMTE0NSw4ICsxMTM5LDggQEAgdm9pZCBIVE1MU2VsZWN0
RWxlbWVudDo6dXBkYXRlU2VsZWN0ZWRTdAogICAgICAgICBzZXRBY3RpdmVTZWxlY3Rpb25BbmNo
b3JJbmRleChzZWxlY3RlZEluZGV4KCkpOwogCiAgICAgLy8gU2V0IHRoZSBzZWxlY3Rpb24gc3Rh
dGUgb2YgdGhlIGNsaWNrZWQgb3B0aW9uLgotICAgIGlmIChvcHRpb24gJiYgIWNsaWNrZWRFbGVt
ZW50LT5kaXNhYmxlZCgpKQotICAgICAgICBvcHRpb24tPnNldFNlbGVjdGVkU3RhdGUodHJ1ZSk7
CisgICAgaWYgKGNsaWNrZWRFbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgJiYgIXRvSFRN
TE9wdGlvbkVsZW1lbnQoY2xpY2tlZEVsZW1lbnQpLT5kaXNhYmxlZCgpKQorICAgICAgICB0b0hU
TUxPcHRpb25FbGVtZW50KGNsaWNrZWRFbGVtZW50KS0+c2V0U2VsZWN0ZWRTdGF0ZSh0cnVlKTsK
IAogICAgIC8vIElmIHRoZXJlIHdhcyBubyBzZWxlY3RlZEluZGV4KCkgZm9yIHRoZSBwcmV2aW91
cyBpbml0aWFsaXphdGlvbiwgb3IgSWYKICAgICAvLyB3ZSdyZSBkb2luZyBhIHNpbmdsZSBzZWxl
Y3Rpb24sIG9yIGEgbXVsdGlwbGUgc2VsZWN0aW9uICh1c2luZyBjbWQgb3IKQEAgLTEzMTgsMTAg
KzEzMTIsOSBAQCBpbnQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxhc3RTZWxlY3RlZExpc3RJCiB7CiAg
ICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAg
Zm9yIChzaXplX3QgaSA9IGl0ZW1zLnNpemUoKTsgaTspIHsKLSAgICAgICAgaWYgKEhUTUxPcHRp
b25FbGVtZW50KiBvcHRpb25FbGVtZW50ID0gdG9PcHRpb25FbGVtZW50KGl0ZW1zWy0taV0pKSB7
Ci0gICAgICAgICAgICBpZiAob3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gaTsKLSAgICAgICAgfQorICAgICAgICBIVE1MRWxlbWVudCogZWxlbWVudCA9
IGl0ZW1zWy0taV07CisgICAgICAgIGlmIChlbGVtZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykg
JiYgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50KS0+c2VsZWN0ZWQoKSkKKyAgICAgICAgICAg
IHJldHVybiBpOwogICAgIH0KICAgICByZXR1cm4gLTE7CiB9CkBAIC0xMzg0LDEyICsxMzc3LDEy
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6OnR5cGVBaGVhZEZpbmQoS2UKICAgICAvLyB0byB1
c2Ugc3RhcnRXaXRoIG9uY2UgdGhhdCBpcyBmaXhlZC4KICAgICBTdHJpbmcgcHJlZml4V2l0aENh
c2VGb2xkZWQocHJlZml4LmZvbGRDYXNlKCkpOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaXRl
bUNvdW50OyArK2ksIGluZGV4ID0gKGluZGV4ICsgMSkgJSBpdGVtQ291bnQpIHsKLSAgICAgICAg
SFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVsZW1lbnQgPSB0b09wdGlvbkVsZW1lbnQoaXRlbXNb
aW5kZXhdKTsKLSAgICAgICAgaWYgKCFvcHRpb25FbGVtZW50IHx8IGl0ZW1zW2luZGV4XS0+ZGlz
YWJsZWQoKSkKKyAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpbmRleF07Cisg
ICAgICAgIGlmICghZWxlbWVudC0+aGFzVGFnTmFtZShvcHRpb25UYWcpIHx8IHRvSFRNTE9wdGlv
bkVsZW1lbnQoZWxlbWVudCktPmRpc2FibGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAog
ICAgICAgICAvLyBGb2xkIHRoZSBvcHRpb24gc3RyaW5nIGFuZCBjaGVjayBpZiBpdHMgcHJlZml4
IGlzIGVxdWFsIHRvIHRoZSBmb2xkZWQgcHJlZml4LgotICAgICAgICBTdHJpbmcgdGV4dCA9IG9w
dGlvbkVsZW1lbnQtPnRleHRJbmRlbnRlZFRvUmVzcGVjdEdyb3VwTGFiZWwoKTsKKyAgICAgICAg
U3RyaW5nIHRleHQgPSB0b0hUTUxPcHRpb25FbGVtZW50KGVsZW1lbnQpLT50ZXh0SW5kZW50ZWRU
b1Jlc3BlY3RHcm91cExhYmVsKCk7CiAgICAgICAgIGlmIChzdHJpcExlYWRpbmdXaGl0ZVNwYWNl
KHRleHQpLmZvbGRDYXNlKCkuc3RhcnRzV2l0aChwcmVmaXhXaXRoQ2FzZUZvbGRlZCkpIHsKICAg
ICAgICAgICAgIHNldFNlbGVjdGVkSW5kZXgobGlzdFRvT3B0aW9uSW5kZXgoaW5kZXgpLCB0cnVl
LCBmYWxzZSwgdHJ1ZSk7CiAgICAgICAgICAgICBpZiAoIXVzZXNNZW51TGlzdCgpKQpAQCAtMTQy
MCwxMSArMTQxMywxNCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjphY2Nlc3NLZXlTZXRTZWxl
CiAgICAgLy8gSWYgdGhpcyBpbmRleCBpcyBhbHJlYWR5IHNlbGVjdGVkLCB1bnNlbGVjdC4gb3Ro
ZXJ3aXNlIHVwZGF0ZSB0aGUgc2VsZWN0ZWQgaW5kZXguCiAgICAgY29uc3QgVmVjdG9yPEhUTUxF
bGVtZW50Kj4mIGl0ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgaW50IGxpc3RJbmRleCA9IG9wdGlv
blRvTGlzdEluZGV4KGluZGV4KTsKLSAgICBpZiAoSFRNTE9wdGlvbkVsZW1lbnQqIG9wdGlvbkVs
ZW1lbnQgPSAobGlzdEluZGV4ID49IDAgPyB0b09wdGlvbkVsZW1lbnQoaXRlbXNbbGlzdEluZGV4
XSkgOiAwKSkgewotICAgICAgICBpZiAob3B0aW9uRWxlbWVudC0+c2VsZWN0ZWQoKSkKLSAgICAg
ICAgICAgIG9wdGlvbkVsZW1lbnQtPnNldFNlbGVjdGVkU3RhdGUoZmFsc2UpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBzZXRTZWxlY3RlZEluZGV4KGluZGV4LCBmYWxzZSwgdHJ1ZSwgdHJ1
ZSk7CisgICAgaWYgKGxpc3RJbmRleCA+PSAwKSB7CisgICAgICAgIEhUTUxFbGVtZW50KiBlbGVt
ZW50ID0gaXRlbXNbbGlzdEluZGV4XTsKKyAgICAgICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUo
b3B0aW9uVGFnKSkgeworICAgICAgICAgICAgaWYgKHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVu
dCktPnNlbGVjdGVkKCkpCisgICAgICAgICAgICAgICAgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVt
ZW50KS0+c2V0U2VsZWN0ZWRTdGF0ZShmYWxzZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgc2V0U2VsZWN0ZWRJbmRleChpbmRleCwgZmFsc2UsIHRydWUsIHRydWUpOworICAg
ICAgICB9CiAgICAgfQogCiAgICAgaWYgKHVzZXNNZW51TGlzdCgpKQpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuaAkocmV2aXNpb24gOTgyMTUpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE0MCw3
ICsxNDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFzUGxhY2Vob2xkZXJMYWJlbE9wdGlvbigp
IGNvbnN0OwogCiAgICAgdm9pZCBzZXRTZWxlY3RlZEluZGV4KGludCBvcHRpb25JbmRleCwgYm9v
bCBkZXNlbGVjdCwgYm9vbCBmaXJlT25DaGFuZ2VOb3csIGJvb2wgdXNlckRyaXZlbkNoYW5nZSk7
Ci0gICAgdm9pZCBkZXNlbGVjdEl0ZW1zV2l0aG91dFZhbGlkYXRpb24oRWxlbWVudCogZXhjbHVk
ZUVsZW1lbnQgPSAwKTsKKyAgICB2b2lkIGRlc2VsZWN0SXRlbXNXaXRob3V0VmFsaWRhdGlvbihI
VE1MRWxlbWVudCogZXhjbHVkZUVsZW1lbnQgPSAwKTsKICAgICB2b2lkIHBhcnNlTXVsdGlwbGVB
dHRyaWJ1dGUoY29uc3QgQXR0cmlidXRlKik7CiAgICAgaW50IGxhc3RTZWxlY3RlZExpc3RJbmRl
eCgpIGNvbnN0OwogICAgIHZvaWQgdXBkYXRlU2VsZWN0ZWRTdGF0ZShpbnQgbGlzdEluZGV4LCBi
b29sIG11bHRpLCBib29sIHNoaWZ0KTsK
</data>
<flag name="review"
          id="110169"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>