<?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>106879</bug_id>
          
          <creation_ts>2013-01-15 01:01:07 -0800</creation_ts>
          <short_desc>Group all request parameters which are used to match CSS Rules into a parameter object.</short_desc>
          <delta_ts>2013-01-15 18:07:35 -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>CSS</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>
          
          <blocked>82169</blocked>
    
    <blocked>89879</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hayato Ito">hayato</reporter>
          <assigned_to name="Hayato Ito">hayato</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dglazkov</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>807076</commentid>
    <comment_count>0</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-01-15 01:01:07 -0800</bug_when>
    <thetext>This is a separated patch from bug 82169.
This is a starting point to factor StyleResolver so we can implement the new features.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807084</commentid>
    <comment_count>1</comment_count>
      <attachid>182717</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-01-15 01:08:15 -0800</bug_when>
    <thetext>Created attachment 182717
factored. Introduces MatchRequest</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807242</commentid>
    <comment_count>2</comment_count>
      <attachid>182717</attachid>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2013-01-15 06:31:14 -0800</bug_when>
    <thetext>Comment on attachment 182717
factored. Introduces MatchRequest

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Group all request parameters which is used to match CSS Rules into a one parameter.

is used =&gt; are used

to agree with the plural parameters

Also

a one parameter =&gt; a parameter object

&quot;a one&quot; is wrong; &quot;a parameter object&quot; is more specific but at least delete &quot;a&quot;, that is &quot;into one parameter&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807359</commentid>
    <comment_count>3</comment_count>
      <attachid>182717</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2013-01-15 09:09:30 -0800</bug_when>
    <thetext>Comment on attachment 182717
factored. Introduces MatchRequest

Please address Dominic&apos;s nits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807859</commentid>
    <comment_count>4</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-01-15 17:40:30 -0800</bug_when>
    <thetext>Thank you for the review.
Let me land the patch afte fixing the ChangeLog.

(In reply to comment #2)
&gt; (From update of attachment 182717 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=182717&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Group all request parameters which is used to match CSS Rules into a one parameter.
&gt; 
&gt; is used =&gt; are used
&gt; 
&gt; to agree with the plural parameters
&gt; 
&gt; Also
&gt; 
&gt; a one parameter =&gt; a parameter object
&gt; 
&gt; &quot;a one&quot; is wrong; &quot;a parameter object&quot; is more specific but at least delete &quot;a&quot;, that is &quot;into one parameter&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807864</commentid>
    <comment_count>5</comment_count>
      <attachid>182887</attachid>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2013-01-15 17:47:07 -0800</bug_when>
    <thetext>Created attachment 182887
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807882</commentid>
    <comment_count>6</comment_count>
      <attachid>182887</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 18:07:30 -0800</bug_when>
    <thetext>Comment on attachment 182887
Patch for landing

Clearing flags on attachment: 182887

Committed r139817: &lt;http://trac.webkit.org/changeset/139817&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807883</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-15 18:07:35 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182717</attachid>
            <date>2013-01-15 01:08:15 -0800</date>
            <delta_ts>2013-01-15 17:47:02 -0800</delta_ts>
            <desc>factored. Introduces MatchRequest</desc>
            <filename>bug-106879-20130115180515.patch</filename>
            <type>text/plain</type>
            <size>14023</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMyNDhiMTJmMDY3Yzc2
ZTE1NzgzMjYzYTgyYjg3ZWY4MmQyZmQ3Yi4uODJiMGZjMGVhZmVmODRlZTZlYjQ5NDQ1ZDEyZTQ5
Yzk5ODQ1YjEwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTE1ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBHcm91cCBhbGwgcmVxdWVz
dCBwYXJhbWV0ZXJzIHdoaWNoIGlzIHVzZWQgdG8gbWF0Y2ggQ1NTIFJ1bGVzIGludG8gYSBvbmUg
cGFyYW1ldGVyLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA2ODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSW50cm9kdWNlcyBhIE1hdGNoUmVxdWVzdCB3aGljaCBncm91cHMgYWxsIHJlcXVlc3QgcGFy
YW1ldGVycyB0byBtYXRjaCBDU1MgcnVsZXMuCisKKyAgICAgICAgRmFjdG9yaW5nLCBubyBjaGFu
Z2UgaW4gYmVoYXZpb3IuCisKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lv
bik6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1
bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9yUnVsZXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0Y2hVc2VyUnVsZXMpOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0Y2hVQVJ1bGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJlc29sdmVyOjpzdHlsZVNoYXJpbmdDYW5kaWRhdGVNYXRjaGVzUnVsZVNl
dCk6CisgICAgICAgICogY3NzL1N0eWxlUmVzb2x2ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0
eWxlUmVzb2x2ZXI6Ok1hdGNoUmVxdWVzdDo6TWF0Y2hSZXF1ZXN0KToKKyAgICAgICAgKE1hdGNo
UmVxdWVzdCk6CisgICAgICAgIChTdHlsZVJlc29sdmVyKToKKwogMjAxMy0wMS0xNCAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgWWV0IGFub3RoZXIgdW5yZXZpZXdl
ZCBhdHRlbXB0ZWQgUVQgYnVpbGQgZml4LCB0aGlzIHRpbWUgYmVjYXVzZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDUwYWQ2MTZmZDhkOTk5NzZkMDg3YjM0MmFkYjg4NDAy
YmMzN2VlY2QuLjlkZWEwODgxMGQ3MjlmNTQ2NGU3MjYwNzRhMjc5YWE1Y2NhYTAzYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTY0MiwyMCArNjQyLDIwIEBAIGlubGlu
ZSBib29sIE1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNoaW5nVUFSdWxlcygpCiAKIGJvb2wg
TWF0Y2hpbmdVQVJ1bGVzU2NvcGU6Om1fbWF0Y2hpbmdVQVJ1bGVzID0gZmFsc2U7CiAKLXZvaWQg
U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXMoUnVsZVNldCogcnVsZXMsIGludCYg
Zmlyc3RSdWxlSW5kZXgsIGludCYgbGFzdFJ1bGVJbmRleCwgY29uc3QgTWF0Y2hPcHRpb25zJiBv
cHRpb25zKQordm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhjb25zdCBN
YXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVzdCwgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0
UnVsZUluZGV4KQogewotICAgIEFTU0VSVChydWxlcyk7CisgICAgQVNTRVJUKG1hdGNoUmVxdWVz
dC5ydWxlU2V0KTsKICAgICBBU1NFUlQobV9lbGVtZW50KTsKIAogICAgIGNvbnN0IEF0b21pY1N0
cmluZyYgcHNldWRvSWQgPSBtX2VsZW1lbnQtPnNoYWRvd1BzZXVkb0lkKCk7CiAgICAgaWYgKCFw
c2V1ZG9JZC5pc0VtcHR5KCkpIHsKICAgICAgICAgQVNTRVJUKG1fc3R5bGVkRWxlbWVudCk7Ci0g
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlcy0+c2hhZG93UHNldWRvRWxl
bWVudFJ1bGVzKHBzZXVkb0lkLmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4
LCBvcHRpb25zKTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVx
dWVzdC5ydWxlU2V0LT5zaGFkb3dQc2V1ZG9FbGVtZW50UnVsZXMocHNldWRvSWQuaW1wbCgpKSwg
bWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgfQogCiAj
aWYgRU5BQkxFKFZJREVPX1RSQUNLKQogICAgIGlmIChtX2VsZW1lbnQtPndlYlZUVE5vZGVUeXBl
KCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlcy0+Y3VlUHNldWRv
UnVsZXMoKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgsIG9wdGlvbnMpOworICAgICAg
ICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPmN1ZVBz
ZXVkb1J1bGVzKCksIG1hdGNoUmVxdWVzdCwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgp
OwogI2VuZGlmCiAgICAgLy8gQ2hlY2sgd2hldGhlciBvdGhlciB0eXBlcyBvZiBydWxlcyBhcmUg
YXBwbGljYWJsZSBpbiB0aGUgY3VycmVudCB0cmVlIHNjb3BlLiBDcml0ZXJpYSBmb3IgdGhpczoK
ICAgICAvLyBhKSBpdCdzIGEgVUEgcnVsZQpAQCAtNjY0LDM4ICs2NjQsMzggQEAgdm9pZCBTdHls
ZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiBydWxlcywgaW50JiBmaXJz
dFJ1bGVJbmRleCwgaW4KICAgICBUcmVlU2NvcGUqIHRyZWVTY29wZSA9IG1fZWxlbWVudC0+dHJl
ZVNjb3BlKCk7CiAgICAgaWYgKCFNYXRjaGluZ1VBUnVsZXNTY29wZTo6aXNNYXRjaGluZ1VBUnVs
ZXMoKQogICAgICAgICAmJiAhdHJlZVNjb3BlLT5hcHBseUF1dGhvclN0eWxlcygpCi0gICAgICAg
ICYmICghb3B0aW9ucy5zY29wZSB8fCBvcHRpb25zLnNjb3BlLT50cmVlU2NvcGUoKSAhPSB0cmVl
U2NvcGUpKQorICAgICAgICAmJiAoIW1hdGNoUmVxdWVzdC5zY29wZSB8fCBtYXRjaFJlcXVlc3Qu
c2NvcGUtPnRyZWVTY29wZSgpICE9IHRyZWVTY29wZSkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIFdlIG5lZWQgdG8gY29sbGVjdCB0aGUgcnVsZXMgZm9yIGlkLCBjbGFzcywgdGFnLCBhbmQg
ZXZlcnl0aGluZyBlbHNlIGludG8gYSBidWZmZXIgYW5kCiAgICAgLy8gdGhlbiBzb3J0IHRoZSBi
dWZmZXIuCiAgICAgaWYgKG1fZWxlbWVudC0+aGFzSUQoKSkKLSAgICAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5pZFJ1bGVzKG1fZWxlbWVudC0+aWRGb3JTdHlsZVJlc29s
dXRpb24oKS5pbXBsKCkpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7
CisgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNl
dC0+aWRSdWxlcyhtX2VsZW1lbnQtPmlkRm9yU3R5bGVSZXNvbHV0aW9uKCkuaW1wbCgpKSwgbWF0
Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgaWYgKG1fc3R5
bGVkRWxlbWVudCAmJiBtX3N0eWxlZEVsZW1lbnQtPmhhc0NsYXNzKCkpIHsKICAgICAgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBtX3N0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKS5zaXplKCk7
ICsraSkKLSAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlcy0+Y2xh
c3NSdWxlcyhtX3N0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKVtpXS5pbXBsKCkpLCBmaXJzdFJ1
bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7CisgICAgICAgICAgICBjb2xsZWN0TWF0
Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPmNsYXNzUnVsZXMobV9zdHls
ZWRFbGVtZW50LT5jbGFzc05hbWVzKClbaV0uaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1
bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgfQogCiAgICAgaWYgKG1fZWxlbWVudC0+aXNM
aW5rKCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChydWxlcy0+bGlua1Bz
ZXVkb0NsYXNzUnVsZXMoKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgsIG9wdGlvbnMp
OworICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVT
ZXQtPmxpbmtQc2V1ZG9DbGFzc1J1bGVzKCksIG1hdGNoUmVxdWVzdCwgZmlyc3RSdWxlSW5kZXgs
IGxhc3RSdWxlSW5kZXgpOwogICAgIGlmIChtX3NlbGVjdG9yQ2hlY2tlci5tYXRjaGVzRm9jdXNQ
c2V1ZG9DbGFzcyhtX2VsZW1lbnQpKQotICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QocnVsZXMtPmZvY3VzUHNldWRvQ2xhc3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1
bGVJbmRleCwgb3B0aW9ucyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVz
LT50YWdSdWxlcyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4
LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QocnVsZXMtPnVuaXZlcnNhbFJ1bGVzKCksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4
LCBvcHRpb25zKTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVx
dWVzdC5ydWxlU2V0LT5mb2N1c1BzZXVkb0NsYXNzUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBmaXJz
dFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JM
aXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0LT50YWdSdWxlcyhtX2VsZW1lbnQtPmxvY2FsTmFtZSgp
LmltcGwoKSksIG1hdGNoUmVxdWVzdCwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgpOwor
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+dW5p
dmVyc2FsUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRl
eCk7CiB9CiAKLXZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JSZWdp
b24oUnVsZVNldCogcnVsZXMsIGludCYgZmlyc3RSdWxlSW5kZXgsIGludCYgbGFzdFJ1bGVJbmRl
eCwgY29uc3QgTWF0Y2hPcHRpb25zJiBvcHRpb25zKQordm9pZCBTdHlsZVJlc29sdmVyOjpjb2xs
ZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihjb25zdCBNYXRjaFJlcXVlc3QmIG1hdGNoUmVxdWVz
dCwgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4KQogewogICAgIGlmICgh
bV9yZWdpb25Gb3JTdHlsaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICB1bnNpZ25lZCBzaXpl
ID0gcnVsZXMtPm1fcmVnaW9uU2VsZWN0b3JzQW5kUnVsZVNldHMuc2l6ZSgpOworICAgIHVuc2ln
bmVkIHNpemUgPSBtYXRjaFJlcXVlc3QucnVsZVNldC0+bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxl
U2V0cy5zaXplKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHNpemU7ICsraSkgewot
ICAgICAgICBDU1NTZWxlY3RvciogcmVnaW9uU2VsZWN0b3IgPSBydWxlcy0+bV9yZWdpb25TZWxl
Y3RvcnNBbmRSdWxlU2V0cy5hdChpKS5zZWxlY3RvcjsKKyAgICAgICAgQ1NTU2VsZWN0b3IqIHJl
Z2lvblNlbGVjdG9yID0gbWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPm1fcmVnaW9uU2VsZWN0b3JzQW5k
UnVsZVNldHMuYXQoaSkuc2VsZWN0b3I7CiAgICAgICAgIGlmIChjaGVja1JlZ2lvblNlbGVjdG9y
KHJlZ2lvblNlbGVjdG9yLCBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obV9yZWdpb25Gb3JTdHlsaW5n
LT5ub2RlKCkpKSkgewotICAgICAgICAgICAgUnVsZVNldCogcmVnaW9uUnVsZXMgPSBydWxlcy0+
bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hdChpKS5ydWxlU2V0LmdldCgpOworICAgICAg
ICAgICAgUnVsZVNldCogcmVnaW9uUnVsZXMgPSBtYXRjaFJlcXVlc3QucnVsZVNldC0+bV9yZWdp
b25TZWxlY3RvcnNBbmRSdWxlU2V0cy5hdChpKS5ydWxlU2V0LmdldCgpOwogICAgICAgICAgICAg
QVNTRVJUKHJlZ2lvblJ1bGVzKTsKLSAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKHJl
Z2lvblJ1bGVzLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7CisgICAg
ICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhNYXRjaFJlcXVlc3QocmVnaW9uUnVsZXMsIG1h
dGNoUmVxdWVzdC5pbmNsdWRlRW1wdHlSdWxlcywgbWF0Y2hSZXF1ZXN0LnNjb3BlKSwgZmlyc3RS
dWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgpOwogICAgICAgICB9CiAgICAgfQogfQpAQCAtNzUzLDkg
Kzc1Myw5IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hTY29wZWRBdXRob3JSdWxlcyhNYXRj
aFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0CiAgICAgICAgICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBNYXRjaE9wdGlvbnMgb3B0aW9u
cyhpbmNsdWRlRW1wdHlSdWxlcywgZnJhbWUubV9zY29wZSk7Ci0gICAgICAgICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlcyhmcmFtZS5tX3J1bGVTZXQsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JS
dWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKLSAgICAgICAgICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJh
bmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlv
bnMpOworICAgICAgICAgICAgTWF0Y2hSZXF1ZXN0IG1hdGNoUmVxdWVzdChmcmFtZS5tX3J1bGVT
ZXQsIGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlKTsKKyAgICAgICAgICAgIGNvbGxl
Y3RNYXRjaGluZ1J1bGVzKG1hdGNoUmVxdWVzdCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1
bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUpOworICAgICAgICAgICAgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JSZWdpb24obWF0Y2hSZXF1ZXN0LCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0
aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSk7CiAgICAgICAgICAgICBzb3J0
QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTc4
OSw5ICs3ODksOCBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoSG9zdFJ1bGVzKE1hdGNoUmVz
dWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpCiAgICAgaWYgKG1hdGNoZWRSdWxl
cy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIE1hdGNoT3B0aW9ucyBvcHRpb25z
KGluY2x1ZGVFbXB0eVJ1bGVzLCBtX2VsZW1lbnQpOwogICAgIGZvciAodW5zaWduZWQgaSA9IG1h
dGNoZWRSdWxlcy5zaXplKCk7IGkgPiAwOyAtLWkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1
bGVzKG1hdGNoZWRSdWxlcy5hdChpLTEpLCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwg
cmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7CisgICAgICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzKE1hdGNoUmVxdWVzdChtYXRjaGVkUnVsZXMuYXQoaS0xKSwgaW5jbHVkZUVt
cHR5UnVsZXMsIG1fZWxlbWVudCksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1
bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlKTsKICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVs
ZXMocmVzdWx0KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHJlc3VsdCk7CkBAIC04MDgsOSAr
ODA3LDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaEF1dGhvclJ1bGVzKE1hdGNoUmVzdWx0
JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Ly8gTWF0Y2ggZ2xvYmFsIGF1dGhvciBydWxlcy4KLSAgICBNYXRjaE9wdGlvbnMgb3B0aW9ucyhp
bmNsdWRlRW1wdHlSdWxlcyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobV9hdXRob3JTdHls
ZS5nZXQoKSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFz
dEF1dGhvclJ1bGUsIG9wdGlvbnMpOwotICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9u
KG1fYXV0aG9yU3R5bGUuZ2V0KCksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JSdWxlLCByZXN1
bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICBNYXRjaFJlcXVlc3QgbWF0
Y2hSZXF1ZXN0KG1fYXV0aG9yU3R5bGUuZ2V0KCksIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICBj
b2xsZWN0TWF0Y2hpbmdSdWxlcyhtYXRjaFJlcXVlc3QsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRo
b3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlKTsKKyAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlc0ZvclJlZ2lvbihtYXRjaFJlcXVlc3QsIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JS
dWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlKTsKICAgICBzb3J0QW5kVHJhbnNmZXJN
YXRjaGVkUnVsZXMocmVzdWx0KTsKIAogICAgIG1hdGNoU2NvcGVkQXV0aG9yUnVsZXMocmVzdWx0
LCBpbmNsdWRlRW1wdHlSdWxlcyk7CkBAIC04MjQsOCArODIzLDkgQEAgdm9pZCBTdHlsZVJlc29s
dmVyOjptYXRjaFVzZXJSdWxlcyhNYXRjaFJlc3VsdCYgcmVzdWx0LCBib29sIGluY2x1ZGVFbXB0
eVJ1bGVzKQogICAgIG1fbWF0Y2hlZFJ1bGVzLmNsZWFyKCk7CiAKICAgICByZXN1bHQucmFuZ2Vz
Lmxhc3RVc2VyUnVsZSA9IHJlc3VsdC5tYXRjaGVkUHJvcGVydGllcy5zaXplKCkgLSAxOwotICAg
IGNvbGxlY3RNYXRjaGluZ1J1bGVzKG1fdXNlclN0eWxlLmdldCgpLCByZXN1bHQucmFuZ2VzLmZp
cnN0VXNlclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdFVzZXJSdWxlLCBpbmNsdWRlRW1wdHlSdWxl
cyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JSZWdpb24obV91c2VyU3R5bGUuZ2V0KCks
IHJlc3VsdC5yYW5nZXMuZmlyc3RVc2VyUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0VXNlclJ1bGUs
IGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KG1fdXNl
clN0eWxlLmdldCgpLCBpbmNsdWRlRW1wdHlSdWxlcyk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVs
ZXMobWF0Y2hSZXF1ZXN0LCByZXN1bHQucmFuZ2VzLmZpcnN0VXNlclJ1bGUsIHJlc3VsdC5yYW5n
ZXMubGFzdFVzZXJSdWxlKTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihtYXRj
aFJlcXVlc3QsIHJlc3VsdC5yYW5nZXMuZmlyc3RVc2VyUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0
VXNlclJ1bGUpOwogCiAgICAgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKHJlc3VsdCk7CiB9
CkBAIC04MzUsMTIgKzgzNSwxMiBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoVUFSdWxlcyhN
YXRjaFJlc3VsdCYgcmVzdWx0LCBSdWxlU2V0KiBydWxlcykKICAgICBtX21hdGNoZWRSdWxlcy5j
bGVhcigpOwogICAgIAogICAgIHJlc3VsdC5yYW5nZXMubGFzdFVBUnVsZSA9IHJlc3VsdC5tYXRj
aGVkUHJvcGVydGllcy5zaXplKCkgLSAxOwotICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKHJ1bGVz
LCByZXN1bHQucmFuZ2VzLmZpcnN0VUFSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUsIGZh
bHNlKTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhNYXRjaFJlcXVlc3QocnVsZXMpLCByZXN1
bHQucmFuZ2VzLmZpcnN0VUFSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RVQVJ1bGUpOwogCiAgICAg
c29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKHJlc3VsdCk7CiB9CiAKLXZvaWQgU3R5bGVSZXNv
bHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4q
IHJ1bGVzLCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0IE1h
dGNoT3B0aW9ucyYgb3B0aW9ucykKK3ZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5n
UnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBjb25zdCBNYXRjaFJl
cXVlc3QmIG1hdGNoUmVxdWVzdCwgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUlu
ZGV4KQogewogICAgIGlmICghcnVsZXMpCiAgICAgICAgIHJldHVybjsKQEAgLTg1NywxMCArODU3
LDEwIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNv
bnN0IFZlY3RvcjxSdWxlRGF0YT4qIHJ1bGVzLCBpCiAKICAgICAgICAgU3R5bGVSdWxlKiBydWxl
ID0gcnVsZURhdGEucnVsZSgpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb25Db29r
aWUgY29va2llID0gSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsTWF0Y2hSdWxlKGRvY3Vt
ZW50KCksIHJ1bGUsIHRoaXMpOwotICAgICAgICBpZiAocnVsZU1hdGNoZXMocnVsZURhdGEsIG9w
dGlvbnMuc2NvcGUpKSB7CisgICAgICAgIGlmIChydWxlTWF0Y2hlcyhydWxlRGF0YSwgbWF0Y2hS
ZXF1ZXN0LnNjb3BlKSkgewogICAgICAgICAgICAgLy8gSWYgdGhlIHJ1bGUgaGFzIG5vIHByb3Bl
cnRpZXMgdG8gYXBwbHksIHRoZW4gaWdub3JlIGl0IGluIHRoZSBub24tZGVidWcgbW9kZS4KICAg
ICAgICAgICAgIGNvbnN0IFN0eWxlUHJvcGVydHlTZXQqIHByb3BlcnRpZXMgPSBydWxlLT5wcm9w
ZXJ0aWVzKCk7Ci0gICAgICAgICAgICBpZiAoIXByb3BlcnRpZXMgfHwgKHByb3BlcnRpZXMtPmlz
RW1wdHkoKSAmJiAhb3B0aW9ucy5pbmNsdWRlRW1wdHlSdWxlcykpIHsKKyAgICAgICAgICAgIGlm
ICghcHJvcGVydGllcyB8fCAocHJvcGVydGllcy0+aXNFbXB0eSgpICYmICFtYXRjaFJlcXVlc3Qu
aW5jbHVkZUVtcHR5UnVsZXMpKSB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRNYXRjaFJ1bGUoY29va2llLCBmYWxzZSk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9CkBAIC0xMDYxLDcgKzEwNjEsNyBAQCBib29sIFN0eWxlUmVz
b2x2ZXI6OnN0eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNoZXNSdWxlU2V0KFJ1bGVTZXQqIHJ1bGVT
ZXQpCiAKICAgICBpbnQgZmlyc3RSdWxlSW5kZXggPSAtMSwgbGFzdFJ1bGVJbmRleCA9IC0xOwog
ICAgIG1fc2VsZWN0b3JDaGVja2VyLnNldE1vZGUoU2VsZWN0b3JDaGVja2VyOjpTaGFyaW5nUnVs
ZXMpOwotICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKHJ1bGVTZXQsIGZpcnN0UnVsZUluZGV4LCBs
YXN0UnVsZUluZGV4LCBmYWxzZSk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVsZXMoTWF0Y2hSZXF1
ZXN0KHJ1bGVTZXQpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgbV9zZWxl
Y3RvckNoZWNrZXIuc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6OlJlc29sdmluZ1N0eWxlKTsKICAg
ICBpZiAobV9tYXRjaGVkUnVsZXMuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaAppbmRleCAzNzUwYTVkZjU5ZTU2YzgzN2RmMmJiNGEz
ZDMwYmQxYmVhODcwMmYwLi5kYmViNmVhYTc1NDRmMTEzM2JhYTFjZWE2YmM1NWQzYTNjZWIxODdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKQEAgLTM0MiwxMCArMzQyLDE0IEBAIHBy
aXZhdGU6CiAgICAgICAgIGJvb2wgaXNDYWNoZWFibGU7CiAgICAgfTsKIAotICAgIHN0cnVjdCBN
YXRjaE9wdGlvbnMgewotICAgICAgICBNYXRjaE9wdGlvbnMoYm9vbCBpbmNsdWRlRW1wdHlSdWxl
cywgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGUgPSAwKSA6IHNjb3BlKHNjb3BlKSwgaW5jbHVk
ZUVtcHR5UnVsZXMoaW5jbHVkZUVtcHR5UnVsZXMpIHsgfQorICAgIHN0cnVjdCBNYXRjaFJlcXVl
c3QgeworICAgICAgICBNYXRjaFJlcXVlc3QoUnVsZVNldCogcnVsZVNldCwgYm9vbCBpbmNsdWRl
RW1wdHlSdWxlcyA9IGZhbHNlLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApCisgICAg
ICAgICAgICA6IHJ1bGVTZXQocnVsZVNldCkKKyAgICAgICAgICAgICwgaW5jbHVkZUVtcHR5UnVs
ZXMoaW5jbHVkZUVtcHR5UnVsZXMpCisgICAgICAgICAgICAsIHNjb3BlKHNjb3BlKSB7IH0KKyAg
ICAgICAgY29uc3QgUnVsZVNldCogcnVsZVNldDsKKyAgICAgICAgY29uc3QgYm9vbCBpbmNsdWRl
RW1wdHlSdWxlczsKICAgICAgICAgY29uc3QgQ29udGFpbmVyTm9kZSogc2NvcGU7Ci0gICAgICAg
IGJvb2wgaW5jbHVkZUVtcHR5UnVsZXM7CiAgICAgfTsKIAogICAgIHN0YXRpYyB2b2lkIGFkZE1h
dGNoZWRQcm9wZXJ0aWVzKE1hdGNoUmVzdWx0JiwgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJv
cGVydGllcywgU3R5bGVSdWxlKiA9IDAsIHVuc2lnbmVkIGxpbmtNYXRjaFR5cGUgPSBTZWxlY3Rv
ckNoZWNrZXI6Ok1hdGNoQWxsLCBib29sIGluUmVnaW9uUnVsZSA9IGZhbHNlKTsKQEAgLTM1OCw5
ICszNjIsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIG1hdGNoVXNlclJ1bGVzKE1hdGNoUmVzdWx0
JiwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgdm9pZCBtYXRjaFNjb3BlZEF1dGhvclJ1
bGVzKE1hdGNoUmVzdWx0JiwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7CiAgICAgdm9pZCBtYXRj
aEhvc3RSdWxlcyhNYXRjaFJlc3VsdCYsIGJvb2wgaW5jbHVkZUVtcHR5UnVsZXMpOwotICAgIHZv
aWQgY29sbGVjdE1hdGNoaW5nUnVsZXMoUnVsZVNldCosIGludCYgZmlyc3RSdWxlSW5kZXgsIGlu
dCYgbGFzdFJ1bGVJbmRleCwgY29uc3QgTWF0Y2hPcHRpb25zJik7Ci0gICAgdm9pZCBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihSdWxlU2V0KiwgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50
JiBsYXN0UnVsZUluZGV4LCBjb25zdCBNYXRjaE9wdGlvbnMmKTsKLSAgICB2b2lkIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiwgaW50JiBmaXJzdFJ1
bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4LCBjb25zdCBNYXRjaE9wdGlvbnMmKTsKKworICAg
IHZvaWQgY29sbGVjdE1hdGNoaW5nUnVsZXMoY29uc3QgTWF0Y2hSZXF1ZXN0JiwgaW50JiBmaXJz
dFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4KTsKKyAgICB2b2lkIGNvbGxlY3RNYXRjaGlu
Z1J1bGVzRm9yUmVnaW9uKGNvbnN0IE1hdGNoUmVxdWVzdCYsIGludCYgZmlyc3RSdWxlSW5kZXgs
IGludCYgbGFzdFJ1bGVJbmRleCk7CisgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiosIGNvbnN0IE1hdGNoUmVxdWVzdCYsIGludCYgZmly
c3RSdWxlSW5kZXgsIGludCYgbGFzdFJ1bGVJbmRleCk7CisKICAgICBib29sIGZhc3RSZWplY3RT
ZWxlY3Rvcihjb25zdCBSdWxlRGF0YSYpIGNvbnN0OwogICAgIHZvaWQgc29ydE1hdGNoZWRSdWxl
cygpOwogICAgIHZvaWQgc29ydEFuZFRyYW5zZmVyTWF0Y2hlZFJ1bGVzKE1hdGNoUmVzdWx0Jik7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182887</attachid>
            <date>2013-01-15 17:47:07 -0800</date>
            <delta_ts>2013-01-15 18:07:30 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-106879-20130116104408.patch</filename>
            <type>text/plain</type>
            <size>14028</size>
            <attacher name="Hayato Ito">hayato</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NzA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjMyNDhiMTJmMDY3Yzc2
ZTE1NzgzMjYzYTgyYjg3ZWY4MmQyZmQ3Yi4uMjYyZTdlZDlmMDRkZTFmZDllODliYzk1MWZmMjkx
YTJlNjA1NzMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEzLTAxLTE1ICBIYXlh
dG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9yZz4KKworICAgICAgICBHcm91cCBhbGwgcmVxdWVz
dCBwYXJhbWV0ZXJzIHdoaWNoIGFyZSB1c2VkIHRvIG1hdGNoIENTUyBSdWxlcyBpbnRvIGEgcGFy
YW1ldGVyIG9iamVjdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwNjg3OQorCisgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkgR2xhemtvdi4KKwor
ICAgICAgICBJbnRyb2R1Y2VzIGEgTWF0Y2hSZXF1ZXN0IHdoaWNoIGdyb3VwcyBhbGwgcmVxdWVz
dCBwYXJhbWV0ZXJzIHRvIG1hdGNoIENTUyBydWxlcy4KKworICAgICAgICBGYWN0b3JpbmcsIG5v
IGNoYW5nZSBpbiBiZWhhdmlvci4KKworICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9y
UmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6Om1hdGNoU2NvcGVkQXV0
aG9yUnVsZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0Y2hIb3N0UnVs
ZXMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSZXNvbHZlcjo6bWF0Y2hBdXRob3JSdWxlcyk6
CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFVzZXJSdWxlcyk6CisgICAg
ICAgIChXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjptYXRjaFVBUnVsZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6U3R5bGVSZXNvbHZlcjo6Y29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OnN0eWxlU2hhcmluZ0NhbmRpZGF0ZU1hdGNoZXNS
dWxlU2V0KToKKyAgICAgICAgKiBjc3MvU3R5bGVSZXNvbHZlci5oOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGVSZXNvbHZlcjo6TWF0Y2hSZXF1ZXN0OjpNYXRjaFJlcXVlc3QpOgorICAgICAgICAo
TWF0Y2hSZXF1ZXN0KToKKyAgICAgICAgKFN0eWxlUmVzb2x2ZXIpOgorCiAyMDEzLTAxLTE0ICBE
ZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBZZXQgYW5vdGhlciB1bnJl
dmlld2VkIGF0dGVtcHRlZCBRVCBidWlsZCBmaXgsIHRoaXMgdGltZSBiZWNhdXNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXggNTBhZDYxNmZkOGQ5OTk3NmQwODdiMzQyYWRi
ODg0MDJiYzM3ZWVjZC4uOWRlYTA4ODEwZDcyOWY1NDY0ZTcyNjA3NGEyNzlhYTVjY2FhMDNiMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcApAQCAtNjQyLDIwICs2NDIsMjAgQEAg
aW5saW5lIGJvb2wgTWF0Y2hpbmdVQVJ1bGVzU2NvcGU6OmlzTWF0Y2hpbmdVQVJ1bGVzKCkKIAog
Ym9vbCBNYXRjaGluZ1VBUnVsZXNTY29wZTo6bV9tYXRjaGluZ1VBUnVsZXMgPSBmYWxzZTsKIAot
dm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiBydWxlcywg
aW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4LCBjb25zdCBNYXRjaE9wdGlv
bnMmIG9wdGlvbnMpCit2b2lkIFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKGNv
bnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbnQm
IGxhc3RSdWxlSW5kZXgpCiB7Ci0gICAgQVNTRVJUKHJ1bGVzKTsKKyAgICBBU1NFUlQobWF0Y2hS
ZXF1ZXN0LnJ1bGVTZXQpOwogICAgIEFTU0VSVChtX2VsZW1lbnQpOwogCiAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBwc2V1ZG9JZCA9IG1fZWxlbWVudC0+c2hhZG93UHNldWRvSWQoKTsKICAgICBp
ZiAoIXBzZXVkb0lkLmlzRW1wdHkoKSkgewogICAgICAgICBBU1NFUlQobV9zdHlsZWRFbGVtZW50
KTsKLSAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5zaGFkb3dQc2V1
ZG9FbGVtZW50UnVsZXMocHNldWRvSWQuaW1wbCgpKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxl
SW5kZXgsIG9wdGlvbnMpOworICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0
Y2hSZXF1ZXN0LnJ1bGVTZXQtPnNoYWRvd1BzZXVkb0VsZW1lbnRSdWxlcyhwc2V1ZG9JZC5pbXBs
KCkpLCBtYXRjaFJlcXVlc3QsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKICAgICB9
CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCiAgICAgaWYgKG1fZWxlbWVudC0+d2ViVlRUTm9k
ZVR5cGUoKSkKLSAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5jdWVQ
c2V1ZG9SdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0aW9ucyk7Cisg
ICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+
Y3VlUHNldWRvUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJ
bmRleCk7CiAjZW5kaWYKICAgICAvLyBDaGVjayB3aGV0aGVyIG90aGVyIHR5cGVzIG9mIHJ1bGVz
IGFyZSBhcHBsaWNhYmxlIGluIHRoZSBjdXJyZW50IHRyZWUgc2NvcGUuIENyaXRlcmlhIGZvciB0
aGlzOgogICAgIC8vIGEpIGl0J3MgYSBVQSBydWxlCkBAIC02NjQsMzggKzY2NCwzOCBAQCB2b2lk
IFN0eWxlUmVzb2x2ZXI6OmNvbGxlY3RNYXRjaGluZ1J1bGVzKFJ1bGVTZXQqIHJ1bGVzLCBpbnQm
IGZpcnN0UnVsZUluZGV4LCBpbgogICAgIFRyZWVTY29wZSogdHJlZVNjb3BlID0gbV9lbGVtZW50
LT50cmVlU2NvcGUoKTsKICAgICBpZiAoIU1hdGNoaW5nVUFSdWxlc1Njb3BlOjppc01hdGNoaW5n
VUFSdWxlcygpCiAgICAgICAgICYmICF0cmVlU2NvcGUtPmFwcGx5QXV0aG9yU3R5bGVzKCkKLSAg
ICAgICAgJiYgKCFvcHRpb25zLnNjb3BlIHx8IG9wdGlvbnMuc2NvcGUtPnRyZWVTY29wZSgpICE9
IHRyZWVTY29wZSkpCisgICAgICAgICYmICghbWF0Y2hSZXF1ZXN0LnNjb3BlIHx8IG1hdGNoUmVx
dWVzdC5zY29wZS0+dHJlZVNjb3BlKCkgIT0gdHJlZVNjb3BlKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgLy8gV2UgbmVlZCB0byBjb2xsZWN0IHRoZSBydWxlcyBmb3IgaWQsIGNsYXNzLCB0YWcs
IGFuZCBldmVyeXRoaW5nIGVsc2UgaW50byBhIGJ1ZmZlciBhbmQKICAgICAvLyB0aGVuIHNvcnQg
dGhlIGJ1ZmZlci4KICAgICBpZiAobV9lbGVtZW50LT5oYXNJRCgpKQotICAgICAgICBjb2xsZWN0
TWF0Y2hpbmdSdWxlc0Zvckxpc3QocnVsZXMtPmlkUnVsZXMobV9lbGVtZW50LT5pZEZvclN0eWxl
UmVzb2x1dGlvbigpLmltcGwoKSksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRp
b25zKTsKKyAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5y
dWxlU2V0LT5pZFJ1bGVzKG1fZWxlbWVudC0+aWRGb3JTdHlsZVJlc29sdXRpb24oKS5pbXBsKCkp
LCBtYXRjaFJlcXVlc3QsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKICAgICBpZiAo
bV9zdHlsZWRFbGVtZW50ICYmIG1fc3R5bGVkRWxlbWVudC0+aGFzQ2xhc3MoKSkgewogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fc3R5bGVkRWxlbWVudC0+Y2xhc3NOYW1lcygpLnNp
emUoKTsgKytpKQotICAgICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVz
LT5jbGFzc1J1bGVzKG1fc3R5bGVkRWxlbWVudC0+Y2xhc3NOYW1lcygpW2ldLmltcGwoKSksIGZp
cnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsKKyAgICAgICAgICAgIGNvbGxl
Y3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3QucnVsZVNldC0+Y2xhc3NSdWxlcyht
X3N0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKVtpXS5pbXBsKCkpLCBtYXRjaFJlcXVlc3QsIGZp
cnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKICAgICB9CiAKICAgICBpZiAobV9lbGVtZW50
LT5pc0xpbmsoKSkKLSAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KHJ1bGVzLT5s
aW5rUHNldWRvQ2xhc3NSdWxlcygpLCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCwgb3B0
aW9ucyk7CisgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yTGlzdChtYXRjaFJlcXVlc3Qu
cnVsZVNldC0+bGlua1BzZXVkb0NsYXNzUnVsZXMoKSwgbWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJ
bmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgaWYgKG1fc2VsZWN0b3JDaGVja2VyLm1hdGNoZXNG
b2N1c1BzZXVkb0NsYXNzKG1fZWxlbWVudCkpCi0gICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVz
Rm9yTGlzdChydWxlcy0+Zm9jdXNQc2V1ZG9DbGFzc1J1bGVzKCksIGZpcnN0UnVsZUluZGV4LCBs
YXN0UnVsZUluZGV4LCBvcHRpb25zKTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3Qo
cnVsZXMtPnRhZ1J1bGVzKG1fZWxlbWVudC0+bG9jYWxOYW1lKCkuaW1wbCgpKSwgZmlyc3RSdWxl
SW5kZXgsIGxhc3RSdWxlSW5kZXgsIG9wdGlvbnMpOwotICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVz
Rm9yTGlzdChydWxlcy0+dW5pdmVyc2FsUnVsZXMoKSwgZmlyc3RSdWxlSW5kZXgsIGxhc3RSdWxl
SW5kZXgsIG9wdGlvbnMpOworICAgICAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QobWF0
Y2hSZXF1ZXN0LnJ1bGVTZXQtPmZvY3VzUHNldWRvQ2xhc3NSdWxlcygpLCBtYXRjaFJlcXVlc3Qs
IGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxl
c0Zvckxpc3QobWF0Y2hSZXF1ZXN0LnJ1bGVTZXQtPnRhZ1J1bGVzKG1fZWxlbWVudC0+bG9jYWxO
YW1lKCkuaW1wbCgpKSwgbWF0Y2hSZXF1ZXN0LCBmaXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRl
eCk7CisgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KG1hdGNoUmVxdWVzdC5ydWxlU2V0
LT51bml2ZXJzYWxSdWxlcygpLCBtYXRjaFJlcXVlc3QsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVs
ZUluZGV4KTsKIH0KIAotdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zv
clJlZ2lvbihSdWxlU2V0KiBydWxlcywgaW50JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVs
ZUluZGV4LCBjb25zdCBNYXRjaE9wdGlvbnMmIG9wdGlvbnMpCit2b2lkIFN0eWxlUmVzb2x2ZXI6
OmNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKGNvbnN0IE1hdGNoUmVxdWVzdCYgbWF0Y2hS
ZXF1ZXN0LCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgpCiB7CiAgICAg
aWYgKCFtX3JlZ2lvbkZvclN0eWxpbmcpCiAgICAgICAgIHJldHVybjsKIAotICAgIHVuc2lnbmVk
IHNpemUgPSBydWxlcy0+bV9yZWdpb25TZWxlY3RvcnNBbmRSdWxlU2V0cy5zaXplKCk7CisgICAg
dW5zaWduZWQgc2l6ZSA9IG1hdGNoUmVxdWVzdC5ydWxlU2V0LT5tX3JlZ2lvblNlbGVjdG9yc0Fu
ZFJ1bGVTZXRzLnNpemUoKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgc2l6ZTsgKytp
KSB7Ci0gICAgICAgIENTU1NlbGVjdG9yKiByZWdpb25TZWxlY3RvciA9IHJ1bGVzLT5tX3JlZ2lv
blNlbGVjdG9yc0FuZFJ1bGVTZXRzLmF0KGkpLnNlbGVjdG9yOworICAgICAgICBDU1NTZWxlY3Rv
ciogcmVnaW9uU2VsZWN0b3IgPSBtYXRjaFJlcXVlc3QucnVsZVNldC0+bV9yZWdpb25TZWxlY3Rv
cnNBbmRSdWxlU2V0cy5hdChpKS5zZWxlY3RvcjsKICAgICAgICAgaWYgKGNoZWNrUmVnaW9uU2Vs
ZWN0b3IocmVnaW9uU2VsZWN0b3IsIHN0YXRpY19jYXN0PEVsZW1lbnQqPihtX3JlZ2lvbkZvclN0
eWxpbmctPm5vZGUoKSkpKSB7Ci0gICAgICAgICAgICBSdWxlU2V0KiByZWdpb25SdWxlcyA9IHJ1
bGVzLT5tX3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzLmF0KGkpLnJ1bGVTZXQuZ2V0KCk7Cisg
ICAgICAgICAgICBSdWxlU2V0KiByZWdpb25SdWxlcyA9IG1hdGNoUmVxdWVzdC5ydWxlU2V0LT5t
X3JlZ2lvblNlbGVjdG9yc0FuZFJ1bGVTZXRzLmF0KGkpLnJ1bGVTZXQuZ2V0KCk7CiAgICAgICAg
ICAgICBBU1NFUlQocmVnaW9uUnVsZXMpOwotICAgICAgICAgICAgY29sbGVjdE1hdGNoaW5nUnVs
ZXMocmVnaW9uUnVsZXMsIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4LCBvcHRpb25zKTsK
KyAgICAgICAgICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKE1hdGNoUmVxdWVzdChyZWdpb25SdWxl
cywgbWF0Y2hSZXF1ZXN0LmluY2x1ZGVFbXB0eVJ1bGVzLCBtYXRjaFJlcXVlc3Quc2NvcGUpLCBm
aXJzdFJ1bGVJbmRleCwgbGFzdFJ1bGVJbmRleCk7CiAgICAgICAgIH0KICAgICB9CiB9CkBAIC03
NTMsOSArNzUzLDkgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjptYXRjaFNjb3BlZEF1dGhvclJ1bGVz
KE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVkZUVtcHQKICAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIE1hdGNoT3B0aW9ucyBv
cHRpb25zKGluY2x1ZGVFbXB0eVJ1bGVzLCBmcmFtZS5tX3Njb3BlKTsKLSAgICAgICAgICAgIGNv
bGxlY3RNYXRjaGluZ1J1bGVzKGZyYW1lLm1fcnVsZVNldCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1
dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOwotICAgICAg
ICAgICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JSZWdpb24oZnJhbWUubV9ydWxlU2V0LCByZXN1
bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSwg
b3B0aW9ucyk7CisgICAgICAgICAgICBNYXRjaFJlcXVlc3QgbWF0Y2hSZXF1ZXN0KGZyYW1lLm1f
cnVsZVNldCwgaW5jbHVkZUVtcHR5UnVsZXMsIGZyYW1lLm1fc2NvcGUpOworICAgICAgICAgICAg
Y29sbGVjdE1hdGNoaW5nUnVsZXMobWF0Y2hSZXF1ZXN0LCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0
aG9yUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0QXV0aG9yUnVsZSk7CisgICAgICAgICAgICBjb2xs
ZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihtYXRjaFJlcXVlc3QsIHJlc3VsdC5yYW5nZXMuZmly
c3RBdXRob3JSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlKTsKICAgICAgICAgICAg
IHNvcnRBbmRUcmFuc2Zlck1hdGNoZWRSdWxlcyhyZXN1bHQpOwogICAgICAgICB9CiAgICAgfQpA
QCAtNzg5LDkgKzc4OSw4IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hIb3N0UnVsZXMoTWF0
Y2hSZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcykKICAgICBpZiAobWF0Y2hl
ZFJ1bGVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgTWF0Y2hPcHRpb25zIG9w
dGlvbnMoaW5jbHVkZUVtcHR5UnVsZXMsIG1fZWxlbWVudCk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gbWF0Y2hlZFJ1bGVzLnNpemUoKTsgaSA+IDA7IC0taSkKLSAgICAgICAgY29sbGVjdE1hdGNo
aW5nUnVsZXMobWF0Y2hlZFJ1bGVzLmF0KGktMSksIHJlc3VsdC5yYW5nZXMuZmlyc3RBdXRob3JS
dWxlLCByZXN1bHQucmFuZ2VzLmxhc3RBdXRob3JSdWxlLCBvcHRpb25zKTsKKyAgICAgICAgY29s
bGVjdE1hdGNoaW5nUnVsZXMoTWF0Y2hSZXF1ZXN0KG1hdGNoZWRSdWxlcy5hdChpLTEpLCBpbmNs
dWRlRW1wdHlSdWxlcywgbV9lbGVtZW50KSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUs
IHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUpOwogICAgIHNvcnRBbmRUcmFuc2Zlck1hdGNo
ZWRSdWxlcyhyZXN1bHQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0ocmVzdWx0KTsKQEAgLTgw
OCw5ICs4MDcsOSBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6Om1hdGNoQXV0aG9yUnVsZXMoTWF0Y2hS
ZXN1bHQmIHJlc3VsdCwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcwogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBNYXRjaCBnbG9iYWwgYXV0aG9yIHJ1bGVzLgotICAgIE1hdGNoT3B0aW9ucyBvcHRp
b25zKGluY2x1ZGVFbXB0eVJ1bGVzKTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhtX2F1dGhv
clN0eWxlLmdldCgpLCByZXN1bHQucmFuZ2VzLmZpcnN0QXV0aG9yUnVsZSwgcmVzdWx0LnJhbmdl
cy5sYXN0QXV0aG9yUnVsZSwgb3B0aW9ucyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXNGb3JS
ZWdpb24obV9hdXRob3JTdHlsZS5nZXQoKSwgcmVzdWx0LnJhbmdlcy5maXJzdEF1dGhvclJ1bGUs
IHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUsIG9wdGlvbnMpOworICAgIE1hdGNoUmVxdWVz
dCBtYXRjaFJlcXVlc3QobV9hdXRob3JTdHlsZS5nZXQoKSwgaW5jbHVkZUVtcHR5UnVsZXMpOwor
ICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKG1hdGNoUmVxdWVzdCwgcmVzdWx0LnJhbmdlcy5maXJz
dEF1dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUpOworICAgIGNvbGxlY3RN
YXRjaGluZ1J1bGVzRm9yUmVnaW9uKG1hdGNoUmVxdWVzdCwgcmVzdWx0LnJhbmdlcy5maXJzdEF1
dGhvclJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdEF1dGhvclJ1bGUpOwogICAgIHNvcnRBbmRUcmFu
c2Zlck1hdGNoZWRSdWxlcyhyZXN1bHQpOwogCiAgICAgbWF0Y2hTY29wZWRBdXRob3JSdWxlcyhy
ZXN1bHQsIGluY2x1ZGVFbXB0eVJ1bGVzKTsKQEAgLTgyNCw4ICs4MjMsOSBAQCB2b2lkIFN0eWxl
UmVzb2x2ZXI6Om1hdGNoVXNlclJ1bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIGJvb2wgaW5jbHVk
ZUVtcHR5UnVsZXMpCiAgICAgbV9tYXRjaGVkUnVsZXMuY2xlYXIoKTsKIAogICAgIHJlc3VsdC5y
YW5nZXMubGFzdFVzZXJSdWxlID0gcmVzdWx0Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDE7
Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXMobV91c2VyU3R5bGUuZ2V0KCksIHJlc3VsdC5yYW5n
ZXMuZmlyc3RVc2VyUnVsZSwgcmVzdWx0LnJhbmdlcy5sYXN0VXNlclJ1bGUsIGluY2x1ZGVFbXB0
eVJ1bGVzKTsKLSAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlc0ZvclJlZ2lvbihtX3VzZXJTdHlsZS5n
ZXQoKSwgcmVzdWx0LnJhbmdlcy5maXJzdFVzZXJSdWxlLCByZXN1bHQucmFuZ2VzLmxhc3RVc2Vy
UnVsZSwgaW5jbHVkZUVtcHR5UnVsZXMpOworICAgIE1hdGNoUmVxdWVzdCBtYXRjaFJlcXVlc3Qo
bV91c2VyU3R5bGUuZ2V0KCksIGluY2x1ZGVFbXB0eVJ1bGVzKTsKKyAgICBjb2xsZWN0TWF0Y2hp
bmdSdWxlcyhtYXRjaFJlcXVlc3QsIHJlc3VsdC5yYW5nZXMuZmlyc3RVc2VyUnVsZSwgcmVzdWx0
LnJhbmdlcy5sYXN0VXNlclJ1bGUpOworICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9u
KG1hdGNoUmVxdWVzdCwgcmVzdWx0LnJhbmdlcy5maXJzdFVzZXJSdWxlLCByZXN1bHQucmFuZ2Vz
Lmxhc3RVc2VyUnVsZSk7CiAKICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0
KTsKIH0KQEAgLTgzNSwxMiArODM1LDEyIEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6bWF0Y2hVQVJ1
bGVzKE1hdGNoUmVzdWx0JiByZXN1bHQsIFJ1bGVTZXQqIHJ1bGVzKQogICAgIG1fbWF0Y2hlZFJ1
bGVzLmNsZWFyKCk7CiAgICAgCiAgICAgcmVzdWx0LnJhbmdlcy5sYXN0VUFSdWxlID0gcmVzdWx0
Lm1hdGNoZWRQcm9wZXJ0aWVzLnNpemUoKSAtIDE7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXMo
cnVsZXMsIHJlc3VsdC5yYW5nZXMuZmlyc3RVQVJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdFVBUnVs
ZSwgZmFsc2UpOworICAgIGNvbGxlY3RNYXRjaGluZ1J1bGVzKE1hdGNoUmVxdWVzdChydWxlcyks
IHJlc3VsdC5yYW5nZXMuZmlyc3RVQVJ1bGUsIHJlc3VsdC5yYW5nZXMubGFzdFVBUnVsZSk7CiAK
ICAgICBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMocmVzdWx0KTsKIH0KIAotdm9pZCBTdHls
ZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVE
YXRhPiogcnVsZXMsIGludCYgZmlyc3RSdWxlSW5kZXgsIGludCYgbGFzdFJ1bGVJbmRleCwgY29u
c3QgTWF0Y2hPcHRpb25zJiBvcHRpb25zKQordm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0
Y2hpbmdSdWxlc0Zvckxpc3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGNvbnN0IE1h
dGNoUmVxdWVzdCYgbWF0Y2hSZXF1ZXN0LCBpbnQmIGZpcnN0UnVsZUluZGV4LCBpbnQmIGxhc3RS
dWxlSW5kZXgpCiB7CiAgICAgaWYgKCFydWxlcykKICAgICAgICAgcmV0dXJuOwpAQCAtODU3LDEw
ICs4NTcsMTAgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjpjb2xsZWN0TWF0Y2hpbmdSdWxlc0Zvckxp
c3QoY29uc3QgVmVjdG9yPFJ1bGVEYXRhPiogcnVsZXMsIGkKIAogICAgICAgICBTdHlsZVJ1bGUq
IHJ1bGUgPSBydWxlRGF0YS5ydWxlKCk7CiAgICAgICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bkNvb2tpZSBjb29raWUgPSBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxNYXRjaFJ1bGUo
ZG9jdW1lbnQoKSwgcnVsZSwgdGhpcyk7Ci0gICAgICAgIGlmIChydWxlTWF0Y2hlcyhydWxlRGF0
YSwgb3B0aW9ucy5zY29wZSkpIHsKKyAgICAgICAgaWYgKHJ1bGVNYXRjaGVzKHJ1bGVEYXRhLCBt
YXRjaFJlcXVlc3Quc2NvcGUpKSB7CiAgICAgICAgICAgICAvLyBJZiB0aGUgcnVsZSBoYXMgbm8g
cHJvcGVydGllcyB0byBhcHBseSwgdGhlbiBpZ25vcmUgaXQgaW4gdGhlIG5vbi1kZWJ1ZyBtb2Rl
LgogICAgICAgICAgICAgY29uc3QgU3R5bGVQcm9wZXJ0eVNldCogcHJvcGVydGllcyA9IHJ1bGUt
PnByb3BlcnRpZXMoKTsKLSAgICAgICAgICAgIGlmICghcHJvcGVydGllcyB8fCAocHJvcGVydGll
cy0+aXNFbXB0eSgpICYmICFvcHRpb25zLmluY2x1ZGVFbXB0eVJ1bGVzKSkgeworICAgICAgICAg
ICAgaWYgKCFwcm9wZXJ0aWVzIHx8IChwcm9wZXJ0aWVzLT5pc0VtcHR5KCkgJiYgIW1hdGNoUmVx
dWVzdC5pbmNsdWRlRW1wdHlSdWxlcykpIHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZE1hdGNoUnVsZShjb29raWUsIGZhbHNlKTsKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKICAgICAgICAgICAgIH0KQEAgLTEwNjEsNyArMTA2MSw3IEBAIGJvb2wgU3R5
bGVSZXNvbHZlcjo6c3R5bGVTaGFyaW5nQ2FuZGlkYXRlTWF0Y2hlc1J1bGVTZXQoUnVsZVNldCog
cnVsZVNldCkKIAogICAgIGludCBmaXJzdFJ1bGVJbmRleCA9IC0xLCBsYXN0UnVsZUluZGV4ID0g
LTE7CiAgICAgbV9zZWxlY3RvckNoZWNrZXIuc2V0TW9kZShTZWxlY3RvckNoZWNrZXI6OlNoYXJp
bmdSdWxlcyk7Ci0gICAgY29sbGVjdE1hdGNoaW5nUnVsZXMocnVsZVNldCwgZmlyc3RSdWxlSW5k
ZXgsIGxhc3RSdWxlSW5kZXgsIGZhbHNlKTsKKyAgICBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhNYXRj
aFJlcXVlc3QocnVsZVNldCksIGZpcnN0UnVsZUluZGV4LCBsYXN0UnVsZUluZGV4KTsKICAgICBt
X3NlbGVjdG9yQ2hlY2tlci5zZXRNb2RlKFNlbGVjdG9yQ2hlY2tlcjo6UmVzb2x2aW5nU3R5bGUp
OwogICAgIGlmIChtX21hdGNoZWRSdWxlcy5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5oCmluZGV4IDM3NTBhNWRmNTllNTZjODM3ZGYy
YmI0YTNkMzBiZDFiZWE4NzAyZjAuLmRiZWI2ZWFhNzU0NGYxMTMzYmFhMWNlYTZiYzU1ZDNhM2Nl
YjE4N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuaApAQCAtMzQyLDEwICszNDIsMTQg
QEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBpc0NhY2hlYWJsZTsKICAgICB9OwogCi0gICAgc3Ry
dWN0IE1hdGNoT3B0aW9ucyB7Ci0gICAgICAgIE1hdGNoT3B0aW9ucyhib29sIGluY2x1ZGVFbXB0
eVJ1bGVzLCBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZSA9IDApIDogc2NvcGUoc2NvcGUpLCBp
bmNsdWRlRW1wdHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykgeyB9CisgICAgc3RydWN0IE1hdGNo
UmVxdWVzdCB7CisgICAgICAgIE1hdGNoUmVxdWVzdChSdWxlU2V0KiBydWxlU2V0LCBib29sIGlu
Y2x1ZGVFbXB0eVJ1bGVzID0gZmFsc2UsIGNvbnN0IENvbnRhaW5lck5vZGUqIHNjb3BlID0gMCkK
KyAgICAgICAgICAgIDogcnVsZVNldChydWxlU2V0KQorICAgICAgICAgICAgLCBpbmNsdWRlRW1w
dHlSdWxlcyhpbmNsdWRlRW1wdHlSdWxlcykKKyAgICAgICAgICAgICwgc2NvcGUoc2NvcGUpIHsg
fQorICAgICAgICBjb25zdCBSdWxlU2V0KiBydWxlU2V0OworICAgICAgICBjb25zdCBib29sIGlu
Y2x1ZGVFbXB0eVJ1bGVzOwogICAgICAgICBjb25zdCBDb250YWluZXJOb2RlKiBzY29wZTsKLSAg
ICAgICAgYm9vbCBpbmNsdWRlRW1wdHlSdWxlczsKICAgICB9OwogCiAgICAgc3RhdGljIHZvaWQg
YWRkTWF0Y2hlZFByb3BlcnRpZXMoTWF0Y2hSZXN1bHQmLCBjb25zdCBTdHlsZVByb3BlcnR5U2V0
KiBwcm9wZXJ0aWVzLCBTdHlsZVJ1bGUqID0gMCwgdW5zaWduZWQgbGlua01hdGNoVHlwZSA9IFNl
bGVjdG9yQ2hlY2tlcjo6TWF0Y2hBbGwsIGJvb2wgaW5SZWdpb25SdWxlID0gZmFsc2UpOwpAQCAt
MzU4LDkgKzM2MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgbWF0Y2hVc2VyUnVsZXMoTWF0Y2hS
ZXN1bHQmLCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAgICB2b2lkIG1hdGNoU2NvcGVkQXV0
aG9yUnVsZXMoTWF0Y2hSZXN1bHQmLCBib29sIGluY2x1ZGVFbXB0eVJ1bGVzKTsKICAgICB2b2lk
IG1hdGNoSG9zdFJ1bGVzKE1hdGNoUmVzdWx0JiwgYm9vbCBpbmNsdWRlRW1wdHlSdWxlcyk7Ci0g
ICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhSdWxlU2V0KiwgaW50JiBmaXJzdFJ1bGVJbmRl
eCwgaW50JiBsYXN0UnVsZUluZGV4LCBjb25zdCBNYXRjaE9wdGlvbnMmKTsKLSAgICB2b2lkIGNv
bGxlY3RNYXRjaGluZ1J1bGVzRm9yUmVnaW9uKFJ1bGVTZXQqLCBpbnQmIGZpcnN0UnVsZUluZGV4
LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0IE1hdGNoT3B0aW9ucyYpOwotICAgIHZvaWQgY29s
bGVjdE1hdGNoaW5nUnVsZXNGb3JMaXN0KGNvbnN0IFZlY3RvcjxSdWxlRGF0YT4qLCBpbnQmIGZp
cnN0UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgsIGNvbnN0IE1hdGNoT3B0aW9ucyYpOwor
CisgICAgdm9pZCBjb2xsZWN0TWF0Y2hpbmdSdWxlcyhjb25zdCBNYXRjaFJlcXVlc3QmLCBpbnQm
IGZpcnN0UnVsZUluZGV4LCBpbnQmIGxhc3RSdWxlSW5kZXgpOworICAgIHZvaWQgY29sbGVjdE1h
dGNoaW5nUnVsZXNGb3JSZWdpb24oY29uc3QgTWF0Y2hSZXF1ZXN0JiwgaW50JiBmaXJzdFJ1bGVJ
bmRleCwgaW50JiBsYXN0UnVsZUluZGV4KTsKKyAgICB2b2lkIGNvbGxlY3RNYXRjaGluZ1J1bGVz
Rm9yTGlzdChjb25zdCBWZWN0b3I8UnVsZURhdGE+KiwgY29uc3QgTWF0Y2hSZXF1ZXN0JiwgaW50
JiBmaXJzdFJ1bGVJbmRleCwgaW50JiBsYXN0UnVsZUluZGV4KTsKKwogICAgIGJvb2wgZmFzdFJl
amVjdFNlbGVjdG9yKGNvbnN0IFJ1bGVEYXRhJikgY29uc3Q7CiAgICAgdm9pZCBzb3J0TWF0Y2hl
ZFJ1bGVzKCk7CiAgICAgdm9pZCBzb3J0QW5kVHJhbnNmZXJNYXRjaGVkUnVsZXMoTWF0Y2hSZXN1
bHQmKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>