<?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>86528</bug_id>
          
          <creation_ts>2012-05-15 14:25:55 -0700</creation_ts>
          <short_desc>implement new negative flexing algorithm</short_desc>
          <delta_ts>2012-05-25 19:07:44 -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>Layout and Rendering</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>62048</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>624563</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-15 14:25:55 -0700</bug_when>
    <thetext>Correct formula for the desired result:

	space-shortage = sum(flex-basis) - available-space
	shrink-factor = space-shortage / sum(flex-basis * negative-flex))
	main-size = flex-basis * (1 - shrink-factor * negative-flex))


See http://lists.w3.org/Archives/Public/www-style/2012May/0291.html for a test case and some rationale.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634301</commentid>
    <comment_count>1</comment_count>
      <attachid>144151</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-25 14:48:15 -0700</bug_when>
    <thetext>Created attachment 144151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634302</commentid>
    <comment_count>2</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-25 14:48:44 -0700</bug_when>
    <thetext>The spec reflects this change as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634307</commentid>
    <comment_count>3</comment_count>
      <attachid>144151</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-25 14:51:51 -0700</bug_when>
    <thetext>Comment on attachment 144151
Patch

Actually, I can overflow and get into an infinite loop.  Let me fix that first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634375</commentid>
    <comment_count>4</comment_count>
      <attachid>144161</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-25 15:53:58 -0700</bug_when>
    <thetext>Created attachment 144161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634396</commentid>
    <comment_count>5</comment_count>
      <attachid>144161</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-05-25 16:03:14 -0700</bug_when>
    <thetext>Comment on attachment 144161
Patch

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

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:876
&gt; +            if (availableFreeSpace &gt; 0 &amp;&amp; totalPositiveFlexibility &gt; 0 &amp;&amp; flexSign == PositiveFlexibility &amp;&amp; isfinite(totalPositiveFlexibility))
&gt;                  childSize += lroundf(availableFreeSpace * child-&gt;style()-&gt;positiveFlex() / totalPositiveFlexibility);
&gt; -            else if (availableFreeSpace &lt; 0 &amp;&amp; totalNegativeFlexibility &gt; 0  &amp;&amp; flexSign == NegativeFlexibility)
&gt; -                childSize += lroundf(availableFreeSpace * child-&gt;style()-&gt;negativeFlex() / totalNegativeFlexibility);
&gt; +            else if (availableFreeSpace &lt; 0 &amp;&amp; totalWeightedNegativeFlexibility &gt; 0 &amp;&amp; flexSign == NegativeFlexibility &amp;&amp; isfinite(totalWeightedNegativeFlexibility))

Might want to mention this isfinite check in the ChangeLog description.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634399</commentid>
    <comment_count>6</comment_count>
      <attachid>144164</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-25 16:05:29 -0700</bug_when>
    <thetext>Created attachment 144164
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634528</commentid>
    <comment_count>7</comment_count>
      <attachid>144164</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-25 19:07:34 -0700</bug_when>
    <thetext>Comment on attachment 144164
Patch for landing

Clearing flags on attachment: 144164

Committed r118600: &lt;http://trac.webkit.org/changeset/118600&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>634529</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-25 19:07:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144151</attachid>
            <date>2012-05-25 14:48:15 -0700</date>
            <delta_ts>2012-05-25 15:53:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86528-20120525144817.patch</filename>
            <type>text/plain</type>
            <size>13350</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiODcyY2Y4NDQyMDU2
NGM0MzU1YmI5NWZhNDI5YTRjMWJiODE0Yi4uN2RmNjE2MzIxY2NiOTUxMzA4YmIwNTkzMjNmOTg5
ZWRiYTRhYmFmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA1LTI1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgaW1wbGVtZW50IG5ldyBuZWdh
dGl2ZSBmbGV4aW5nIGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY1MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSYXRoZXIgdGhhbiBqdXN0IHNjYWxlIGJ5IHRoZSBuZWdhdGl2ZSBmbGV4
aWJpbGl0eSwgd2UgYWxzbyB0YWtlIHRoZQorICAgICAgICBmbGV4LWJhc2lzIChwcmVmZXJyZWQg
c2l6ZSkgaW50byBjb25zaWRlcmF0aW9uLiAgVGhhdCBtZWFucyBpdGVtcyB3aXRoCisgICAgICAg
IGEgbGFyZ2VyIHByZWZlcnJlZCBzaXplIHdpbGwgc2hyaW5rIGZhc3Rlci4KKworICAgICAgICBU
ZXN0OiBjc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbCAobmV3IHRlc3QgY2FzZXMgYWRk
ZWQpCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4TGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6ZnJlZXplVmlvbGF0aW9ucyk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxlTGVuZ3Rocyk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTItMDUtMjUg
IEtlbiBCdWNoYW5hbiAgPGtlbnJiQGNocm9taXVtLm9yZz4KIAogICAgICAgICBMYXlvdXQgcm9v
dCBub3QgZ2V0dGluZyBjbGVhcmVkIGZvciBhbm9ueW1vdXMgcmVuZGVyZXJzIGdldGluZyBkZXN0
cm95ZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3Bw
CmluZGV4IDJmZWFiNGY3NWMzNTM5N2MyZThhOGU1OWE2NTk3MzgzZWQxZWI2YTkuLjdkOTgyMDdl
NTRjYWIwNWI3N2QzZTI0ZWY1NWYzMDA2OTczZTg5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtNjI0LDE3ICs2MjQsMTcgQEAgdm9p
ZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKEZsZXhPcmRlckl0ZXJhdG9yJiBp
dGVyYXRvciwgV1RGOjpWZWN0b3IKICAgICBPcmRlcmVkRmxleEl0ZW1MaXN0IG9yZGVyZWRDaGls
ZHJlbjsKICAgICBMYXlvdXRVbml0IHByZWZlcnJlZE1haW5BeGlzRXh0ZW50OwogICAgIGZsb2F0
IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eTsKLSAgICBmbG9hdCB0b3RhbE5lZ2F0aXZlRmxleGli
aWxpdHk7CisgICAgZmxvYXQgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHk7CiAgICAg
TGF5b3V0VW5pdCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQ7CiAKICAgICBMYXlvdXRVbml0
IGNyb3NzQXhpc09mZnNldCA9IGZsb3dBd2FyZUJvcmRlckJlZm9yZSgpICsgZmxvd0F3YXJlUGFk
ZGluZ0JlZm9yZSgpOwotICAgIHdoaWxlIChjb21wdXRlTmV4dEZsZXhMaW5lKGl0ZXJhdG9yLCBv
cmRlcmVkQ2hpbGRyZW4sIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgbWluTWF4QXBwbGllZE1haW5BeGlz
RXh0ZW50KSkgeworICAgIHdoaWxlIChjb21wdXRlTmV4dEZsZXhMaW5lKGl0ZXJhdG9yLCBvcmRl
cmVkQ2hpbGRyZW4sIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCB0b3RhbFBvc2l0aXZlRmxleGli
aWxpdHksIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBtaW5NYXhBcHBsaWVkTWFp
bkF4aXNFeHRlbnQpKSB7CiAgICAgICAgIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlID0g
Y29tcHV0ZUF2YWlsYWJsZUZyZWVTcGFjZShwcmVmZXJyZWRNYWluQXhpc0V4dGVudCk7CiAgICAg
ICAgIEZsZXhTaWduIGZsZXhTaWduID0gKG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCA8IHBy
ZWZlcnJlZE1haW5BeGlzRXh0ZW50ICsgYXZhaWxhYmxlRnJlZVNwYWNlKSA/IFBvc2l0aXZlRmxl
eGliaWxpdHkgOiBOZWdhdGl2ZUZsZXhpYmlsaXR5OwogICAgICAgICBJbmZsZXhpYmxlRmxleEl0
ZW1TaXplIGluZmxleGlibGVJdGVtczsKICAgICAgICAgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4g
Y2hpbGRTaXplczsKLSAgICAgICAgd2hpbGUgKCFyZXNvbHZlRmxleGlibGVMZW5ndGhzKGZsZXhT
aWduLCBvcmRlcmVkQ2hpbGRyZW4sIGF2YWlsYWJsZUZyZWVTcGFjZSwgdG90YWxQb3NpdGl2ZUZs
ZXhpYmlsaXR5LCB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIGluZmxleGlibGVJdGVtcywgY2hp
bGRTaXplcykpIHsKLSAgICAgICAgICAgIEFTU0VSVCh0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkg
Pj0gMCAmJiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHkgPj0gMCk7CisgICAgICAgIHdoaWxlICgh
cmVzb2x2ZUZsZXhpYmxlTGVuZ3RocyhmbGV4U2lnbiwgb3JkZXJlZENoaWxkcmVuLCBhdmFpbGFi
bGVGcmVlU3BhY2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxXZWlnaHRlZE5lZ2F0
aXZlRmxleGliaWxpdHksIGluZmxleGlibGVJdGVtcywgY2hpbGRTaXplcykpIHsKKyAgICAgICAg
ICAgIEFTU0VSVCh0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgPj0gMCAmJiB0b3RhbFdlaWdodGVk
TmVnYXRpdmVGbGV4aWJpbGl0eSA+PSAwKTsKICAgICAgICAgICAgIEFTU0VSVChpbmZsZXhpYmxl
SXRlbXMuc2l6ZSgpID4gMCk7CiAgICAgICAgIH0KIApAQCAtODAwLDExICs4MDAsMTEgQEAgTGF5
b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJl
bmRlckJveCogY2hpbGQsIExheW8KICAgICByZXR1cm4gY2hpbGRTaXplOwogfQogCi1ib29sIFJl
bmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTmV4dEZsZXhMaW5lKEZsZXhPcmRlckl0ZXJhdG9yJiBp
dGVyYXRvciwgT3JkZXJlZEZsZXhJdGVtTGlzdCYgb3JkZXJlZENoaWxkcmVuLCBMYXlvdXRVbml0
JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0
eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgTGF5b3V0VW5pdCYgbWluTWF4QXBw
bGllZE1haW5BeGlzRXh0ZW50KQorYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU5leHRG
bGV4TGluZShGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIE9yZGVyZWRGbGV4SXRlbUxpc3Qm
IG9yZGVyZWRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIGZs
b2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbFdlaWdodGVkTmVnYXRp
dmVGbGV4aWJpbGl0eSwgTGF5b3V0VW5pdCYgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50KQog
ewogICAgIG9yZGVyZWRDaGlsZHJlbi5jbGVhcigpOwogICAgIHByZWZlcnJlZE1haW5BeGlzRXh0
ZW50ID0gMDsKLSAgICB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgPSB0b3RhbE5lZ2F0aXZlRmxl
eGliaWxpdHkgPSAwOworICAgIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSA9IHRvdGFsV2VpZ2h0
ZWROZWdhdGl2ZUZsZXhpYmlsaXR5ID0gMDsKICAgICBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRl
bnQgPSAwOwogCiAgICAgaWYgKCFpdGVyYXRvci5jdXJyZW50Q2hpbGQoKSkKQEAgLTgyOCw3ICs4
MjgsNyBAQCBib29sIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTmV4dEZsZXhMaW5lKEZsZXhP
cmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgT3JkZXJlZAogICAgICAgICBvcmRlcmVkQ2hpbGRyZW4u
YXBwZW5kKGNoaWxkKTsKICAgICAgICAgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQgKz0gY2hpbGRN
YWluQXhpc01hcmdpbkJveEV4dGVudDsKICAgICAgICAgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5
ICs9IGNoaWxkLT5zdHlsZSgpLT5wb3NpdGl2ZUZsZXgoKTsKLSAgICAgICAgdG90YWxOZWdhdGl2
ZUZsZXhpYmlsaXR5ICs9IGNoaWxkLT5zdHlsZSgpLT5uZWdhdGl2ZUZsZXgoKTsKKyAgICAgICAg
dG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHkgKz0gY2hpbGQtPnN0eWxlKCktPm5lZ2F0
aXZlRmxleCgpICogY2hpbGRNYWluQXhpc0V4dGVudDsKIAogICAgICAgICBMYXlvdXRVbml0IGNo
aWxkTWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50ID0gYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5k
TWF4KGNoaWxkLCBjaGlsZE1haW5BeGlzRXh0ZW50LCBmbGV4Ym94QXZhaWxhYmxlQ29udGVudEV4
dGVudCk7CiAgICAgICAgIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCArPSBjaGlsZE1pbk1h
eEFwcGxpZWRNYWluQXhpc0V4dGVudCAtIGNoaWxkTWFpbkF4aXNFeHRlbnQgKyBjaGlsZE1haW5B
eGlzTWFyZ2luQm94RXh0ZW50OwpAQCAtODM2LDIwICs4MzYsMjEgQEAgYm9vbCBSZW5kZXJGbGV4
aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4TGluZShGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3Is
IE9yZGVyZWQKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6
ZnJlZXplVmlvbGF0aW9ucyhjb25zdCBXVEY6OlZlY3RvcjxWaW9sYXRpb24+JiB2aW9sYXRpb25z
LCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVGbGV4
SXRlbVNpemUmIGluZmxleGlibGVJdGVtcykKK3ZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmZyZWV6
ZVZpb2xhdGlvbnMoY29uc3QgV1RGOjpWZWN0b3I8VmlvbGF0aW9uPiYgdmlvbGF0aW9ucywgTGF5
b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmls
aXR5LCBmbG9hdCYgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVG
bGV4SXRlbVNpemUmIGluZmxleGlibGVJdGVtcykKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IHZpb2xhdGlvbnMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgUmVuZGVyQm94KiBjaGlsZCA9
IHZpb2xhdGlvbnNbaV0uY2hpbGQ7CiAgICAgICAgIExheW91dFVuaXQgY2hpbGRTaXplID0gdmlv
bGF0aW9uc1tpXS5jaGlsZFNpemU7Ci0gICAgICAgIGF2YWlsYWJsZUZyZWVTcGFjZSAtPSBjaGls
ZFNpemUgLSBwcmVmZXJyZWRNYWluQXhpc0NvbnRlbnRFeHRlbnRGb3JDaGlsZChjaGlsZCk7Cisg
ICAgICAgIExheW91dFVuaXQgcHJlZmVycmVkQ2hpbGRTaXplID0gcHJlZmVycmVkTWFpbkF4aXND
b250ZW50RXh0ZW50Rm9yQ2hpbGQoY2hpbGQpOworICAgICAgICBhdmFpbGFibGVGcmVlU3BhY2Ug
LT0gY2hpbGRTaXplIC0gcHJlZmVycmVkQ2hpbGRTaXplOwogICAgICAgICB0b3RhbFBvc2l0aXZl
RmxleGliaWxpdHkgLT0gY2hpbGQtPnN0eWxlKCktPnBvc2l0aXZlRmxleCgpOwotICAgICAgICB0
b3RhbE5lZ2F0aXZlRmxleGliaWxpdHkgLT0gY2hpbGQtPnN0eWxlKCktPm5lZ2F0aXZlRmxleCgp
OworICAgICAgICB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSAtPSBjaGlsZC0+c3R5
bGUoKS0+bmVnYXRpdmVGbGV4KCkgKiBwcmVmZXJyZWRDaGlsZFNpemU7CiAgICAgICAgIGluZmxl
eGlibGVJdGVtcy5zZXQoY2hpbGQsIGNoaWxkU2l6ZSk7CiAgICAgfQogfQogCiAvLyBSZXR1cm5z
IHRydWUgaWYgd2Ugc3VjY2Vzc2Z1bGx5IHJhbiB0aGUgYWxnb3JpdGhtIGFuZCBzaXplZCB0aGUg
ZmxleCBpdGVtcy4KLWJvb2wgUmVuZGVyRmxleGlibGVCb3g6OnJlc29sdmVGbGV4aWJsZUxlbmd0
aHMoRmxleFNpZ24gZmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3QmIGNoaWxkcmVu
LCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVGbGV4
SXRlbVNpemUmIGluZmxleGlibGVJdGVtcywgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxk
U2l6ZXMpCitib29sIFJlbmRlckZsZXhpYmxlQm94OjpyZXNvbHZlRmxleGlibGVMZW5ndGhzKEZs
ZXhTaWduIGZsZXhTaWduLCBjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0JiBjaGlsZHJlbiwgTGF5
b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmls
aXR5LCBmbG9hdCYgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVG
bGV4SXRlbVNpemUmIGluZmxleGlibGVJdGVtcywgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNo
aWxkU2l6ZXMpCiB7CiAgICAgY2hpbGRTaXplcy5jbGVhcigpOwogICAgIExheW91dFVuaXQgZmxl
eGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQgPSBtYWluQXhpc0NvbnRlbnRFeHRlbnQoKTsKQEAg
LTg3MSw4ICs4NzIsOCBAQCBib29sIFJlbmRlckZsZXhpYmxlQm94OjpyZXNvbHZlRmxleGlibGVM
ZW5ndGhzKEZsZXhTaWduIGZsZXhTaWduLCBjb25zdCBPcmRlcmVkRgogICAgICAgICAgICAgTGF5
b3V0VW5pdCBjaGlsZFNpemUgPSBwcmVmZXJyZWRDaGlsZFNpemU7CiAgICAgICAgICAgICBpZiAo
YXZhaWxhYmxlRnJlZVNwYWNlID4gMCAmJiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgPiAwICYm
IGZsZXhTaWduID09IFBvc2l0aXZlRmxleGliaWxpdHkpCiAgICAgICAgICAgICAgICAgY2hpbGRT
aXplICs9IGxyb3VuZGYoYXZhaWxhYmxlRnJlZVNwYWNlICogY2hpbGQtPnN0eWxlKCktPnBvc2l0
aXZlRmxleCgpIC8gdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5KTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKGF2YWlsYWJsZUZyZWVTcGFjZSA8IDAgJiYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5ID4g
MCAgJiYgZmxleFNpZ24gPT0gTmVnYXRpdmVGbGV4aWJpbGl0eSkKLSAgICAgICAgICAgICAgICBj
aGlsZFNpemUgKz0gbHJvdW5kZihhdmFpbGFibGVGcmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+
bmVnYXRpdmVGbGV4KCkgLyB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHkpOworICAgICAgICAgICAg
ZWxzZSBpZiAoYXZhaWxhYmxlRnJlZVNwYWNlIDwgMCAmJiB0b3RhbFdlaWdodGVkTmVnYXRpdmVG
bGV4aWJpbGl0eSA+IDAgICYmIGZsZXhTaWduID09IE5lZ2F0aXZlRmxleGliaWxpdHkpCisgICAg
ICAgICAgICAgICAgY2hpbGRTaXplICs9IGxyb3VuZGYoYXZhaWxhYmxlRnJlZVNwYWNlICogY2hp
bGQtPnN0eWxlKCktPm5lZ2F0aXZlRmxleCgpICogcHJlZmVycmVkQ2hpbGRTaXplIC8gdG90YWxX
ZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHkpOwogCiAgICAgICAgICAgICBMYXlvdXRVbml0IGFk
anVzdGVkQ2hpbGRTaXplID0gYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KGNoaWxkLCBjaGls
ZFNpemUsIGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50KTsKICAgICAgICAgICAgIGNoaWxk
U2l6ZXMuYXBwZW5kKGFkanVzdGVkQ2hpbGRTaXplKTsKQEAgLTg4OCw3ICs4ODksNyBAQCBib29s
IFJlbmRlckZsZXhpYmxlQm94OjpyZXNvbHZlRmxleGlibGVMZW5ndGhzKEZsZXhTaWduIGZsZXhT
aWduLCBjb25zdCBPcmRlcmVkRgogICAgIH0KIAogICAgIGlmICh0b3RhbFZpb2xhdGlvbikKLSAg
ICAgICAgZnJlZXplVmlvbGF0aW9ucyh0b3RhbFZpb2xhdGlvbiA8IDAgPyBtYXhWaW9sYXRpb25z
IDogbWluVmlvbGF0aW9ucywgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxleGli
aWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgaW5mbGV4aWJsZUl0ZW1zKTsKKyAgICAg
ICAgZnJlZXplVmlvbGF0aW9ucyh0b3RhbFZpb2xhdGlvbiA8IDAgPyBtYXhWaW9sYXRpb25zIDog
bWluVmlvbGF0aW9ucywgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxleGliaWxp
dHksIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBpbmZsZXhpYmxlSXRlbXMpOwog
ICAgIGVsc2UKICAgICAgICAgYXZhaWxhYmxlRnJlZVNwYWNlIC09IHVzZWRGcmVlU3BhY2U7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXggODM4
M2E0NmI4ZWUxYzcxYzllNmNjZjA0OGVlZDJlYTMyOGVjZjk2My4uYWU2MWQ2MzFmNjcyNGEyNDEx
ZTFjZGUxM2MxODMyOTNhOGIxZGIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmgKQEAgLTExMywxMSArMTEzLDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIEZs
ZXhPcmRlckhhc2hTZXQmKTsKICAgICBMYXlvdXRVbml0IGxpbmVCcmVha0xlbmd0aCgpOwogICAg
IExheW91dFVuaXQgYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCosIExheW91
dFVuaXQgY2hpbGRTaXplLCBMYXlvdXRVbml0IGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50
KTsKLSAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoRmxleE9yZGVySXRlcmF0b3ImLCBPcmRl
cmVkRmxleEl0ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1h
aW5BeGlzRXh0ZW50LCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90
YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBMYXlvdXRVbml0JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNF
eHRlbnQpOworICAgIGJvb2wgY29tcHV0ZU5leHRGbGV4TGluZShGbGV4T3JkZXJJdGVyYXRvciYs
IE9yZGVyZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgcHJlZmVy
cmVkTWFpbkF4aXNFeHRlbnQsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0
JiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgTGF5b3V0VW5pdCYgbWluTWF4QXBw
bGllZE1haW5BeGlzRXh0ZW50KTsKICAgICBMYXlvdXRVbml0IGNvbXB1dGVBdmFpbGFibGVGcmVl
U3BhY2UoTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCk7CiAKLSAgICBib29sIHJl
c29sdmVGbGV4aWJsZUxlbmd0aHMoRmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3Qm
LCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVGbGV4
SXRlbVNpemUmLCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXplcyk7Ci0gICAgdm9p
ZCBmcmVlemVWaW9sYXRpb25zKGNvbnN0IFdURjo6VmVjdG9yPFZpb2xhdGlvbj4mLCBMYXlvdXRV
bml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHks
IGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVGbGV4SXRlbVNpemUm
KTsKKyAgICBib29sIHJlc29sdmVGbGV4aWJsZUxlbmd0aHMoRmxleFNpZ24sIGNvbnN0IE9yZGVy
ZWRGbGV4SXRlbUxpc3QmLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0
b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4
aWJpbGl0eSwgSW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSYsIFdURjo6VmVjdG9yPExheW91dFVuaXQ+
JiBjaGlsZFNpemVzKTsKKyAgICB2b2lkIGZyZWV6ZVZpb2xhdGlvbnMoY29uc3QgV1RGOjpWZWN0
b3I8VmlvbGF0aW9uPiYsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRv
dGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhp
YmlsaXR5LCBJbmZsZXhpYmxlRmxleEl0ZW1TaXplJik7CiAKICAgICB2b2lkIHNldExvZ2ljYWxP
dmVycmlkZVNpemUoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBjaGlsZFByZWZlcnJlZFNp
emUpOwogICAgIHZvaWQgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dChSZW5kZXJCb3gq
IGNoaWxkLCBMYXlvdXRVbml0IG1haW5BeGlzT2Zmc2V0LCBMYXlvdXRVbml0IGNyb3NzQXhpc09m
ZnNldCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYTU1Yzg3OTA5ZmUxODllN2UyNDYxNGUyN2NiYzRlNWVmZjdmZmQ5YS4u
OTI0MmVkNGJhMzZjMDkzZTVlZjhiYTk2NmM1NWRmZTNkYTBjZmJhNSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEzIEBACisyMDEyLTA1LTI1ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgaW1wbGVtZW50IG5ldyBuZWdhdGl2ZSBmbGV4aW5nIGFsZ29yaXRobQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY1MjgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvZmxleGJveC9mbGV4
LWFsZ29yaXRobS1leHBlY3RlZC50eHQ6CisgICAgICAgICogY3NzMy9mbGV4Ym94L2ZsZXgtYWxn
b3JpdGhtLmh0bWw6CisKIDIwMTItMDUtMjUgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxl
LmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgTGF5b3V0VGVzdCdzIGV2ZW50U2VuZGVyLmJlZ2lu
RHJhZ1dpdGhGaWxlcyBpbnRlcmZhY2UgaW4gd2luZG93cyBwbGF0Zm9ybQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxnb3JpdGhtLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsZ29yaXRobS1leHBlY3RlZC50eHQKaW5kZXgg
ZDg5NWFlODNiYWUzZjEyYzk1Yzk3YWZkNDBhYTE0ZTBjNzU5NTQ5Ny4uMWQ4NjE5MTViMDZkMjc0
MGQxOWUzZDc3NmEyNWFmYzE1YTM4Y2JmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY3NzMy9m
bGV4Ym94L2ZsZXgtYWxnb3JpdGhtLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3Mz
L2ZsZXhib3gvZmxleC1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CkBAIC0xNiw0ICsxNiw4IEBAIFBB
U1MKIFBBU1MKIFBBU1MKIFBBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxnb3JpdGhtLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbAppbmRleCA2ZmZmY2Q3NjAwZjUw
NTg1MGZjNDg4MmQ3ODdkMWVmMDU2OGM3MDUwLi43YTljMGNiMDJkMWMyN2QzZmZkM2E2YzIxZjA2
ZGZmZmUyNDNjNTg3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1h
bGdvcml0aG0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0
aG0uaHRtbApAQCAtODYsNiArODYsMjcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKICAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIyMDAiIHN0eWxlPSJ3aWR0aDogMjAwcHgi
PjwvZGl2PgogPC9kaXY+CiAKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xh
c3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBzdHlsZT0iLXdl
YmtpdC1mbGV4OiAxIDEgMTAwcHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDUwMHB4Ij48L2Rpdj4KKyAgPGRpdiBkYXRh
LWV4cGVjdGVkLXdpZHRoPSIzMDAiIHN0eWxlPSJ3aWR0aDogMzAwcHgiPjwvZGl2PgorPC9kaXY+
CisKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgor
ICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEg
MTAwcHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjI1MCIgc3R5bGU9Ii13
ZWJraXQtZmxleDogMSAxIDUwMHB4OyBtYXJnaW4tcmlnaHQ6IDMwMHB4OyI+PC9kaXY+Cis8L2Rp
dj4KKworPGRpdiBzdHlsZT0iZGlzcGxheTogLXdlYmtpdC1mbGV4IiBjbGFzcz0iZmxleGJveCI+
CisgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAiIHN0eWxlPSItd2Via2l0LWZsZXg6IDEg
MSAxMDBweCI+PC9kaXY+CisgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iNTUwIiBzdHlsZT0i
LXdlYmtpdC1mbGV4OiAxIDEgNTAwcHg7IHBhZGRpbmctbGVmdDogMzAwcHg7Ij48L2Rpdj4KKzwv
ZGl2PgorCis8ZGl2IHN0eWxlPSJkaXNwbGF5OiAtd2Via2l0LWZsZXgiIGNsYXNzPSJmbGV4Ym94
Ij4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDog
MSAxIDEwMHB4Ij48L2Rpdj4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1NTAiIHN0eWxl
PSItd2Via2l0LWZsZXg6IDEgMSA1MDBweDsgYm9yZGVyLWxlZnQ6IDIwMHB4IGRhc2hlZCBvcmFu
Z2U7IGJvcmRlci1yaWdodDogMTAwcHggZGFzaGVkIG9yYW5nZTsiPjwvZGl2PgorPC9kaXY+CisK
IDwhLS0gVGVzdCBmbGV4aXRlbSBib3JkZXJzLiAtLT4KIDxkaXYgc3R5bGU9ImRpc3BsYXk6IC13
ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgogICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9
IjI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMTsgYm9yZGVyLWxlZnQ6IDE1MHB4IHNvbGlkIGJs
YWNrIj48L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144161</attachid>
            <date>2012-05-25 15:53:58 -0700</date>
            <delta_ts>2012-05-25 16:05:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86528-20120525155359.patch</filename>
            <type>text/plain</type>
            <size>15299</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiODcyY2Y4NDQyMDU2
NGM0MzU1YmI5NWZhNDI5YTRjMWJiODE0Yi4uMzYwMWE5NGE3YzU2N2ZiNTRlODk1NDNjNDU0Zjg3
ZDYyYjQ5Y2RhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA1LTI1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgaW1wbGVtZW50IG5ldyBuZWdh
dGl2ZSBmbGV4aW5nIGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY1MjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSYXRoZXIgdGhhbiBqdXN0IHNjYWxlIGJ5IHRoZSBuZWdhdGl2ZSBmbGV4
aWJpbGl0eSwgd2UgYWxzbyB0YWtlIHRoZQorICAgICAgICBmbGV4LWJhc2lzIChwcmVmZXJyZWQg
c2l6ZSkgaW50byBjb25zaWRlcmF0aW9uLiAgVGhhdCBtZWFucyBpdGVtcyB3aXRoCisgICAgICAg
IGEgbGFyZ2VyIHByZWZlcnJlZCBzaXplIHdpbGwgc2hyaW5rIGZhc3Rlci4KKworICAgICAgICBU
ZXN0OiBjc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbCAobmV3IHRlc3QgY2FzZXMgYWRk
ZWQpCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnByZWZlcnJlZE1haW5BeGlzQ29udGVudEV4
dGVudEZvckNoaWxkKTogSGFuZGxlIG92ZXJmbG93LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4TGluZSk6IFN1bSB3ZWlnaHRlZCBuZWdhdGl2ZSBm
bGV4LgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmZyZWV6ZVZpb2xhdGlv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnJlc29sdmVGbGV4aWJs
ZUxlbmd0aHMpOiBTaHJpbmsgYnkgd2VpZ2h0ZWQgYW1vdW50LiAgQWxzbyBoYW5kbGUgbGFyZ2Ug
dmFsdWVzLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgorCiAyMDEy
LTA1LTI1ICBLZW4gQnVjaGFuYW4gIDxrZW5yYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTGF5
b3V0IHJvb3Qgbm90IGdldHRpbmcgY2xlYXJlZCBmb3IgYW5vbnltb3VzIHJlbmRlcmVycyBnZXRp
bmcgZGVzdHJveWVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmNwcAppbmRleCAyZmVhYjRmNzVjMzUzOTdjMmU4YThlNTlhNjU5NzM4M2VkMWViNmE5Li44
ZjA5OTdiODU1YjJjZDk1MWYzMTJmNTUwZDMwY2IyODczOWNkOWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlICJSZW5kZXJMYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNs
dWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCkBAIC01OTMsNyArNTk0LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJv
eDo6cHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQoUmVuZGVyQm94KgogICAg
ICAgICBMYXlvdXRVbml0IG1haW5BeGlzRXh0ZW50ID0gaGFzT3J0aG9nb25hbEZsb3coY2hpbGQp
ID8gY2hpbGQtPmxvZ2ljYWxIZWlnaHQoKSA6IGNoaWxkLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lk
dGgoKTsKICAgICAgICAgcmV0dXJuIG1haW5BeGlzRXh0ZW50IC0gbWFpbkF4aXNCb3JkZXJBbmRQ
YWRkaW5nRXh0ZW50Rm9yQ2hpbGQoY2hpbGQpOwogICAgIH0KLSAgICByZXR1cm4gbWluaW11bVZh
bHVlRm9yTGVuZ3RoKG1haW5BeGlzTGVuZ3RoLCBtYWluQXhpc0NvbnRlbnRFeHRlbnQoKSwgdmll
dygpKTsKKyAgICByZXR1cm4gc3RkOjptYXgoTGF5b3V0VW5pdCgwKSwgbWluaW11bVZhbHVlRm9y
TGVuZ3RoKG1haW5BeGlzTGVuZ3RoLCBtYWluQXhpc0NvbnRlbnRFeHRlbnQoKSwgdmlldygpKSk7
CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVBdmFpbGFibGVGcmVl
U3BhY2UoTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCkKQEAgLTYyNCwxNyArNjI1
LDE3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhGbGV4T3JkZXJJ
dGVyYXRvciYgaXRlcmF0b3IsIFdURjo6VmVjdG9yCiAgICAgT3JkZXJlZEZsZXhJdGVtTGlzdCBv
cmRlcmVkQ2hpbGRyZW47CiAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudDsK
ICAgICBmbG9hdCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHk7Ci0gICAgZmxvYXQgdG90YWxOZWdh
dGl2ZUZsZXhpYmlsaXR5OworICAgIGZsb2F0IHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmls
aXR5OwogICAgIExheW91dFVuaXQgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50OwogCiAgICAg
TGF5b3V0VW5pdCBjcm9zc0F4aXNPZmZzZXQgPSBmbG93QXdhcmVCb3JkZXJCZWZvcmUoKSArIGZs
b3dBd2FyZVBhZGRpbmdCZWZvcmUoKTsKLSAgICB3aGlsZSAoY29tcHV0ZU5leHRGbGV4TGluZShp
dGVyYXRvciwgb3JkZXJlZENoaWxkcmVuLCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgdG90YWxQ
b3NpdGl2ZUZsZXhpYmlsaXR5LCB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIG1pbk1heEFwcGxp
ZWRNYWluQXhpc0V4dGVudCkpIHsKKyAgICB3aGlsZSAoY29tcHV0ZU5leHRGbGV4TGluZShpdGVy
YXRvciwgb3JkZXJlZENoaWxkcmVuLCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgdG90YWxQb3Np
dGl2ZUZsZXhpYmlsaXR5LCB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgbWluTWF4
QXBwbGllZE1haW5BeGlzRXh0ZW50KSkgewogICAgICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUZy
ZWVTcGFjZSA9IGNvbXB1dGVBdmFpbGFibGVGcmVlU3BhY2UocHJlZmVycmVkTWFpbkF4aXNFeHRl
bnQpOwogICAgICAgICBGbGV4U2lnbiBmbGV4U2lnbiA9IChtaW5NYXhBcHBsaWVkTWFpbkF4aXNF
eHRlbnQgPCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCArIGF2YWlsYWJsZUZyZWVTcGFjZSkgPyBQ
b3NpdGl2ZUZsZXhpYmlsaXR5IDogTmVnYXRpdmVGbGV4aWJpbGl0eTsKICAgICAgICAgSW5mbGV4
aWJsZUZsZXhJdGVtU2l6ZSBpbmZsZXhpYmxlSXRlbXM7CiAgICAgICAgIFdURjo6VmVjdG9yPExh
eW91dFVuaXQ+IGNoaWxkU2l6ZXM7Ci0gICAgICAgIHdoaWxlICghcmVzb2x2ZUZsZXhpYmxlTGVu
Z3RocyhmbGV4U2lnbiwgb3JkZXJlZENoaWxkcmVuLCBhdmFpbGFibGVGcmVlU3BhY2UsIHRvdGFs
UG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBpbmZsZXhpYmxl
SXRlbXMsIGNoaWxkU2l6ZXMpKSB7Ci0gICAgICAgICAgICBBU1NFUlQodG90YWxQb3NpdGl2ZUZs
ZXhpYmlsaXR5ID49IDAgJiYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5ID49IDApOworICAgICAg
ICB3aGlsZSAoIXJlc29sdmVGbGV4aWJsZUxlbmd0aHMoZmxleFNpZ24sIG9yZGVyZWRDaGlsZHJl
biwgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIHRvdGFsV2Vp
Z2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBpbmZsZXhpYmxlSXRlbXMsIGNoaWxkU2l6ZXMpKSB7
CisgICAgICAgICAgICBBU1NFUlQodG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5ID49IDAgJiYgdG90
YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHkgPj0gMCk7CiAgICAgICAgICAgICBBU1NFUlQo
aW5mbGV4aWJsZUl0ZW1zLnNpemUoKSA+IDApOwogICAgICAgICB9CiAKQEAgLTgwMCwxMSArODAx
LDExIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmFkanVzdENoaWxkU2l6ZUZvck1p
bkFuZE1heChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvCiAgICAgcmV0dXJuIGNoaWxkU2l6ZTsKIH0K
IAotYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4TGluZShGbGV4T3JkZXJJ
dGVyYXRvciYgaXRlcmF0b3IsIE9yZGVyZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJlbiwg
TGF5b3V0VW5pdCYgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIGZsb2F0JiB0b3RhbFBvc2l0aXZl
RmxleGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIExheW91dFVuaXQm
IG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCkKK2Jvb2wgUmVuZGVyRmxleGlibGVCb3g6OmNv
bXB1dGVOZXh0RmxleExpbmUoRmxleE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBPcmRlcmVkRmxl
eEl0ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQmIHByZWZlcnJlZE1haW5BeGlz
RXh0ZW50LCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90YWxXZWln
aHRlZE5lZ2F0aXZlRmxleGliaWxpdHksIExheW91dFVuaXQmIG1pbk1heEFwcGxpZWRNYWluQXhp
c0V4dGVudCkKIHsKICAgICBvcmRlcmVkQ2hpbGRyZW4uY2xlYXIoKTsKICAgICBwcmVmZXJyZWRN
YWluQXhpc0V4dGVudCA9IDA7Ci0gICAgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5ID0gdG90YWxO
ZWdhdGl2ZUZsZXhpYmlsaXR5ID0gMDsKKyAgICB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgPSB0
b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSA9IDA7CiAgICAgbWluTWF4QXBwbGllZE1h
aW5BeGlzRXh0ZW50ID0gMDsKIAogICAgIGlmICghaXRlcmF0b3IuY3VycmVudENoaWxkKCkpCkBA
IC04MjgsNyArODI5LDcgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZU5leHRGbGV4
TGluZShGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIE9yZGVyZWQKICAgICAgICAgb3JkZXJl
ZENoaWxkcmVuLmFwcGVuZChjaGlsZCk7CiAgICAgICAgIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50
ICs9IGNoaWxkTWFpbkF4aXNNYXJnaW5Cb3hFeHRlbnQ7CiAgICAgICAgIHRvdGFsUG9zaXRpdmVG
bGV4aWJpbGl0eSArPSBjaGlsZC0+c3R5bGUoKS0+cG9zaXRpdmVGbGV4KCk7Ci0gICAgICAgIHRv
dGFsTmVnYXRpdmVGbGV4aWJpbGl0eSArPSBjaGlsZC0+c3R5bGUoKS0+bmVnYXRpdmVGbGV4KCk7
CisgICAgICAgIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5ICs9IGNoaWxkLT5zdHls
ZSgpLT5uZWdhdGl2ZUZsZXgoKSAqIGNoaWxkTWFpbkF4aXNFeHRlbnQ7CiAKICAgICAgICAgTGF5
b3V0VW5pdCBjaGlsZE1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCA9IGFkanVzdENoaWxkU2l6
ZUZvck1pbkFuZE1heChjaGlsZCwgY2hpbGRNYWluQXhpc0V4dGVudCwgZmxleGJveEF2YWlsYWJs
ZUNvbnRlbnRFeHRlbnQpOwogICAgICAgICBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQgKz0g
Y2hpbGRNaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQgLSBjaGlsZE1haW5BeGlzRXh0ZW50ICsg
Y2hpbGRNYWluQXhpc01hcmdpbkJveEV4dGVudDsKQEAgLTgzNiwyMCArODM3LDIxIEBAIGJvb2wg
UmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVOZXh0RmxleExpbmUoRmxleE9yZGVySXRlcmF0b3Im
IGl0ZXJhdG9yLCBPcmRlcmVkCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgUmVuZGVyRmxl
eGlibGVCb3g6OmZyZWV6ZVZpb2xhdGlvbnMoY29uc3QgV1RGOjpWZWN0b3I8VmlvbGF0aW9uPiYg
dmlvbGF0aW9ucywgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQ
b3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZs
ZXhpYmxlRmxleEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMpCit2b2lkIFJlbmRlckZsZXhpYmxl
Qm94OjpmcmVlemVWaW9sYXRpb25zKGNvbnN0IFdURjo6VmVjdG9yPFZpb2xhdGlvbj4mIHZpb2xh
dGlvbnMsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRp
dmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBJ
bmZsZXhpYmxlRmxleEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMpCiB7CiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCB2aW9sYXRpb25zLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFJlbmRlckJv
eCogY2hpbGQgPSB2aW9sYXRpb25zW2ldLmNoaWxkOwogICAgICAgICBMYXlvdXRVbml0IGNoaWxk
U2l6ZSA9IHZpb2xhdGlvbnNbaV0uY2hpbGRTaXplOwotICAgICAgICBhdmFpbGFibGVGcmVlU3Bh
Y2UgLT0gY2hpbGRTaXplIC0gcHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQo
Y2hpbGQpOworICAgICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENoaWxkU2l6ZSA9IHByZWZlcnJl
ZE1haW5BeGlzQ29udGVudEV4dGVudEZvckNoaWxkKGNoaWxkKTsKKyAgICAgICAgYXZhaWxhYmxl
RnJlZVNwYWNlIC09IGNoaWxkU2l6ZSAtIHByZWZlcnJlZENoaWxkU2l6ZTsKICAgICAgICAgdG90
YWxQb3NpdGl2ZUZsZXhpYmlsaXR5IC09IGNoaWxkLT5zdHlsZSgpLT5wb3NpdGl2ZUZsZXgoKTsK
LSAgICAgICAgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5IC09IGNoaWxkLT5zdHlsZSgpLT5uZWdh
dGl2ZUZsZXgoKTsKKyAgICAgICAgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHkgLT0g
Y2hpbGQtPnN0eWxlKCktPm5lZ2F0aXZlRmxleCgpICogcHJlZmVycmVkQ2hpbGRTaXplOwogICAg
ICAgICBpbmZsZXhpYmxlSXRlbXMuc2V0KGNoaWxkLCBjaGlsZFNpemUpOwogICAgIH0KIH0KIAog
Ly8gUmV0dXJucyB0cnVlIGlmIHdlIHN1Y2Nlc3NmdWxseSByYW4gdGhlIGFsZ29yaXRobSBhbmQg
c2l6ZWQgdGhlIGZsZXggaXRlbXMuCi1ib29sIFJlbmRlckZsZXhpYmxlQm94OjpyZXNvbHZlRmxl
eGlibGVMZW5ndGhzKEZsZXhTaWduIGZsZXhTaWduLCBjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0
JiBjaGlsZHJlbiwgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQ
b3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZs
ZXhpYmxlRmxleEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMsIFdURjo6VmVjdG9yPExheW91dFVu
aXQ+JiBjaGlsZFNpemVzKQorYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxl
TGVuZ3RocyhGbGV4U2lnbiBmbGV4U2lnbiwgY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYgY2hp
bGRyZW4sIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRp
dmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBJ
bmZsZXhpYmxlRmxleEl0ZW1TaXplJiBpbmZsZXhpYmxlSXRlbXMsIFdURjo6VmVjdG9yPExheW91
dFVuaXQ+JiBjaGlsZFNpemVzKQogewogICAgIGNoaWxkU2l6ZXMuY2xlYXIoKTsKICAgICBMYXlv
dXRVbml0IGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50ID0gbWFpbkF4aXNDb250ZW50RXh0
ZW50KCk7CkBAIC04NjksMTAgKzg3MSwxMCBAQCBib29sIFJlbmRlckZsZXhpYmxlQm94OjpyZXNv
bHZlRmxleGlibGVMZW5ndGhzKEZsZXhTaWduIGZsZXhTaWduLCBjb25zdCBPcmRlcmVkRgogICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgIExheW91dFVuaXQgcHJlZmVycmVkQ2hpbGRTaXplID0g
cHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50Rm9yQ2hpbGQoY2hpbGQpOwogICAgICAgICAg
ICAgTGF5b3V0VW5pdCBjaGlsZFNpemUgPSBwcmVmZXJyZWRDaGlsZFNpemU7Ci0gICAgICAgICAg
ICBpZiAoYXZhaWxhYmxlRnJlZVNwYWNlID4gMCAmJiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkg
PiAwICYmIGZsZXhTaWduID09IFBvc2l0aXZlRmxleGliaWxpdHkpCisgICAgICAgICAgICBpZiAo
YXZhaWxhYmxlRnJlZVNwYWNlID4gMCAmJiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkgPiAwICYm
IGZsZXhTaWduID09IFBvc2l0aXZlRmxleGliaWxpdHkgJiYgaXNmaW5pdGUodG90YWxQb3NpdGl2
ZUZsZXhpYmlsaXR5KSkKICAgICAgICAgICAgICAgICBjaGlsZFNpemUgKz0gbHJvdW5kZihhdmFp
bGFibGVGcmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+cG9zaXRpdmVGbGV4KCkgLyB0b3RhbFBv
c2l0aXZlRmxleGliaWxpdHkpOwotICAgICAgICAgICAgZWxzZSBpZiAoYXZhaWxhYmxlRnJlZVNw
YWNlIDwgMCAmJiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHkgPiAwICAmJiBmbGV4U2lnbiA9PSBO
ZWdhdGl2ZUZsZXhpYmlsaXR5KQotICAgICAgICAgICAgICAgIGNoaWxkU2l6ZSArPSBscm91bmRm
KGF2YWlsYWJsZUZyZWVTcGFjZSAqIGNoaWxkLT5zdHlsZSgpLT5uZWdhdGl2ZUZsZXgoKSAvIHRv
dGFsTmVnYXRpdmVGbGV4aWJpbGl0eSk7CisgICAgICAgICAgICBlbHNlIGlmIChhdmFpbGFibGVG
cmVlU3BhY2UgPCAwICYmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5ID4gMCAmJiBm
bGV4U2lnbiA9PSBOZWdhdGl2ZUZsZXhpYmlsaXR5ICYmIGlzZmluaXRlKHRvdGFsV2VpZ2h0ZWRO
ZWdhdGl2ZUZsZXhpYmlsaXR5KSkKKyAgICAgICAgICAgICAgICBjaGlsZFNpemUgKz0gbHJvdW5k
ZihhdmFpbGFibGVGcmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+bmVnYXRpdmVGbGV4KCkgKiBw
cmVmZXJyZWRDaGlsZFNpemUgLyB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSk7CiAK
ICAgICAgICAgICAgIExheW91dFVuaXQgYWRqdXN0ZWRDaGlsZFNpemUgPSBhZGp1c3RDaGlsZFNp
emVGb3JNaW5BbmRNYXgoY2hpbGQsIGNoaWxkU2l6ZSwgZmxleGJveEF2YWlsYWJsZUNvbnRlbnRF
eHRlbnQpOwogICAgICAgICAgICAgY2hpbGRTaXplcy5hcHBlbmQoYWRqdXN0ZWRDaGlsZFNpemUp
OwpAQCAtODg4LDcgKzg5MCw3IEBAIGJvb2wgUmVuZGVyRmxleGlibGVCb3g6OnJlc29sdmVGbGV4
aWJsZUxlbmd0aHMoRmxleFNpZ24gZmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGCiAgICAgfQogCiAg
ICAgaWYgKHRvdGFsVmlvbGF0aW9uKQotICAgICAgICBmcmVlemVWaW9sYXRpb25zKHRvdGFsVmlv
bGF0aW9uIDwgMCA/IG1heFZpb2xhdGlvbnMgOiBtaW5WaW9sYXRpb25zLCBhdmFpbGFibGVGcmVl
U3BhY2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5
LCBpbmZsZXhpYmxlSXRlbXMpOworICAgICAgICBmcmVlemVWaW9sYXRpb25zKHRvdGFsVmlvbGF0
aW9uIDwgMCA/IG1heFZpb2xhdGlvbnMgOiBtaW5WaW9sYXRpb25zLCBhdmFpbGFibGVGcmVlU3Bh
Y2UsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGli
aWxpdHksIGluZmxleGlibGVJdGVtcyk7CiAgICAgZWxzZQogICAgICAgICBhdmFpbGFibGVGcmVl
U3BhY2UgLT0gdXNlZEZyZWVTcGFjZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaAppbmRleCA4MzgzYTQ2YjhlZTFjNzFjOWU2Y2NmMDQ4ZWVkMmVhMzI4
ZWNmOTYzLi5hZTYxZDYzMWY2NzI0YTI0MTFlMWNkZTEzYzE4MzI5M2E4YjFkYjI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtMTEzLDExICsx
MTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVz
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgRmxleE9yZGVySGFzaFNldCYpOwogICAgIExheW91dFVu
aXQgbGluZUJyZWFrTGVuZ3RoKCk7CiAgICAgTGF5b3V0VW5pdCBhZGp1c3RDaGlsZFNpemVGb3JN
aW5BbmRNYXgoUmVuZGVyQm94KiwgTGF5b3V0VW5pdCBjaGlsZFNpemUsIExheW91dFVuaXQgZmxl
eGJveEF2YWlsYWJsZUNvbnRlbnRFeHRlbnQpOwotICAgIGJvb2wgY29tcHV0ZU5leHRGbGV4TGlu
ZShGbGV4T3JkZXJJdGVyYXRvciYsIE9yZGVyZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJl
biwgTGF5b3V0VW5pdCYgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIGZsb2F0JiB0b3RhbFBvc2l0
aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIExheW91dFVu
aXQmIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCk7CisgICAgYm9vbCBjb21wdXRlTmV4dEZs
ZXhMaW5lKEZsZXhPcmRlckl0ZXJhdG9yJiwgT3JkZXJlZEZsZXhJdGVtTGlzdCYgb3JkZXJlZENo
aWxkcmVuLCBMYXlvdXRVbml0JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZmxvYXQmIHRvdGFs
UG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmls
aXR5LCBMYXlvdXRVbml0JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpOwogICAgIExheW91
dFVuaXQgY29tcHV0ZUF2YWlsYWJsZUZyZWVTcGFjZShMYXlvdXRVbml0IHByZWZlcnJlZE1haW5B
eGlzRXh0ZW50KTsKIAotICAgIGJvb2wgcmVzb2x2ZUZsZXhpYmxlTGVuZ3RocyhGbGV4U2lnbiwg
Y29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFj
ZSwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVG
bGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSYsIFdURjo6VmVjdG9yPExheW91dFVu
aXQ+JiBjaGlsZFNpemVzKTsKLSAgICB2b2lkIGZyZWV6ZVZpb2xhdGlvbnMoY29uc3QgV1RGOjpW
ZWN0b3I8VmlvbGF0aW9uPiYsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQm
IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0
eSwgSW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSYpOworICAgIGJvb2wgcmVzb2x2ZUZsZXhpYmxlTGVu
Z3RocyhGbGV4U2lnbiwgY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYsIExheW91dFVuaXQmIGF2
YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQm
IHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZsZXhpYmxlRmxleEl0ZW1TaXpl
JiwgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMpOworICAgIHZvaWQgZnJlZXpl
VmlvbGF0aW9ucyhjb25zdCBXVEY6OlZlY3RvcjxWaW9sYXRpb24+JiwgTGF5b3V0VW5pdCYgYXZh
aWxhYmxlRnJlZVNwYWNlLCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCBmbG9hdCYg
dG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGlibGVGbGV4SXRlbVNpemUm
KTsKIAogICAgIHZvaWQgc2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNoaWxkLCBM
YXlvdXRVbml0IGNoaWxkUHJlZmVycmVkU2l6ZSk7CiAgICAgdm9pZCBwcmVwYXJlQ2hpbGRGb3JQ
b3NpdGlvbmVkTGF5b3V0KFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFpbkF4aXNPZmZz
ZXQsIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhNTVjODc5MDlmZTE4OWU3
ZTI0NjE0ZTI3Y2JjNGU1ZWZmN2ZmZDlhLi45MjQyZWQ0YmEzNmMwOTNlNWVmOGJhOTY2YzU1ZGZl
M2RhMGNmYmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDUtMjUgIFRvbnkgQ2hhbmcg
IDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBpbXBsZW1lbnQgbmV3IG5lZ2F0aXZlIGZs
ZXhpbmcgYWxnb3JpdGhtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04NjUyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogY3NzMy9mbGV4Ym94L2ZsZXgtYWxnb3JpdGhtLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBjc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbDoKKwogMjAxMi0wNS0yNSAgSmVz
c2llIEJlcmxpbiAgPGpiZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBMYXlv
dXRUZXN0J3MgZXZlbnRTZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzIGludGVyZmFjZSBpbiB3aW5k
b3dzIHBsYXRmb3JtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1h
bGdvcml0aG0tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxn
b3JpdGhtLWV4cGVjdGVkLnR4dAppbmRleCBkODk1YWU4M2JhZTNmMTJjOTVjOTdhZmQ0MGFhMTRl
MGM3NTk1NDk3Li5iYjEwMDQ2MmYzMWZiNTcxOWEyMWNiM2Q0ZGYwNzNmYzRlZmQ2ZGM3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0tZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsZ29yaXRobS1leHBlY3Rl
ZC50eHQKQEAgLTE2LDQgKzE2LDEwIEBAIFBBU1MKIFBBU1MKIFBBU1MKIFBBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9mbGV4Ym94L2ZsZXgtYWxnb3JpdGhtLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gv
ZmxleC1hbGdvcml0aG0uaHRtbAppbmRleCA2ZmZmY2Q3NjAwZjUwNTg1MGZjNDg4MmQ3ODdkMWVm
MDU2OGM3MDUwLi5mOTlhNDE0NGYxYmFiZjFkOWZkYmE1YTA2YjdhMGZkYmUxMjQ5NDZlIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbApAQCAtODYsNiAr
ODYsMzkgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgPGRpdiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSIyMDAiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPjwvZGl2PgogPC9kaXY+CiAK
KzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgorICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEgMTAw
cHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjI1MCIgc3R5bGU9Ii13ZWJr
aXQtZmxleDogMSAxIDUwMHB4Ij48L2Rpdj4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIz
MDAiIHN0eWxlPSJ3aWR0aDogMzAwcHgiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImRp
c3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEgMTAwcHgiPjwvZGl2PgorICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDUw
MHB4OyBtYXJnaW4tcmlnaHQ6IDMwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0i
ZGlzcGxheTogLXdlYmtpdC1mbGV4IiBjbGFzcz0iZmxleGJveCI+CisgIDxkaXYgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTAiIHN0eWxlPSItd2Via2l0LWZsZXg6IDEgMSAxMDBweCI+PC9kaXY+Cisg
IDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iNTUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEg
NTAwcHg7IHBhZGRpbmctbGVmdDogMzAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxl
PSJkaXNwbGF5OiAtd2Via2l0LWZsZXgiIGNsYXNzPSJmbGV4Ym94Ij4KKyAgPGRpdiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDEwMHB4Ij48L2Rpdj4K
KyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1NTAiIHN0eWxlPSItd2Via2l0LWZsZXg6IDEg
MSA1MDBweDsgYm9yZGVyLWxlZnQ6IDIwMHB4IGRhc2hlZCBvcmFuZ2U7IGJvcmRlci1yaWdodDog
MTAwcHggZGFzaGVkIG9yYW5nZTsiPjwvZGl2PgorPC9kaXY+CisKKzwhLS0gVGVzdCBzb21lIG92
ZXJmbG93IGNhc2VzLiAtLT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xh
c3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13
ZWJraXQtZmxleDogMCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAw
cHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJr
aXQtZmxleDogMCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAwcHgi
PjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xh
c3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13
ZWJraXQtZmxleDogMTAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDAgNjAw
cHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJr
aXQtZmxleDogMCAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAwcHgi
PjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjAiIHN0eWxlPSItd2Via2l0LWZs
ZXg6IDEgMSAxMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBweCI+PC9kaXY+
Cis8L2Rpdj4KKwogPCEtLSBUZXN0IGZsZXhpdGVtIGJvcmRlcnMuIC0tPgogPGRpdiBzdHlsZT0i
ZGlzcGxheTogLXdlYmtpdC1mbGV4IiBjbGFzcz0iZmxleGJveCI+CiAgIDxkaXYgZGF0YS1leHBl
Y3RlZC13aWR0aD0iMjUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxOyBib3JkZXItbGVmdDogMTUw
cHggc29saWQgYmxhY2siPjwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144164</attachid>
            <date>2012-05-25 16:05:29 -0700</date>
            <delta_ts>2012-05-25 19:07:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-86528-20120525160531.patch</filename>
            <type>text/plain</type>
            <size>15341</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4NTQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjZiODcyY2Y4NDQyMDU2
NGM0MzU1YmI5NWZhNDI5YTRjMWJiODE0Yi4uM2JlZmJlMjA1MjliNDlmMDkxOTZjNDNkYTdiYzFm
MjA4NmI0NzczYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTA1LTI1ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgaW1wbGVtZW50IG5ldyBuZWdh
dGl2ZSBmbGV4aW5nIGFsZ29yaXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODY1MjgKKworICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgor
CisgICAgICAgIFJhdGhlciB0aGFuIGp1c3Qgc2NhbGUgYnkgdGhlIG5lZ2F0aXZlIGZsZXhpYmls
aXR5LCB3ZSBhbHNvIHRha2UgdGhlCisgICAgICAgIGZsZXgtYmFzaXMgKHByZWZlcnJlZCBzaXpl
KSBpbnRvIGNvbnNpZGVyYXRpb24uICBUaGF0IG1lYW5zIGl0ZW1zIHdpdGgKKyAgICAgICAgYSBs
YXJnZXIgcHJlZmVycmVkIHNpemUgd2lsbCBzaHJpbmsgZmFzdGVyLgorCisgICAgICAgIFRlc3Q6
IGNzczMvZmxleGJveC9mbGV4LWFsZ29yaXRobS5odG1sIChuZXcgdGVzdCBjYXNlcyBhZGRlZCkK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cHJlZmVycmVkTWFpbkF4aXNDb250ZW50RXh0ZW50
Rm9yQ2hpbGQpOiBIYW5kbGUgb3ZlcmZsb3cuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4
aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhp
YmxlQm94Ojpjb21wdXRlTmV4dEZsZXhMaW5lKTogU3VtIHdlaWdodGVkIG5lZ2F0aXZlIGZsZXgu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6ZnJlZXplVmlvbGF0aW9ucyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxlTGVu
Z3Rocyk6IFNocmluayBieSB3ZWlnaHRlZCBhbW91bnQuCisgICAgICAgIEFsc28gaGFuZGxlIGxh
cmdlIHZhbHVlcyBieSBtYWtpbmcgc3VyZSB0aGUgZmxleCB2YWx1ZXMgYXJlIGZpbml0ZS4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKwogMjAxMi0wNS0yNSAgS2Vu
IEJ1Y2hhbmFuICA8a2VucmJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIExheW91dCByb290IG5v
dCBnZXR0aW5nIGNsZWFyZWQgZm9yIGFub255bW91cyByZW5kZXJlcnMgZ2V0aW5nIGRlc3Ryb3ll
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5k
ZXggMmZlYWI0Zjc1YzM1Mzk3YzJlOGE4ZTU5YTY1OTczODNlZDFlYjZhOS4uOGYwOTk3Yjg1NWIy
Y2Q5NTFmMzEyZjU1MGQzMGNiMjg3MzljZDliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyTGF5ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSA8bGltaXRz
PgorI2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtNTkzLDcgKzU5NCw3IEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OnByZWZlcnJl
ZE1haW5BeGlzQ29udGVudEV4dGVudEZvckNoaWxkKFJlbmRlckJveCoKICAgICAgICAgTGF5b3V0
VW5pdCBtYWluQXhpc0V4dGVudCA9IGhhc09ydGhvZ29uYWxGbG93KGNoaWxkKSA/IGNoaWxkLT5s
b2dpY2FsSGVpZ2h0KCkgOiBjaGlsZC0+bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CiAgICAg
ICAgIHJldHVybiBtYWluQXhpc0V4dGVudCAtIG1haW5BeGlzQm9yZGVyQW5kUGFkZGluZ0V4dGVu
dEZvckNoaWxkKGNoaWxkKTsKICAgICB9Ci0gICAgcmV0dXJuIG1pbmltdW1WYWx1ZUZvckxlbmd0
aChtYWluQXhpc0xlbmd0aCwgbWFpbkF4aXNDb250ZW50RXh0ZW50KCksIHZpZXcoKSk7CisgICAg
cmV0dXJuIHN0ZDo6bWF4KExheW91dFVuaXQoMCksIG1pbmltdW1WYWx1ZUZvckxlbmd0aChtYWlu
QXhpc0xlbmd0aCwgbWFpbkF4aXNDb250ZW50RXh0ZW50KCksIHZpZXcoKSkpOwogfQogCiBMYXlv
dXRVbml0IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQXZhaWxhYmxlRnJlZVNwYWNlKExheW91
dFVuaXQgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQpCkBAIC02MjQsMTcgKzYyNSwxNyBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRGbGV4SXRlbXMoRmxleE9yZGVySXRlcmF0b3ImIGl0
ZXJhdG9yLCBXVEY6OlZlY3RvcgogICAgIE9yZGVyZWRGbGV4SXRlbUxpc3Qgb3JkZXJlZENoaWxk
cmVuOwogICAgIExheW91dFVuaXQgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQ7CiAgICAgZmxvYXQg
dG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5OwotICAgIGZsb2F0IHRvdGFsTmVnYXRpdmVGbGV4aWJp
bGl0eTsKKyAgICBmbG9hdCB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eTsKICAgICBM
YXlvdXRVbml0IG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudDsKIAogICAgIExheW91dFVuaXQg
Y3Jvc3NBeGlzT2Zmc2V0ID0gZmxvd0F3YXJlQm9yZGVyQmVmb3JlKCkgKyBmbG93QXdhcmVQYWRk
aW5nQmVmb3JlKCk7Ci0gICAgd2hpbGUgKGNvbXB1dGVOZXh0RmxleExpbmUoaXRlcmF0b3IsIG9y
ZGVyZWRDaGlsZHJlbiwgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIHRvdGFsUG9zaXRpdmVGbGV4
aWJpbGl0eSwgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNF
eHRlbnQpKSB7CisgICAgd2hpbGUgKGNvbXB1dGVOZXh0RmxleExpbmUoaXRlcmF0b3IsIG9yZGVy
ZWRDaGlsZHJlbiwgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIHRvdGFsUG9zaXRpdmVGbGV4aWJp
bGl0eSwgdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHksIG1pbk1heEFwcGxpZWRNYWlu
QXhpc0V4dGVudCkpIHsKICAgICAgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UgPSBj
b21wdXRlQXZhaWxhYmxlRnJlZVNwYWNlKHByZWZlcnJlZE1haW5BeGlzRXh0ZW50KTsKICAgICAg
ICAgRmxleFNpZ24gZmxleFNpZ24gPSAobWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50IDwgcHJl
ZmVycmVkTWFpbkF4aXNFeHRlbnQgKyBhdmFpbGFibGVGcmVlU3BhY2UpID8gUG9zaXRpdmVGbGV4
aWJpbGl0eSA6IE5lZ2F0aXZlRmxleGliaWxpdHk7CiAgICAgICAgIEluZmxleGlibGVGbGV4SXRl
bVNpemUgaW5mbGV4aWJsZUl0ZW1zOwogICAgICAgICBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiBj
aGlsZFNpemVzOwotICAgICAgICB3aGlsZSAoIXJlc29sdmVGbGV4aWJsZUxlbmd0aHMoZmxleFNp
Z24sIG9yZGVyZWRDaGlsZHJlbiwgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgaW5mbGV4aWJsZUl0ZW1zLCBjaGls
ZFNpemVzKSkgewotICAgICAgICAgICAgQVNTRVJUKHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSA+
PSAwICYmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSA+PSAwKTsKKyAgICAgICAgd2hpbGUgKCFy
ZXNvbHZlRmxleGlibGVMZW5ndGhzKGZsZXhTaWduLCBvcmRlcmVkQ2hpbGRyZW4sIGF2YWlsYWJs
ZUZyZWVTcGFjZSwgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5LCB0b3RhbFdlaWdodGVkTmVnYXRp
dmVGbGV4aWJpbGl0eSwgaW5mbGV4aWJsZUl0ZW1zLCBjaGlsZFNpemVzKSkgeworICAgICAgICAg
ICAgQVNTRVJUKHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSA+PSAwICYmIHRvdGFsV2VpZ2h0ZWRO
ZWdhdGl2ZUZsZXhpYmlsaXR5ID49IDApOwogICAgICAgICAgICAgQVNTRVJUKGluZmxleGlibGVJ
dGVtcy5zaXplKCkgPiAwKTsKICAgICAgICAgfQogCkBAIC04MDAsMTEgKzgwMSwxMSBAQCBMYXlv
dXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjphZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoUmVu
ZGVyQm94KiBjaGlsZCwgTGF5bwogICAgIHJldHVybiBjaGlsZFNpemU7CiB9CiAKLWJvb2wgUmVu
ZGVyRmxleGlibGVCb3g6OmNvbXB1dGVOZXh0RmxleExpbmUoRmxleE9yZGVySXRlcmF0b3ImIGl0
ZXJhdG9yLCBPcmRlcmVkRmxleEl0ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVuaXQm
IHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5
LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBMYXlvdXRVbml0JiBtaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQpCitib29sIFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlTmV4dEZs
ZXhMaW5lKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgT3JkZXJlZEZsZXhJdGVtTGlzdCYg
b3JkZXJlZENoaWxkcmVuLCBMYXlvdXRVbml0JiBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgZmxv
YXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0ZWROZWdhdGl2
ZUZsZXhpYmlsaXR5LCBMYXlvdXRVbml0JiBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpCiB7
CiAgICAgb3JkZXJlZENoaWxkcmVuLmNsZWFyKCk7CiAgICAgcHJlZmVycmVkTWFpbkF4aXNFeHRl
bnQgPSAwOwotICAgIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSA9IHRvdGFsTmVnYXRpdmVGbGV4
aWJpbGl0eSA9IDA7CisgICAgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5ID0gdG90YWxXZWlnaHRl
ZE5lZ2F0aXZlRmxleGliaWxpdHkgPSAwOwogICAgIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVu
dCA9IDA7CiAKICAgICBpZiAoIWl0ZXJhdG9yLmN1cnJlbnRDaGlsZCgpKQpAQCAtODI4LDcgKzgy
OSw3IEBAIGJvb2wgUmVuZGVyRmxleGlibGVCb3g6OmNvbXB1dGVOZXh0RmxleExpbmUoRmxleE9y
ZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBPcmRlcmVkCiAgICAgICAgIG9yZGVyZWRDaGlsZHJlbi5h
cHBlbmQoY2hpbGQpOwogICAgICAgICBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCArPSBjaGlsZE1h
aW5BeGlzTWFyZ2luQm94RXh0ZW50OwogICAgICAgICB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHkg
Kz0gY2hpbGQtPnN0eWxlKCktPnBvc2l0aXZlRmxleCgpOwotICAgICAgICB0b3RhbE5lZ2F0aXZl
RmxleGliaWxpdHkgKz0gY2hpbGQtPnN0eWxlKCktPm5lZ2F0aXZlRmxleCgpOworICAgICAgICB0
b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSArPSBjaGlsZC0+c3R5bGUoKS0+bmVnYXRp
dmVGbGV4KCkgKiBjaGlsZE1haW5BeGlzRXh0ZW50OwogCiAgICAgICAgIExheW91dFVuaXQgY2hp
bGRNaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRN
YXgoY2hpbGQsIGNoaWxkTWFpbkF4aXNFeHRlbnQsIGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0
ZW50KTsKICAgICAgICAgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50ICs9IGNoaWxkTWluTWF4
QXBwbGllZE1haW5BeGlzRXh0ZW50IC0gY2hpbGRNYWluQXhpc0V4dGVudCArIGNoaWxkTWFpbkF4
aXNNYXJnaW5Cb3hFeHRlbnQ7CkBAIC04MzYsMjAgKzgzNywyMSBAQCBib29sIFJlbmRlckZsZXhp
YmxlQm94Ojpjb21wdXRlTmV4dEZsZXhMaW5lKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwg
T3JkZXJlZAogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbmRlckZsZXhpYmxlQm94Ojpm
cmVlemVWaW9sYXRpb25zKGNvbnN0IFdURjo6VmVjdG9yPFZpb2xhdGlvbj4mIHZpb2xhdGlvbnMs
IExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4
aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZsZXhJ
dGVtU2l6ZSYgaW5mbGV4aWJsZUl0ZW1zKQordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6ZnJlZXpl
VmlvbGF0aW9ucyhjb25zdCBXVEY6OlZlY3RvcjxWaW9sYXRpb24+JiB2aW9sYXRpb25zLCBMYXlv
dXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxp
dHksIGZsb2F0JiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZs
ZXhJdGVtU2l6ZSYgaW5mbGV4aWJsZUl0ZW1zKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgdmlvbGF0aW9ucy5zaXplKCk7ICsraSkgewogICAgICAgICBSZW5kZXJCb3gqIGNoaWxkID0g
dmlvbGF0aW9uc1tpXS5jaGlsZDsKICAgICAgICAgTGF5b3V0VW5pdCBjaGlsZFNpemUgPSB2aW9s
YXRpb25zW2ldLmNoaWxkU2l6ZTsKLSAgICAgICAgYXZhaWxhYmxlRnJlZVNwYWNlIC09IGNoaWxk
U2l6ZSAtIHByZWZlcnJlZE1haW5BeGlzQ29udGVudEV4dGVudEZvckNoaWxkKGNoaWxkKTsKKyAg
ICAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRDaGlsZFNpemUgPSBwcmVmZXJyZWRNYWluQXhpc0Nv
bnRlbnRFeHRlbnRGb3JDaGlsZChjaGlsZCk7CisgICAgICAgIGF2YWlsYWJsZUZyZWVTcGFjZSAt
PSBjaGlsZFNpemUgLSBwcmVmZXJyZWRDaGlsZFNpemU7CiAgICAgICAgIHRvdGFsUG9zaXRpdmVG
bGV4aWJpbGl0eSAtPSBjaGlsZC0+c3R5bGUoKS0+cG9zaXRpdmVGbGV4KCk7Ci0gICAgICAgIHRv
dGFsTmVnYXRpdmVGbGV4aWJpbGl0eSAtPSBjaGlsZC0+c3R5bGUoKS0+bmVnYXRpdmVGbGV4KCk7
CisgICAgICAgIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5IC09IGNoaWxkLT5zdHls
ZSgpLT5uZWdhdGl2ZUZsZXgoKSAqIHByZWZlcnJlZENoaWxkU2l6ZTsKICAgICAgICAgaW5mbGV4
aWJsZUl0ZW1zLnNldChjaGlsZCwgY2hpbGRTaXplKTsKICAgICB9CiB9CiAKIC8vIFJldHVybnMg
dHJ1ZSBpZiB3ZSBzdWNjZXNzZnVsbHkgcmFuIHRoZSBhbGdvcml0aG0gYW5kIHNpemVkIHRoZSBm
bGV4IGl0ZW1zLgotYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxlTGVuZ3Ro
cyhGbGV4U2lnbiBmbGV4U2lnbiwgY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYgY2hpbGRyZW4s
IExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVTcGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4
aWJpbGl0eSwgZmxvYXQmIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZsZXhJ
dGVtU2l6ZSYgaW5mbGV4aWJsZUl0ZW1zLCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRT
aXplcykKK2Jvb2wgUmVuZGVyRmxleGlibGVCb3g6OnJlc29sdmVGbGV4aWJsZUxlbmd0aHMoRmxl
eFNpZ24gZmxleFNpZ24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3QmIGNoaWxkcmVuLCBMYXlv
dXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxp
dHksIGZsb2F0JiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZs
ZXhJdGVtU2l6ZSYgaW5mbGV4aWJsZUl0ZW1zLCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hp
bGRTaXplcykKIHsKICAgICBjaGlsZFNpemVzLmNsZWFyKCk7CiAgICAgTGF5b3V0VW5pdCBmbGV4
Ym94QXZhaWxhYmxlQ29udGVudEV4dGVudCA9IG1haW5BeGlzQ29udGVudEV4dGVudCgpOwpAQCAt
ODY5LDEwICs4NzEsMTAgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6cmVzb2x2ZUZsZXhpYmxl
TGVuZ3RocyhGbGV4U2lnbiBmbGV4U2lnbiwgY29uc3QgT3JkZXJlZEYKICAgICAgICAgZWxzZSB7
CiAgICAgICAgICAgICBMYXlvdXRVbml0IHByZWZlcnJlZENoaWxkU2l6ZSA9IHByZWZlcnJlZE1h
aW5BeGlzQ29udGVudEV4dGVudEZvckNoaWxkKGNoaWxkKTsKICAgICAgICAgICAgIExheW91dFVu
aXQgY2hpbGRTaXplID0gcHJlZmVycmVkQ2hpbGRTaXplOwotICAgICAgICAgICAgaWYgKGF2YWls
YWJsZUZyZWVTcGFjZSA+IDAgJiYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5ID4gMCAmJiBmbGV4
U2lnbiA9PSBQb3NpdGl2ZUZsZXhpYmlsaXR5KQorICAgICAgICAgICAgaWYgKGF2YWlsYWJsZUZy
ZWVTcGFjZSA+IDAgJiYgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5ID4gMCAmJiBmbGV4U2lnbiA9
PSBQb3NpdGl2ZUZsZXhpYmlsaXR5ICYmIGlzZmluaXRlKHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0
eSkpCiAgICAgICAgICAgICAgICAgY2hpbGRTaXplICs9IGxyb3VuZGYoYXZhaWxhYmxlRnJlZVNw
YWNlICogY2hpbGQtPnN0eWxlKCktPnBvc2l0aXZlRmxleCgpIC8gdG90YWxQb3NpdGl2ZUZsZXhp
YmlsaXR5KTsKLSAgICAgICAgICAgIGVsc2UgaWYgKGF2YWlsYWJsZUZyZWVTcGFjZSA8IDAgJiYg
dG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5ID4gMCAgJiYgZmxleFNpZ24gPT0gTmVnYXRpdmVGbGV4
aWJpbGl0eSkKLSAgICAgICAgICAgICAgICBjaGlsZFNpemUgKz0gbHJvdW5kZihhdmFpbGFibGVG
cmVlU3BhY2UgKiBjaGlsZC0+c3R5bGUoKS0+bmVnYXRpdmVGbGV4KCkgLyB0b3RhbE5lZ2F0aXZl
RmxleGliaWxpdHkpOworICAgICAgICAgICAgZWxzZSBpZiAoYXZhaWxhYmxlRnJlZVNwYWNlIDwg
MCAmJiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSA+IDAgJiYgZmxleFNpZ24gPT0g
TmVnYXRpdmVGbGV4aWJpbGl0eSAmJiBpc2Zpbml0ZSh0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4
aWJpbGl0eSkpCisgICAgICAgICAgICAgICAgY2hpbGRTaXplICs9IGxyb3VuZGYoYXZhaWxhYmxl
RnJlZVNwYWNlICogY2hpbGQtPnN0eWxlKCktPm5lZ2F0aXZlRmxleCgpICogcHJlZmVycmVkQ2hp
bGRTaXplIC8gdG90YWxXZWlnaHRlZE5lZ2F0aXZlRmxleGliaWxpdHkpOwogCiAgICAgICAgICAg
ICBMYXlvdXRVbml0IGFkanVzdGVkQ2hpbGRTaXplID0gYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5k
TWF4KGNoaWxkLCBjaGlsZFNpemUsIGZsZXhib3hBdmFpbGFibGVDb250ZW50RXh0ZW50KTsKICAg
ICAgICAgICAgIGNoaWxkU2l6ZXMuYXBwZW5kKGFkanVzdGVkQ2hpbGRTaXplKTsKQEAgLTg4OCw3
ICs4OTAsNyBAQCBib29sIFJlbmRlckZsZXhpYmxlQm94OjpyZXNvbHZlRmxleGlibGVMZW5ndGhz
KEZsZXhTaWduIGZsZXhTaWduLCBjb25zdCBPcmRlcmVkRgogICAgIH0KIAogICAgIGlmICh0b3Rh
bFZpb2xhdGlvbikKLSAgICAgICAgZnJlZXplVmlvbGF0aW9ucyh0b3RhbFZpb2xhdGlvbiA8IDAg
PyBtYXhWaW9sYXRpb25zIDogbWluVmlvbGF0aW9ucywgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3Rh
bFBvc2l0aXZlRmxleGliaWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwgaW5mbGV4aWJs
ZUl0ZW1zKTsKKyAgICAgICAgZnJlZXplVmlvbGF0aW9ucyh0b3RhbFZpb2xhdGlvbiA8IDAgPyBt
YXhWaW9sYXRpb25zIDogbWluVmlvbGF0aW9ucywgYXZhaWxhYmxlRnJlZVNwYWNlLCB0b3RhbFBv
c2l0aXZlRmxleGliaWxpdHksIHRvdGFsV2VpZ2h0ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBpbmZs
ZXhpYmxlSXRlbXMpOwogICAgIGVsc2UKICAgICAgICAgYXZhaWxhYmxlRnJlZVNwYWNlIC09IHVz
ZWRGcmVlU3BhY2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxl
Qm94LmgKaW5kZXggODM4M2E0NmI4ZWUxYzcxYzllNmNjZjA0OGVlZDJlYTMyOGVjZjk2My4uYWU2
MWQ2MzFmNjcyNGEyNDExZTFjZGUxM2MxODMyOTNhOGIxZGIyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTExMywxMSArMTEzLDExIEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhib29sIHJlbGF5
b3V0Q2hpbGRyZW4sIEZsZXhPcmRlckhhc2hTZXQmKTsKICAgICBMYXlvdXRVbml0IGxpbmVCcmVh
a0xlbmd0aCgpOwogICAgIExheW91dFVuaXQgYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJl
bmRlckJveCosIExheW91dFVuaXQgY2hpbGRTaXplLCBMYXlvdXRVbml0IGZsZXhib3hBdmFpbGFi
bGVDb250ZW50RXh0ZW50KTsKLSAgICBib29sIGNvbXB1dGVOZXh0RmxleExpbmUoRmxleE9yZGVy
SXRlcmF0b3ImLCBPcmRlcmVkRmxleEl0ZW1MaXN0JiBvcmRlcmVkQ2hpbGRyZW4sIExheW91dFVu
aXQmIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCBmbG9hdCYgdG90YWxQb3NpdGl2ZUZsZXhpYmls
aXR5LCBmbG9hdCYgdG90YWxOZWdhdGl2ZUZsZXhpYmlsaXR5LCBMYXlvdXRVbml0JiBtaW5NYXhB
cHBsaWVkTWFpbkF4aXNFeHRlbnQpOworICAgIGJvb2wgY29tcHV0ZU5leHRGbGV4TGluZShGbGV4
T3JkZXJJdGVyYXRvciYsIE9yZGVyZWRGbGV4SXRlbUxpc3QmIG9yZGVyZWRDaGlsZHJlbiwgTGF5
b3V0VW5pdCYgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxl
eGliaWxpdHksIGZsb2F0JiB0b3RhbFdlaWdodGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgTGF5b3V0
VW5pdCYgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50KTsKICAgICBMYXlvdXRVbml0IGNvbXB1
dGVBdmFpbGFibGVGcmVlU3BhY2UoTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCk7
CiAKLSAgICBib29sIHJlc29sdmVGbGV4aWJsZUxlbmd0aHMoRmxleFNpZ24sIGNvbnN0IE9yZGVy
ZWRGbGV4SXRlbUxpc3QmLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0
b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHks
IEluZmxleGlibGVGbGV4SXRlbVNpemUmLCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRT
aXplcyk7Ci0gICAgdm9pZCBmcmVlemVWaW9sYXRpb25zKGNvbnN0IFdURjo6VmVjdG9yPFZpb2xh
dGlvbj4mLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0
aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbE5lZ2F0aXZlRmxleGliaWxpdHksIEluZmxleGli
bGVGbGV4SXRlbVNpemUmKTsKKyAgICBib29sIHJlc29sdmVGbGV4aWJsZUxlbmd0aHMoRmxleFNp
Z24sIGNvbnN0IE9yZGVyZWRGbGV4SXRlbUxpc3QmLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVl
U3BhY2UsIGZsb2F0JiB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIGZsb2F0JiB0b3RhbFdlaWdo
dGVkTmVnYXRpdmVGbGV4aWJpbGl0eSwgSW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSYsIFdURjo6VmVj
dG9yPExheW91dFVuaXQ+JiBjaGlsZFNpemVzKTsKKyAgICB2b2lkIGZyZWV6ZVZpb2xhdGlvbnMo
Y29uc3QgV1RGOjpWZWN0b3I8VmlvbGF0aW9uPiYsIExheW91dFVuaXQmIGF2YWlsYWJsZUZyZWVT
cGFjZSwgZmxvYXQmIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgZmxvYXQmIHRvdGFsV2VpZ2h0
ZWROZWdhdGl2ZUZsZXhpYmlsaXR5LCBJbmZsZXhpYmxlRmxleEl0ZW1TaXplJik7CiAKICAgICB2
b2lkIHNldExvZ2ljYWxPdmVycmlkZVNpemUoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBj
aGlsZFByZWZlcnJlZFNpemUpOwogICAgIHZvaWQgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExh
eW91dChSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IG1haW5BeGlzT2Zmc2V0LCBMYXlvdXRV
bml0IGNyb3NzQXhpc09mZnNldCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTU1Yzg3OTA5ZmUxODllN2UyNDYxNGUyN2Ni
YzRlNWVmZjdmZmQ5YS4uOTExZTViNjdmMGMxZDMwNjMxOWMzN2I4ZGQ0NjdiYjAwMTJmYThjMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA1LTI1ICBUb255IENoYW5nICA8dG9ueUBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgaW1wbGVtZW50IG5ldyBuZWdhdGl2ZSBmbGV4aW5nIGFsZ29y
aXRobQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODY1
MjgKKworICAgICAgICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgICogY3NzMy9m
bGV4Ym94L2ZsZXgtYWxnb3JpdGhtLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBjc3MzL2ZsZXhi
b3gvZmxleC1hbGdvcml0aG0uaHRtbDoKKwogMjAxMi0wNS0yNSAgSmVzc2llIEJlcmxpbiAgPGpi
ZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBMYXlvdXRUZXN0J3MgZXZlbnRT
ZW5kZXIuYmVnaW5EcmFnV2l0aEZpbGVzIGludGVyZmFjZSBpbiB3aW5kb3dzIHBsYXRmb3JtCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxnb3JpdGhtLWV4cGVjdGVk
LnR4dAppbmRleCBkODk1YWU4M2JhZTNmMTJjOTVjOTdhZmQ0MGFhMTRlMGM3NTk1NDk3Li5iYjEw
MDQ2MmYzMWZiNTcxOWEyMWNiM2Q0ZGYwNzNmYzRlZmQ2ZGM3IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsZ29yaXRobS1leHBlY3RlZC50eHQKQEAgLTE2LDQg
KzE2LDEwIEBAIFBBU1MKIFBBU1MKIFBBU1MKIFBBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MK
K1BBU1MKK1BBU1MKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgt
YWxnb3JpdGhtLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0u
aHRtbAppbmRleCA2ZmZmY2Q3NjAwZjUwNTg1MGZjNDg4MmQ3ODdkMWVmMDU2OGM3MDUwLi5mOTlh
NDE0NGYxYmFiZjFkOWZkYmE1YTA2YjdhMGZkYmUxMjQ5NDZlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9j
c3MzL2ZsZXhib3gvZmxleC1hbGdvcml0aG0uaHRtbApAQCAtODYsNiArODYsMzkgQEAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIy
MDAiIHN0eWxlPSJ3aWR0aDogMjAwcHgiPjwvZGl2PgogPC9kaXY+CiAKKzxkaXYgc3R5bGU9ImRp
c3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEgMTAwcHgiPjwvZGl2PgorICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDUw
MHB4Ij48L2Rpdj4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSIzMDAiIHN0eWxlPSJ3aWR0
aDogMzAwcHgiPjwvZGl2PgorPC9kaXY+CisKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQt
ZmxleCIgY2xhc3M9ImZsZXhib3giPgorICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjUwIiBz
dHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEgMTAwcHgiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhwZWN0
ZWQtd2lkdGg9IjI1MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDUwMHB4OyBtYXJnaW4tcmln
aHQ6IDMwMHB4OyI+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiBzdHlsZT0iZGlzcGxheTogLXdlYmtp
dC1mbGV4IiBjbGFzcz0iZmxleGJveCI+CisgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iNTAi
IHN0eWxlPSItd2Via2l0LWZsZXg6IDEgMSAxMDBweCI+PC9kaXY+CisgIDxkaXYgZGF0YS1leHBl
Y3RlZC13aWR0aD0iNTUwIiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxIDEgNTAwcHg7IHBhZGRpbmct
bGVmdDogMzAwcHg7Ij48L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHN0eWxlPSJkaXNwbGF5OiAtd2Vi
a2l0LWZsZXgiIGNsYXNzPSJmbGV4Ym94Ij4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLXdpZHRoPSI1
MCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMSAxIDEwMHB4Ij48L2Rpdj4KKyAgPGRpdiBkYXRhLWV4
cGVjdGVkLXdpZHRoPSI1NTAiIHN0eWxlPSItd2Via2l0LWZsZXg6IDEgMSA1MDBweDsgYm9yZGVy
LWxlZnQ6IDIwMHB4IGRhc2hlZCBvcmFuZ2U7IGJvcmRlci1yaWdodDogMTAwcHggZGFzaGVkIG9y
YW5nZTsiPjwvZGl2PgorPC9kaXY+CisKKzwhLS0gVGVzdCBzb21lIG92ZXJmbG93IGNhc2VzLiAt
LT4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgor
ICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMCAx
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAwcHgiPjwvZGl2PgorICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMCAxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAwcHgiPjwvZGl2PgorPC9kaXY+
CisKKzxkaXYgc3R5bGU9ImRpc3BsYXk6IC13ZWJraXQtZmxleCIgY2xhc3M9ImZsZXhib3giPgor
ICA8ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMTAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIDAgNjAwcHgiPjwvZGl2PgorICA8
ZGl2IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjYwMCIgc3R5bGU9Ii13ZWJraXQtZmxleDogMCAxMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAgNjAwcHgiPjwvZGl2PgorICA8ZGl2
IGRhdGEtZXhwZWN0ZWQtd2lkdGg9IjAiIHN0eWxlPSItd2Via2l0LWZsZXg6IDEgMSAxMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDBweCI+PC9kaXY+Cis8L2Rpdj4KKwogPCEt
LSBUZXN0IGZsZXhpdGVtIGJvcmRlcnMuIC0tPgogPGRpdiBzdHlsZT0iZGlzcGxheTogLXdlYmtp
dC1mbGV4IiBjbGFzcz0iZmxleGJveCI+CiAgIDxkaXYgZGF0YS1leHBlY3RlZC13aWR0aD0iMjUw
IiBzdHlsZT0iLXdlYmtpdC1mbGV4OiAxOyBib3JkZXItbGVmdDogMTUwcHggc29saWQgYmxhY2si
PjwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>