<?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>120574</bug_id>
          
          <creation_ts>2013-08-31 22:43:29 -0700</creation_ts>
          <short_desc>Give EditCommand a protected Frame&amp; getter.</short_desc>
          <delta_ts>2013-09-01 09:54: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>HTML Editing</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="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>923406</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-31 22:43:29 -0700</bug_when>
    <thetext>Going through document().frame()-&gt;xxx looks awkward, and we already know that there&apos;s always a Frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923407</commentid>
    <comment_count>1</comment_count>
      <attachid>210230</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-08-31 22:44:28 -0700</bug_when>
    <thetext>Created attachment 210230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923468</commentid>
    <comment_count>2</comment_count>
      <attachid>210230</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-01 07:56:18 -0700</bug_when>
    <thetext>Comment on attachment 210230
Patch

Clearing flags on attachment: 210230

Committed r154943: &lt;http://trac.webkit.org/changeset/154943&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923469</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-01 07:56:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923494</commentid>
    <comment_count>4</comment_count>
      <attachid>210230</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-09-01 09:46:37 -0700</bug_when>
    <thetext>Comment on attachment 210230
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        EditCommand is only created for documents that are attached to a Frame,

Is this actually so? Are they not created for document.execCommand?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>923497</commentid>
    <comment_count>5</comment_count>
      <attachid>210230</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-09-01 09:54:14 -0700</bug_when>
    <thetext>Comment on attachment 210230
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        EditCommand is only created for documents that are attached to a Frame,
&gt; 
&gt; Is this actually so? Are they not created for document.execCommand?

Document::execCommand() creates (and executes) a no-op Editor::Command if Document is not attached to a Frame.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>210230</attachid>
            <date>2013-08-31 22:44:28 -0700</date>
            <delta_ts>2013-09-01 09:54:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-120574.diff</filename>
            <type>text/plain</type>
            <size>18696</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NTJlYzMyOS4uNWI0Njk3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE4
IEBACiAyMDEzLTA4LTMxICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAorICAg
ICAgICBHaXZlIEVkaXRDb21tYW5kIGEgcHJvdGVjdGVkIEZyYW1lJiBnZXR0ZXIuCisgICAgICAg
IDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjA1NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgRWRpdENvbW1hbmQgaXMgb25seSBjcmVhdGVkIGZvciBk
b2N1bWVudHMgdGhhdCBhcmUgYXR0YWNoZWQgdG8gYSBGcmFtZSwKKyAgICAgICAgd2UgYWxyZWFk
eSBBU1NFUlRlZCBhcyBtdWNoIGluIHRoZSBFZGl0Q29tbWFuZCBjb25zdHJ1Y3Rvci4KKworICAg
ICAgICBUaGlzIHBhdGNoIGFkZHMgYSAiRnJhbWUmIEVkaXRDb21tYW5kOjpmcmFtZSgpIiBoZWxw
ZXIsIHNvIEVkaXRDb21tYW5kCisgICAgICAgIGFuZCBpdHMgc3ViY2xhc3NlcyBkb24ndCBoYXZl
IHRvIGZ1bWJsZSBhcm91bmQgd2l0aCBwb2ludGVycy4KKworMjAxMy0wOC0zMSAgQW5kcmVhcyBL
bGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CisKICAgICAgICAgRWRpdENvbW1hbmQgY29uc3RydWN0
b3JzIHNob3VsZCB0YWtlIERvY3VtZW50Ji4KICAgICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9i
LzEyMDU2Nj4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9Db21wb3NpdGVF
ZGl0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21t
YW5kLmNwcAppbmRleCA5YTRlZGRjLi40ODY5MjBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0NvbXBvc2l0ZUVkaXRDb21tYW5kLmNwcApAQCAtMjA1LDEyICsyMDUsMTAgQEAgdm9p
ZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHkoKQogICAgIC8vIGlmIG9uZSBpcyBuZWNlc3Nh
cnkgKGxpa2UgZm9yIHRoZSBjcmVhdGlvbiBvZiBWaXNpYmxlUG9zaXRpb25zKS4KICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCi0gICAgRnJh
bWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgIEFTU0VSVChmcmFtZSk7CiAgICAg
ewogICAgICAgICBFdmVudFF1ZXVlU2NvcGUgc2NvcGU7CiAjaWYgRU5BQkxFKERFTEVUSU9OX1VJ
KQotICAgICAgICBEZWxldGVCdXR0b25Db250cm9sbGVyRGlzYWJsZVNjb3BlIGRlbGV0ZUJ1dHRv
bkNvbnRyb2xsZXJEaXNhYmxlU2NvcGUoZnJhbWUpOworICAgICAgICBEZWxldGVCdXR0b25Db250
cm9sbGVyRGlzYWJsZVNjb3BlIGRlbGV0ZUJ1dHRvbkNvbnRyb2xsZXJEaXNhYmxlU2NvcGUoJmZy
YW1lKCkpOwogI2VuZGlmCiAgICAgICAgIGRvQXBwbHkoKTsKICAgICB9CkBAIC0yMTgsNyArMjE2
LDcgQEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6YXBwbHkoKQogICAgIC8vIE9ubHkgbmVl
ZCB0byBjYWxsIGFwcGxpZWRFZGl0aW5nIGZvciB0b3AtbGV2ZWwgY29tbWFuZHMsCiAgICAgLy8g
YW5kIFR5cGluZ0NvbW1hbmRzIGRvIGl0IG9uIHRoZWlyIG93biAoc2VlIFR5cGluZ0NvbW1hbmQ6
OnR5cGluZ0FkZGVkVG9PcGVuQ29tbWFuZCkuCiAgICAgaWYgKCFpc1R5cGluZ0NvbW1hbmQoKSkK
LSAgICAgICAgZnJhbWUtPmVkaXRvcigpLmFwcGxpZWRFZGl0aW5nKHRoaXMpOworICAgICAgICBm
cmFtZSgpLmVkaXRvcigpLmFwcGxpZWRFZGl0aW5nKHRoaXMpOwogICAgIHNldFNob3VsZFJldGFp
bkF1dG9jb3JyZWN0aW9uSW5kaWNhdG9yKGZhbHNlKTsKIH0KIApAQCAtMTIxNiw3ICsxMjE0LDcg
QEAgdm9pZCBDb21wb3NpdGVFZGl0Q29tbWFuZDo6bW92ZVBhcmFncmFwaHMoY29uc3QgVmlzaWJs
ZVBvc2l0aW9uJiBzdGFydE9mUGFyYWdyYXAKICAgICAvLyBGSVhNRSAoNTA5ODkzMSk6IFdlIHNo
b3VsZCBhZGQgYSBuZXcgaW5zZXJ0IGFjdGlvbiAiV2ViVmlld0luc2VydEFjdGlvbk1vdmVkIiBh
bmQgY2FsbCBzaG91bGRJbnNlcnRGcmFnbWVudCBoZXJlLgogICAgIAogICAgIHNldEVuZGluZ1Nl
bGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0LCBlbmQsIERPV05TVFJFQU0pKTsKLSAgICBk
b2N1bWVudCgpLmZyYW1lKCktPmVkaXRvcigpLmNsZWFyTWlzc3BlbGxpbmdzQW5kQmFkR3JhbW1h
cihlbmRpbmdTZWxlY3Rpb24oKSk7CisgICAgZnJhbWUoKS5lZGl0b3IoKS5jbGVhck1pc3NwZWxs
aW5nc0FuZEJhZEdyYW1tYXIoZW5kaW5nU2VsZWN0aW9uKCkpOwogICAgIGRlbGV0ZVNlbGVjdGlv
bihmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSk7CiAKICAgICBBU1NFUlQoZGVzdGluYXRpb24u
ZGVlcEVxdWl2YWxlbnQoKS5hbmNob3JOb2RlKCktPmluRG9jdW1lbnQoKSk7CkBAIC0xMjQ5LDcg
KzEyNDcsNyBAQCB2b2lkIENvbXBvc2l0ZUVkaXRDb21tYW5kOjptb3ZlUGFyYWdyYXBocyhjb25z
dCBWaXNpYmxlUG9zaXRpb24mIHN0YXJ0T2ZQYXJhZ3JhcAogICAgICAgICBvcHRpb25zIHw9IFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpNYXRjaFN0eWxlOwogICAgIGFwcGx5Q29tbWFuZFRvQ29t
cG9zaXRlKFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoZG9jdW1lbnQoKSwgZnJhZ21l
bnQsIG9wdGlvbnMpKTsKIAotICAgIGRvY3VtZW50KCkuZnJhbWUoKS0+ZWRpdG9yKCkubWFya01p
c3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIoZW5kaW5nU2VsZWN0aW9uKCkpOworICAgIGZyYW1lKCku
ZWRpdG9yKCkubWFya01pc3NwZWxsaW5nc0FuZEJhZEdyYW1tYXIoZW5kaW5nU2VsZWN0aW9uKCkp
OwogCiAgICAgLy8gSWYgdGhlIHNlbGVjdGlvbiBpcyBpbiBhbiBlbXB0eSBwYXJhZ3JhcGgsIHJl
c3RvcmUgc3R5bGVzIGZyb20gdGhlIG9sZCBlbXB0eSBwYXJhZ3JhcGggdG8gdGhlIG5ldyBlbXB0
eSBwYXJhZ3JhcGguCiAgICAgYm9vbCBzZWxlY3Rpb25Jc0VtcHR5UGFyYWdyYXBoID0gZW5kaW5n
U2VsZWN0aW9uKCkuaXNDYXJldCgpICYmIGlzU3RhcnRPZlBhcmFncmFwaChlbmRpbmdTZWxlY3Rp
b24oKS52aXNpYmxlU3RhcnQoKSkgJiYgaXNFbmRPZlBhcmFncmFwaChlbmRpbmdTZWxlY3Rpb24o
KS52aXNpYmxlU3RhcnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Rl
bGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9EZWxldGVT
ZWxlY3Rpb25Db21tYW5kLmNwcAppbmRleCBjNmY3MTcwLi4xZTZlNzcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAKQEAgLTY1NSw3
ICs2NTUsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6Om1lcmdlUGFyYWdyYXBocygp
CiAgICAgCiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IFJhbmdlOjpjcmVhdGUoJmRvY3VtZW50
KCksIHN0YXJ0T2ZQYXJhZ3JhcGhUb01vdmUuZGVlcEVxdWl2YWxlbnQoKS5wYXJlbnRBbmNob3Jl
ZEVxdWl2YWxlbnQoKSwgZW5kT2ZQYXJhZ3JhcGhUb01vdmUuZGVlcEVxdWl2YWxlbnQoKS5wYXJl
bnRBbmNob3JlZEVxdWl2YWxlbnQoKSk7CiAgICAgUmVmUHRyPFJhbmdlPiByYW5nZVRvQmVSZXBs
YWNlZCA9IFJhbmdlOjpjcmVhdGUoJmRvY3VtZW50KCksIG1lcmdlRGVzdGluYXRpb24uZGVlcEVx
dWl2YWxlbnQoKS5wYXJlbnRBbmNob3JlZEVxdWl2YWxlbnQoKSwgbWVyZ2VEZXN0aW5hdGlvbi5k
ZWVwRXF1aXZhbGVudCgpLnBhcmVudEFuY2hvcmVkRXF1aXZhbGVudCgpKTsKLSAgICBpZiAoIWRv
Y3VtZW50KCkuZnJhbWUoKS0+ZWRpdG9yKCkuY2xpZW50KCktPnNob3VsZE1vdmVSYW5nZUFmdGVy
RGVsZXRlKHJhbmdlLmdldCgpLCByYW5nZVRvQmVSZXBsYWNlZC5nZXQoKSkpCisgICAgaWYgKCFm
cmFtZSgpLmVkaXRvcigpLmNsaWVudCgpLT5zaG91bGRNb3ZlUmFuZ2VBZnRlckRlbGV0ZShyYW5n
ZS5nZXQoKSwgcmFuZ2VUb0JlUmVwbGFjZWQuZ2V0KCkpKQogICAgICAgICByZXR1cm47CiAgICAg
CiAgICAgLy8gbW92ZVBhcmFncmFwaHMgd2lsbCBpbnNlcnQgcGxhY2Vob2xkZXJzIGlmIGl0IHJl
bW92ZXMgYmxvY2tzIHRoYXQgd291bGQgcmVxdWlyZSB0aGVpciB1c2UsIGRvbid0IGxldCBibG9j
awpAQCAtNzI4LDcgKzcyOCw3IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6Y2FsY3Vs
YXRlVHlwaW5nU3R5bGVBZnRlckRlbGV0ZSgpCiAgICAgLy8gSW4gdGhpcyBjYXNlIGlmIHdlIHN0
YXJ0IHR5cGluZywgdGhlIG5ldyBjaGFyYWN0ZXJzIHNob3VsZCBoYXZlIHRoZSBzYW1lIHN0eWxl
IGFzIHRoZSBqdXN0IGRlbGV0ZWQgb25lcywKICAgICAvLyBidXQsIGlmIHdlIGNoYW5nZSB0aGUg
c2VsZWN0aW9uLCBjb21lIGJhY2sgYW5kIHN0YXJ0IHR5cGluZyB0aGF0IHN0eWxlIHNob3VsZCBi
ZSBsb3N0LiAgQWxzbyBzZWUgCiAgICAgLy8gcHJlc2VydmVUeXBpbmdTdHlsZSgpIGJlbG93Lgot
ICAgIGRvY3VtZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCkuc2V0VHlwaW5nU3R5bGUobV90eXBp
bmdTdHlsZSk7CisgICAgZnJhbWUoKS5zZWxlY3Rpb24oKS5zZXRUeXBpbmdTdHlsZShtX3R5cGlu
Z1N0eWxlKTsKIH0KIAogdm9pZCBEZWxldGVTZWxlY3Rpb25Db21tYW5kOjpjbGVhclRyYW5zaWVu
dFN0YXRlKCkKQEAgLTgwMSw3ICs4MDEsNyBAQCB2b2lkIERlbGV0ZVNlbGVjdGlvbkNvbW1hbmQ6
OmRvQXBwbHkoKQogICAgIGlmICghbV9yZXBsYWNlKSB7CiAgICAgICAgIEVsZW1lbnQqIHRleHRD
b250cm9sID0gZW5jbG9zaW5nVGV4dEZvcm1Db250cm9sKG1fc2VsZWN0aW9uVG9EZWxldGUuc3Rh
cnQoKSk7CiAgICAgICAgIGlmICh0ZXh0Q29udHJvbCAmJiB0ZXh0Q29udHJvbC0+Zm9jdXNlZCgp
KQotICAgICAgICAgICAgZG9jdW1lbnQoKS5mcmFtZSgpLT5lZGl0b3IoKS50ZXh0V2lsbEJlRGVs
ZXRlZEluVGV4dEZpZWxkKHRleHRDb250cm9sKTsKKyAgICAgICAgICAgIGZyYW1lKCkuZWRpdG9y
KCkudGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVsZCh0ZXh0Q29udHJvbCk7CiAgICAgfQogCiAg
ICAgLy8gc2F2ZSB0aGlzIHRvIGxhdGVyIG1ha2UgdGhlIHNlbGVjdGlvbiB3aXRoCkBAIC04NTks
MTAgKzg1OSw4IEBAIHZvaWQgRGVsZXRlU2VsZWN0aW9uQ29tbWFuZDo6ZG9BcHBseSgpCiAKICAg
ICBjYWxjdWxhdGVUeXBpbmdTdHlsZUFmdGVyRGVsZXRlKCk7CiAKLSAgICBpZiAoIW9yaWdpbmFs
U3RyaW5nLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQo
KS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmRlbGV0ZWRBdXRvY29ycmVj
dGlvbkF0UG9zaXRpb24obV9lbmRpbmdQb3NpdGlvbiwgb3JpZ2luYWxTdHJpbmcpOwotICAgIH0K
KyAgICBpZiAoIW9yaWdpbmFsU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAgZnJhbWUoKS5lZGl0
b3IoKS5kZWxldGVkQXV0b2NvcnJlY3Rpb25BdFBvc2l0aW9uKG1fZW5kaW5nUG9zaXRpb24sIG9y
aWdpbmFsU3RyaW5nKTsKIAogICAgIHNldEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9u
KG1fZW5kaW5nUG9zaXRpb24sIGFmZmluaXR5LCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlv
bmFsKCkpKTsKICAgICBjbGVhclRyYW5zaWVudFN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdENvbW1hbmQuY3BwCmluZGV4IDZmMGVjNTQuLjRhNGRiM2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdENvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuY3BwCkBAIC02MSw2ICs2MSwxMiBAQCBFZGl0Q29tbWFuZDo6fkVk
aXRDb21tYW5kKCkKIHsKIH0KIAorRnJhbWUmIEVkaXRDb21tYW5kOjpmcmFtZSgpIGNvbnN0Cit7
CisgICAgQVNTRVJUKGRvY3VtZW50KCkuZnJhbWUoKSk7CisgICAgcmV0dXJuICpkb2N1bWVudCgp
LmZyYW1lKCk7Cit9CisKIEVkaXRBY3Rpb24gRWRpdENvbW1hbmQ6OmVkaXRpbmdBY3Rpb24oKSBj
b25zdAogewogICAgIHJldHVybiBFZGl0QWN0aW9uVW5zcGVjaWZpZWQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRDb21tYW5kLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRDb21tYW5kLmgKaW5kZXggOGU5Y2JlNC4uN2YyMzJkZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0Q29tbWFuZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdENvbW1hbmQuaApAQCAtMzgsNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBDb21wb3NpdGVFZGl0Q29tbWFuZDsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxl
bWVudDsKK2NsYXNzIEZyYW1lOwogCiBjbGFzcyBFZGl0Q29tbWFuZCA6IHB1YmxpYyBSZWZDb3Vu
dGVkPEVkaXRDb21tYW5kPiB7CiBwdWJsaWM6CkBAIC02MSw2ICs2Miw3IEBAIHByb3RlY3RlZDoK
ICAgICBleHBsaWNpdCBFZGl0Q29tbWFuZChEb2N1bWVudCYpOwogICAgIEVkaXRDb21tYW5kKERv
Y3VtZW50JiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24m
KTsKIAorICAgIEZyYW1lJiBmcmFtZSgpIGNvbnN0OwogICAgIERvY3VtZW50JiBkb2N1bWVudCgp
IGNvbnN0IHsgcmV0dXJuICptX2RvY3VtZW50OyB9CiAgICAgQ29tcG9zaXRlRWRpdENvbW1hbmQq
IHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRTdGFydGlu
Z1NlbGVjdGlvbihjb25zdCBWaXNpYmxlU2VsZWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0NvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRMaW5lQnJlYWtDb21tYW5kLmNwcAppbmRleCAxYTMzODg4Li5hNzcw
NDA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpbmVCcmVha0Nv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGluZUJyZWFrQ29t
bWFuZC5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lkIEluc2VydExpbmVCcmVha0NvbW1hbmQ6
OmRvQXBwbHkoKQogCiAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIGEgdHlw
aW5nIHN0eWxlLgogCi0gICAgUmVmUHRyPEVkaXRpbmdTdHlsZT4gdHlwaW5nU3R5bGUgPSBkb2N1
bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigpLnR5cGluZ1N0eWxlKCk7CisgICAgUmVmUHRyPEVk
aXRpbmdTdHlsZT4gdHlwaW5nU3R5bGUgPSBmcmFtZSgpLnNlbGVjdGlvbigpLnR5cGluZ1N0eWxl
KCk7CiAKICAgICBpZiAodHlwaW5nU3R5bGUgJiYgIXR5cGluZ1N0eWxlLT5pc0VtcHR5KCkpIHsK
ICAgICAgICAgLy8gQXBwbHkgdGhlIHR5cGluZyBzdHlsZSB0byB0aGUgaW5zZXJ0ZWQgbGluZSBi
cmVhaywgc28gdGhhdCBpZiB0aGUgc2VsZWN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydFRleHRDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
SW5zZXJ0VGV4dENvbW1hbmQuY3BwCmluZGV4IDA5ZTRmODcuLjc2MTVjZjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0VGV4dENvbW1hbmQuY3BwCkBAIC0xNDYsNyArMTQ2LDcg
QEAgdm9pZCBJbnNlcnRUZXh0Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgICAgIC8vIGFueXRoaW5n
IG90aGVyIHRoYW4gTm9TZWxlY3Rpb24uIFRoZSByZXN0IG9mIHRoaXMgZnVuY3Rpb24gcmVxdWly
ZXMgYSByZWFsIGVuZGluZ1NlbGVjdGlvbiwgc28gYmFpbCBvdXQuCiAgICAgICAgIGlmIChlbmRp
bmdTZWxlY3Rpb24oKS5pc05vbmUoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICB9IGVsc2Ug
aWYgKGRvY3VtZW50KCkuZnJhbWUoKS0+ZWRpdG9yKCkuaXNPdmVyd3JpdGVNb2RlRW5hYmxlZCgp
KSB7CisgICAgfSBlbHNlIGlmIChmcmFtZSgpLmVkaXRvcigpLmlzT3ZlcndyaXRlTW9kZUVuYWJs
ZWQoKSkgewogICAgICAgICBpZiAocGVyZm9ybU92ZXJ3cml0ZShtX3RleHQsIG1fc2VsZWN0SW5z
ZXJ0ZWRUZXh0KSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMjIsNyArMjIyLDcg
QEAgdm9pZCBJbnNlcnRUZXh0Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgc2V0RW5kaW5nU2VsZWN0
aW9uV2l0aG91dFZhbGlkYXRpb24oc3RhcnRQb3NpdGlvbiwgZW5kUG9zaXRpb24pOwogCiAgICAg
Ly8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZXJlIGlzIGEgdHlwaW5nIHN0eWxlLgotICAgIGlm
IChSZWZQdHI8RWRpdGluZ1N0eWxlPiB0eXBpbmdTdHlsZSA9IGRvY3VtZW50KCkuZnJhbWUoKS0+
c2VsZWN0aW9uKCkudHlwaW5nU3R5bGUoKSkgeworICAgIGlmIChSZWZQdHI8RWRpdGluZ1N0eWxl
PiB0eXBpbmdTdHlsZSA9IGZyYW1lKCkuc2VsZWN0aW9uKCkudHlwaW5nU3R5bGUoKSkgewogICAg
ICAgICB0eXBpbmdTdHlsZS0+cHJlcGFyZVRvQXBwbHlBdChlbmRQb3NpdGlvbiwgRWRpdGluZ1N0
eWxlOjpQcmVzZXJ2ZVdyaXRpbmdEaXJlY3Rpb24pOwogICAgICAgICBpZiAoIXR5cGluZ1N0eWxl
LT5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhcHBseVN0eWxlKHR5cGluZ1N0eWxlLmdldCgpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVtb3ZlRm9ybWF0Q29tbWFuZC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlbW92ZUZvcm1hdENvbW1hbmQuY3BwCmluZGV4
IGVhYTc1NTAuLjVlNTBmOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVt
b3ZlRm9ybWF0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9SZW1vdmVG
b3JtYXRDb21tYW5kLmNwcApAQCAtNzksMTQgKzc5LDEyIEBAIHN0YXRpYyBib29sIGlzRWxlbWVu
dEZvclJlbW92ZUZvcm1hdENvbW1hbmQoY29uc3QgRWxlbWVudCogZWxlbWVudCkKIAogdm9pZCBS
ZW1vdmVGb3JtYXRDb21tYW5kOjpkb0FwcGx5KCkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1
bWVudCgpLmZyYW1lKCk7Ci0KLSAgICBpZiAoIWZyYW1lLT5zZWxlY3Rpb24oKS5zZWxlY3Rpb24o
KS5pc05vbk9ycGhhbmVkQ2FyZXRPclJhbmdlKCkpCisgICAgaWYgKCFmcmFtZSgpLnNlbGVjdGlv
bigpLnNlbGVjdGlvbigpLmlzTm9uT3JwaGFuZWRDYXJldE9yUmFuZ2UoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgLy8gR2V0IHRoZSBkZWZhdWx0IHN0eWxlIGZvciB0aGlzIGVkaXRhYmxlIHJv
b3QsIGl0J3MgdGhlIHN0eWxlIHRoYXQgd2UnbGwgZ2l2ZSB0aGUKICAgICAvLyBjb250ZW50IHRo
YXQgd2UncmUgb3BlcmF0aW5nIG9uLgotICAgIE5vZGUqIHJvb3QgPSBmcmFtZS0+c2VsZWN0aW9u
KCkucm9vdEVkaXRhYmxlRWxlbWVudCgpOworICAgIE5vZGUqIHJvb3QgPSBmcmFtZSgpLnNlbGVj
dGlvbigpLnJvb3RFZGl0YWJsZUVsZW1lbnQoKTsKICAgICBSZWZQdHI8RWRpdGluZ1N0eWxlPiBk
ZWZhdWx0U3R5bGUgPSBFZGl0aW5nU3R5bGU6OmNyZWF0ZShyb290KTsKIAogICAgIC8vIFdlIHdh
bnQgdG8gcmVtb3ZlIGV2ZXJ5dGhpbmcgYnV0IHRyYW5zcGFyZW50IGJhY2tncm91bmQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1JlcGxhY2VTZWxlY3Rpb25Db21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCmlu
ZGV4IGVkNDE1MjYuLjdhNjg2NzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
UmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQuY3BwCkBAIC0xMDEyLDggKzEwMTIsNyBAQCB2b2lkIFJl
cGxhY2VTZWxlY3Rpb25Db21tYW5kOjpkb0FwcGx5KCkKICAgICAKICAgICAvLyBGSVhNRTogQ2Fu
IHRoaXMgd2FpdCB1bnRpbCBhZnRlciB0aGUgb3BlcmF0aW9uIGhhcyBiZWVuIHBlcmZvcm1lZD8g
IFRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZQogICAgIC8vIGFueSB3b3JrIHBlcmZvcm1lZCBhZnRl
ciB0aGlzIHRoYXQgcXVlcmllcyBvciB1c2VzIHRoZSB0eXBpbmcgc3R5bGUuCi0gICAgaWYgKEZy
YW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgZnJhbWUtPnNlbGVjdGlv
bigpLmNsZWFyVHlwaW5nU3R5bGUoKTsKKyAgICBmcmFtZSgpLnNlbGVjdGlvbigpLmNsZWFyVHlw
aW5nU3R5bGUoKTsKIAogICAgIHJlbW92ZUhlYWRDb250ZW50cyhmcmFnbWVudCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0U2VsZWN0aW9uQ29tbWFuZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL1NldFNlbGVjdGlvbkNvbW1hbmQuY3BwCmluZGV4IDg4ZGRj
ZWMuLmYxNTNhOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU2V0U2VsZWN0
aW9uQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TZXRTZWxlY3Rpb25D
b21tYW5kLmNwcApAQCAtNDAsNyArNDAsNyBAQCBTZXRTZWxlY3Rpb25Db21tYW5kOjpTZXRTZWxl
Y3Rpb25Db21tYW5kKGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgRnJhbQogCiB2
b2lkIFNldFNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogewotICAgIEZyYW1lU2VsZWN0aW9u
JiBzZWxlY3Rpb24gPSBkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigpOworICAgIEZyYW1l
U2VsZWN0aW9uJiBzZWxlY3Rpb24gPSBmcmFtZSgpLnNlbGVjdGlvbigpOwogCiAgICAgaWYgKHNl
bGVjdGlvbi5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obV9zZWxlY3Rpb25Ub1NldCkgJiYgbV9zZWxl
Y3Rpb25Ub1NldC5pc05vbk9ycGhhbmVkQ2FyZXRPclJhbmdlKCkpIHsKICAgICAgICAgc2VsZWN0
aW9uLnNldFNlbGVjdGlvbihtX3NlbGVjdGlvblRvU2V0LCBtX29wdGlvbnMpOwpAQCAtNTAsNyAr
NTAsNyBAQCB2b2lkIFNldFNlbGVjdGlvbkNvbW1hbmQ6OmRvQXBwbHkoKQogCiB2b2lkIFNldFNl
bGVjdGlvbkNvbW1hbmQ6OmRvVW5hcHBseSgpCiB7Ci0gICAgRnJhbWVTZWxlY3Rpb24mIHNlbGVj
dGlvbiA9IGRvY3VtZW50KCkuZnJhbWUoKS0+c2VsZWN0aW9uKCk7CisgICAgRnJhbWVTZWxlY3Rp
b24mIHNlbGVjdGlvbiA9IGZyYW1lKCkuc2VsZWN0aW9uKCk7CiAKICAgICBpZiAoc2VsZWN0aW9u
LnNob3VsZENoYW5nZVNlbGVjdGlvbihzdGFydGluZ1NlbGVjdGlvbigpKSAmJiBzdGFydGluZ1Nl
bGVjdGlvbigpLmlzTm9uT3JwaGFuZWRDYXJldE9yUmFuZ2UoKSkKICAgICAgICAgc2VsZWN0aW9u
LnNldFNlbGVjdGlvbihzdGFydGluZ1NlbGVjdGlvbigpLCBtX29wdGlvbnMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9TcGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvU3BlbGxpbmdDb3JyZWN0aW9uQ29tbWFuZC5jcHAKaW5k
ZXggY2Q3M2ZmOC4uMmQ5NjZkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9T
cGVsbGluZ0NvcnJlY3Rpb25Db21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L1NwZWxsaW5nQ29ycmVjdGlvbkNvbW1hbmQuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCB2b2lkIGRvVW5hcHBseSgpIE9WRVJSSURFCiAgICAgewogICAgICAgICBp
ZiAoIW1faGFzQmVlblVuZG9uZSkgewotICAgICAgICAgICAgZG9jdW1lbnQoKS5mcmFtZSgpLT5l
ZGl0b3IoKS51bmFwcGxpZWRTcGVsbENvcnJlY3Rpb24oc3RhcnRpbmdTZWxlY3Rpb24oKSwgbV9j
b3JyZWN0ZWQsIG1fY29ycmVjdGlvbik7CisgICAgICAgICAgICBmcmFtZSgpLmVkaXRvcigpLnVu
YXBwbGllZFNwZWxsQ29ycmVjdGlvbihzdGFydGluZ1NlbGVjdGlvbigpLCBtX2NvcnJlY3RlZCwg
bV9jb3JyZWN0aW9uKTsKICAgICAgICAgICAgIG1faGFzQmVlblVuZG9uZSA9IHRydWU7CiAgICAg
ICAgIH0KICAgICAgICAgCkBAIC05NSw3ICs5NSw3IEBAIHZvaWQgU3BlbGxpbmdDb3JyZWN0aW9u
Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgaWYgKCFtX2NvcnJlY3RlZC5sZW5ndGgoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPnNlbGVjdGlvbigpLnNo
b3VsZENoYW5nZVNlbGVjdGlvbihtX3NlbGVjdGlvblRvQmVDb3JyZWN0ZWQpKQorICAgIGlmICgh
ZnJhbWUoKS5zZWxlY3Rpb24oKS5zaG91bGRDaGFuZ2VTZWxlY3Rpb24obV9zZWxlY3Rpb25Ub0Jl
Q29ycmVjdGVkKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPERvY3VtZW50RnJhZ21l
bnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChtX3JhbmdlVG9CZUNvcnJlY3Rl
ZC5nZXQoKSwgbV9jb3JyZWN0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVHlwaW5nQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1R5cGluZ0NvbW1h
bmQuY3BwCmluZGV4IGEzOWZlMTguLjAxYjJmOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvVHlwaW5nQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9U
eXBpbmdDb21tYW5kLmNwcApAQCAtMjkzLDE5ICsyOTMsMTcgQEAgRWRpdEFjdGlvbiBUeXBpbmdD
b21tYW5kOjplZGl0aW5nQWN0aW9uKCkgY29uc3QKIAogdm9pZCBUeXBpbmdDb21tYW5kOjptYXJr
TWlzc3BlbGxpbmdzQWZ0ZXJUeXBpbmcoRVR5cGluZ0NvbW1hbmQgY29tbWFuZFR5cGUpCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0g
ICAgICAgIHJldHVybjsKKyAgICBGcmFtZSYgZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLmlzQ29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCkKLSAgICAgICAgJiYgIWZyYW1lLT5lZGl0b3IoKS5pc0F1dG9tYXRp
Y1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpCi0gICAgICAgICYmICFmcmFtZS0+ZWRpdG9yKCku
aXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpCi0gICAgICAgICYmICFmcmFtZS0+ZWRp
dG9yKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpCi0gICAgICAgICYmICFm
cmFtZS0+ZWRpdG9yKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCkpCisgICAg
aWYgKCFmcmFtZS5lZGl0b3IoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCisg
ICAgICAgICYmICFmcmFtZS5lZGl0b3IoKS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5h
YmxlZCgpCisgICAgICAgICYmICFmcmFtZS5lZGl0b3IoKS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rp
b25FbmFibGVkKCkKKyAgICAgICAgJiYgIWZyYW1lLmVkaXRvcigpLmlzQXV0b21hdGljRGFzaFN1
YnN0aXR1dGlvbkVuYWJsZWQoKQorICAgICAgICAmJiAhZnJhbWUuZWRpdG9yKCkuaXNBdXRvbWF0
aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAjZWxzZQot
ICAgIGlmICghZnJhbWUtPmVkaXRvcigpLmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVk
KCkpCisgICAgaWYgKCFmcmFtZS5lZGl0b3IoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZCgpKQogICAgICAgICByZXR1cm47CiAjZW5kaWYKICAgICAvLyBUYWtlIGEgbG9vayBhdCB0
aGUgc2VsZWN0aW9uIHRoYXQgcmVzdWx0cyBhZnRlciB0eXBpbmcgYW5kIGRldGVybWluZSB3aGV0
aGVyIHdlIG5lZWQgdG8gc3BlbGxjaGVjay4gCkBAIC0zMjIsMjkgKzMyMCwyNyBAQCB2b2lkIFR5
cGluZ0NvbW1hbmQ6Om1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZyhFVHlwaW5nQ29tbWFuZCBj
b21tYW5kVHlwZSkKICAgICAgICAgICAgIFN0cmluZyBzdHJpcHBlZFByZXZpb3VzV29yZDsKICAg
ICAgICAgICAgIGlmIChyYW5nZSAmJiAoY29tbWFuZFR5cGUgPT0gVHlwaW5nQ29tbWFuZDo6SW5z
ZXJ0VGV4dCB8fCBjb21tYW5kVHlwZSA9PSBUeXBpbmdDb21tYW5kOjpJbnNlcnRMaW5lQnJlYWsg
fHwgY29tbWFuZFR5cGUgPT0gVHlwaW5nQ29tbWFuZDo6SW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9y
IHx8IGNvbW1hbmRUeXBlID09IFR5cGluZ0NvbW1hbmQ6Okluc2VydFBhcmFncmFwaFNlcGFyYXRv
ckluUXVvdGVkQ29udGVudCkpCiAgICAgICAgICAgICAgICAgc3RyaXBwZWRQcmV2aW91c1dvcmQg
PSBwbGFpblRleHQocmFuZ2UuZ2V0KCkpLnN0cmlwV2hpdGVTcGFjZSgpOwotICAgICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLm1hcmtNaXNzcGVsbGluZ3NBZnRlclR5cGluZ1RvV29yZChwMSwgZW5k
aW5nU2VsZWN0aW9uKCksICFzdHJpcHBlZFByZXZpb3VzV29yZC5pc0VtcHR5KCkpOworICAgICAg
ICAgICAgZnJhbWUuZWRpdG9yKCkubWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nVG9Xb3JkKHAx
LCBlbmRpbmdTZWxlY3Rpb24oKSwgIXN0cmlwcGVkUHJldmlvdXNXb3JkLmlzRW1wdHkoKSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoY29tbWFuZFR5cGUgPT0gVHlwaW5nQ29tbWFuZDo6SW5zZXJ0VGV4
dCkKLSAgICAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5zdGFydEFsdGVybmF0aXZlVGV4dFVJVGlt
ZXIoKTsKKyAgICAgICAgICAgIGZyYW1lLmVkaXRvcigpLnN0YXJ0QWx0ZXJuYXRpdmVUZXh0VUlU
aW1lcigpOwogICAgIH0KIH0KIAogdm9pZCBUeXBpbmdDb21tYW5kOjp0eXBpbmdBZGRlZFRvT3Bl
bkNvbW1hbmQoRVR5cGluZ0NvbW1hbmQgY29tbWFuZFR5cGVGb3JBZGRlZFR5cGluZykKIHsKLSAg
ICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuOworICAgIEZyYW1lJiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAKICAgICB1
cGRhdGVQcmVzZXJ2ZXNUeXBpbmdTdHlsZShjb21tYW5kVHlwZUZvckFkZGVkVHlwaW5nKTsKIAog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBmcmFtZS0+ZWRpdG9yKCkuYXBwbGllZEVkaXRpbmcodGhp
cyk7CisgICAgZnJhbWUuZWRpdG9yKCkuYXBwbGllZEVkaXRpbmcodGhpcyk7CiAgICAgLy8gU2lu
Y2UgdGhlIHNwZWxsY2hlY2tpbmcgY29kZSBtYXkgYWxzbyBwZXJmb3JtIGNvcnJlY3Rpb25zIGFu
ZCBvdGhlciByZXBsYWNlbWVudHMsIGl0IHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhlIHR5cGluZyBj
aGFuZ2VzLgogICAgIGlmICghbV9zaG91bGRQcmV2ZW50U3BlbGxDaGVja2luZykKICAgICAgICAg
bWFya01pc3NwZWxsaW5nc0FmdGVyVHlwaW5nKGNvbW1hbmRUeXBlRm9yQWRkZWRUeXBpbmcpOwog
I2Vsc2UKICAgICAvLyBUaGUgb2xkIHNwZWxsY2hlY2tpbmcgY29kZSByZXF1aXJlcyB0aGF0IGNo
ZWNraW5nIGJlIGRvbmUgZmlyc3QsIHRvIHByZXZlbnQgaXNzdWVzIGxpa2UgdGhhdCBpbiA2ODY0
MDcyLCB3aGVyZSA8ZG9lc24ndD4gaXMgbWFya2VkIGFzIG1pc3NwZWxsZWQuCiAgICAgbWFya01p
c3NwZWxsaW5nc0FmdGVyVHlwaW5nKGNvbW1hbmRUeXBlRm9yQWRkZWRUeXBpbmcpOwotICAgIGZy
YW1lLT5lZGl0b3IoKS5hcHBsaWVkRWRpdGluZyh0aGlzKTsKKyAgICBmcmFtZS5lZGl0b3IoKS5h
cHBsaWVkRWRpdGluZyh0aGlzKTsKICNlbmRpZgogfQogCkBAIC00MjMsMTEgKzQxOSw5IEBAIGJv
b2wgVHlwaW5nQ29tbWFuZDo6bWFrZUVkaXRhYmxlUm9vdEVtcHR5KCkKIAogdm9pZCBUeXBpbmdD
b21tYW5kOjpkZWxldGVLZXlQcmVzc2VkKFRleHRHcmFudWxhcml0eSBncmFudWxhcml0eSwgYm9v
bCBraWxsUmluZykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCk7Ci0g
ICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuOworICAgIEZyYW1lJiBmcmFtZSA9IHRoaXMt
PmZyYW1lKCk7CiAKLSAgICBmcmFtZS0+ZWRpdG9yKCkudXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZm
ZWN0ZWRCeUVkaXRpbmcoZmFsc2UpOworICAgIGZyYW1lLmVkaXRvcigpLnVwZGF0ZU1hcmtlcnNG
b3JXb3Jkc0FmZmVjdGVkQnlFZGl0aW5nKGZhbHNlKTsKIAogICAgIFZpc2libGVTZWxlY3Rpb24g
c2VsZWN0aW9uVG9EZWxldGU7CiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25BZnRlclVu
ZG87CkBAIC01MTAsMTEgKzUwNCwxMSBAQCB2b2lkIFR5cGluZ0NvbW1hbmQ6OmRlbGV0ZUtleVBy
ZXNzZWQoVGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nKQogICAgIGlm
IChzZWxlY3Rpb25Ub0RlbGV0ZS5pc05vbmUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAg
IGlmIChzZWxlY3Rpb25Ub0RlbGV0ZS5pc0NhcmV0KCkgfHwgIWZyYW1lLT5zZWxlY3Rpb24oKS5z
aG91bGREZWxldGVTZWxlY3Rpb24oc2VsZWN0aW9uVG9EZWxldGUpKQorICAgIGlmIChzZWxlY3Rp
b25Ub0RlbGV0ZS5pc0NhcmV0KCkgfHwgIWZyYW1lLnNlbGVjdGlvbigpLnNob3VsZERlbGV0ZVNl
bGVjdGlvbihzZWxlY3Rpb25Ub0RlbGV0ZSkpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBp
ZiAoa2lsbFJpbmcpCi0gICAgICAgIGZyYW1lLT5lZGl0b3IoKS5hZGRUb0tpbGxSaW5nKHNlbGVj
dGlvblRvRGVsZXRlLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIGZhbHNlKTsKKyAgICAgICAg
ZnJhbWUuZWRpdG9yKCkuYWRkVG9LaWxsUmluZyhzZWxlY3Rpb25Ub0RlbGV0ZS50b05vcm1hbGl6
ZWRSYW5nZSgpLmdldCgpLCBmYWxzZSk7CiAgICAgLy8gTWFrZSB1bmRvIHNlbGVjdCBldmVyeXRo
aW5nIHRoYXQgaGFzIGJlZW4gZGVsZXRlZCwgdW5sZXNzIGFuIHVuZG8gd2lsbCB1bmRvIG1vcmUg
dGhhbiBqdXN0IHRoaXMgZGVsZXRpb24uCiAgICAgLy8gRklYTUU6IFRoaXMgYmVoYXZlcyBsaWtl
IFRleHRFZGl0IGV4Y2VwdCBmb3IgdGhlIGNhc2Ugd2hlcmUgeW91IG9wZW4gd2l0aCB0ZXh0IGlu
c2VydGlvbiBhbmQgdGhlbiBkZWxldGUKICAgICAvLyBtb3JlIHRleHQgdGhhbiB5b3UgaW5zZXJ0
LiAgSW4gdGhhdCBjYXNlIGFsbCBvZiB0aGUgdGV4dCB0aGF0IHdhcyBhcm91bmQgb3JpZ2luYWxs
eSBzaG91bGQgYmUgc2VsZWN0ZWQuCkBAIC01MjcsMTEgKzUyMSw5IEBAIHZvaWQgVHlwaW5nQ29t
bWFuZDo6ZGVsZXRlS2V5UHJlc3NlZChUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGJvb2wg
a2lsbFJpbmcpCiAKIHZvaWQgVHlwaW5nQ29tbWFuZDo6Zm9yd2FyZERlbGV0ZUtleVByZXNzZWQo
VGV4dEdyYW51bGFyaXR5IGdyYW51bGFyaXR5LCBib29sIGtpbGxSaW5nKQogewotICAgIEZyYW1l
KiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm47CisgICAgRnJhbWUmIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKIAotICAgIGZyYW1lLT5l
ZGl0b3IoKS51cGRhdGVNYXJrZXJzRm9yV29yZHNBZmZlY3RlZEJ5RWRpdGluZyhmYWxzZSk7Cisg
ICAgZnJhbWUuZWRpdG9yKCkudXBkYXRlTWFya2Vyc0ZvcldvcmRzQWZmZWN0ZWRCeUVkaXRpbmco
ZmFsc2UpOwogCiAgICAgVmlzaWJsZVNlbGVjdGlvbiBzZWxlY3Rpb25Ub0RlbGV0ZTsKICAgICBW
aXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbkFmdGVyVW5kbzsKQEAgLTYwMywxMSArNTk1LDExIEBA
IHZvaWQgVHlwaW5nQ29tbWFuZDo6Zm9yd2FyZERlbGV0ZUtleVByZXNzZWQoVGV4dEdyYW51bGFy
aXR5IGdyYW51bGFyaXR5LCBib29sIGtpCiAgICAgaWYgKHNlbGVjdGlvblRvRGVsZXRlLmlzTm9u
ZSgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKHNlbGVjdGlvblRvRGVsZXRlLmlz
Q2FyZXQoKSB8fCAhZnJhbWUtPnNlbGVjdGlvbigpLnNob3VsZERlbGV0ZVNlbGVjdGlvbihzZWxl
Y3Rpb25Ub0RlbGV0ZSkpCisgICAgaWYgKHNlbGVjdGlvblRvRGVsZXRlLmlzQ2FyZXQoKSB8fCAh
ZnJhbWUuc2VsZWN0aW9uKCkuc2hvdWxkRGVsZXRlU2VsZWN0aW9uKHNlbGVjdGlvblRvRGVsZXRl
KSkKICAgICAgICAgcmV0dXJuOwogICAgICAgICAKICAgICBpZiAoa2lsbFJpbmcpCi0gICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5hZGRUb0tpbGxSaW5nKHNlbGVjdGlvblRvRGVsZXRlLnRvTm9ybWFs
aXplZFJhbmdlKCkuZ2V0KCksIGZhbHNlKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkuYWRkVG9L
aWxsUmluZyhzZWxlY3Rpb25Ub0RlbGV0ZS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBmYWxz
ZSk7CiAgICAgLy8gbWFrZSB1bmRvIHNlbGVjdCB3aGF0IHdhcyBkZWxldGVkCiAgICAgc2V0U3Rh
cnRpbmdTZWxlY3Rpb24oc2VsZWN0aW9uQWZ0ZXJVbmRvKTsKICAgICBDb21wb3NpdGVFZGl0Q29t
bWFuZDo6ZGVsZXRlU2VsZWN0aW9uKHNlbGVjdGlvblRvRGVsZXRlLCBtX3NtYXJ0RGVsZXRlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>