<?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>93513</bug_id>
          
          <creation_ts>2012-08-08 13:24:39 -0700</creation_ts>
          <short_desc>Accumulating LayoutUnits with floats for determining block preferred width can lead to wrapping</short_desc>
          <delta_ts>2012-08-14 12:49:03 -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>http://developer.apple.com</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Levi Weintraub">leviw</reporter>
          <assigned_to name="Levi Weintraub">leviw</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>eae</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>690660</commentid>
    <comment_count>0</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-08 13:24:39 -0700</bug_when>
    <thetext>When computing inline preferred logical widths, we accumulate our children&apos;s widths using floating point numbers, but when adding the width of floating elements, we can truncate up to 1/60th of a pixel. We should be using the nearest larger float instead of the nearest smaller one. You can see the result of this wrapping in the top-nav bar on developer.apple.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690944</commentid>
    <comment_count>1</comment_count>
      <attachid>157338</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-08 16:56:38 -0700</bug_when>
    <thetext>Created attachment 157338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691586</commentid>
    <comment_count>2</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-09 10:50:18 -0700</bug_when>
    <thetext>Ping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691618</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-09 11:12:32 -0700</bug_when>
    <thetext>Interesting problem, but I think we might want to consider if we want to solve this instead by changing the fixed-point divisor to 64. By using a power of 2, it is not only much faster, but it means we will never loose precision when converting to float. 

From a API point of view it is just much less confusing if we can safely assume that float will be more precise than fixed points (for most of the used range anyway).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691619</commentid>
    <comment_count>4</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-09 11:23:07 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Interesting problem, but I think we might want to consider if we want to solve this instead by changing the fixed-point divisor to 64. By using a power of 2, it is not only much faster, but it means we will never loose precision when converting to float. 
&gt; 
&gt; From a API point of view it is just much less confusing if we can safely assume that float will be more precise than fixed points (for most of the used range anyway).

60 was used because it&apos;s easily dived by 2, 3, 4, 5, 6, and 10. I&apos;m not opposed to changing it, but we shouldn&apos;t write code that&apos;s dependent upon the divisor (it could be changed later), and I believe we&apos;d want to do some testing with 64 before settling on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691647</commentid>
    <comment_count>5</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-09 11:45:40 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; 60 was used because it&apos;s easily dived by 2, 3, 4, 5, 6, and 10. I&apos;m not opposed to changing it, but we shouldn&apos;t write code that&apos;s dependent upon the divisor (it could be changed later), and I believe we&apos;d want to do some testing with 64 before settling on it.

I only brought it up because this bug highlighted a consequence I had never considered before of using divisors that are not powers of 2, and I just don&apos;t like the fact that we might lose precision in places we didn&apos;t consider before.

If we want to keep the divisors, but want to ensure we never lose precision like that, another alternative could be get rid of float, but would either require fully enabling subpixel layout, or make fixed point available when explicitly used even without subpixel layout enabled.

Btw, it is not that I think there is anything wrong with your solution, this line of thinking it mostly to think of ways to avoid similar problems elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691672</commentid>
    <comment_count>6</comment_count>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-09 12:13:04 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; 60 was used because it&apos;s easily dived by 2, 3, 4, 5, 6, and 10. I&apos;m not opposed to changing it, but we shouldn&apos;t write code that&apos;s dependent upon the divisor (it could be changed later), and I believe we&apos;d want to do some testing with 64 before settling on it.
&gt; 
&gt; I only brought it up because this bug highlighted a consequence I had never considered before of using divisors that are not powers of 2, and I just don&apos;t like the fact that we might lose precision in places we didn&apos;t consider before.
&gt; 
&gt; If we want to keep the divisors, but want to ensure we never lose precision like that, another alternative could be get rid of float, but would either require fully enabling subpixel layout, or make fixed point available when explicitly used even without subpixel layout enabled.
&gt; 
&gt; Btw, it is not that I think there is anything wrong with your solution, this line of thinking it mostly to think of ways to avoid similar problems elsewhere.

Your thoughts are always appreciated, don&apos;t worry :) I just wanted to give background on the current value. We&apos;d considered other values, of course, and had particularly figured that 64 could be used for Mobile, where the performance is more critical.

Perhaps I&apos;m ignorant, but are you implying that we won&apos;t be subject to lost precision if we went with a power of two? It seems to me that when we&apos;re accumulating large numbers and switching between fixed and floating point we&apos;ll always be subject to lost precision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691870</commentid>
    <comment_count>7</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-08-09 14:40:40 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Perhaps I&apos;m ignorant, but are you implying that we won&apos;t be subject to lost precision if we went with a power of two? It seems to me that when we&apos;re accumulating large numbers and switching between fixed and floating point we&apos;ll always be subject to lost precision.

If we use a power of two divisor most numbers that can be represented by our layout units can also be represented accurately by floating point, because floating point always uses divisors of two. Floating point can on the other hand not represent division by 10 accurately, so our layout unit can currently represent 0.1 accurately, which is something even a double can not. Which is why we end up losing accuracy when converting from fixed point to floating point, even for ordinary size numbers.

Of course even if we switch to 64 instead of 60, there will be some numbers where fixed point and floating point doesn&apos;t match. Fixed point will have better accuracy at higher numbers right up till they overflows, while floating point will have increasingly worse accuracy at higher numbers at the benefit of not overflowing. So we could end up with similar problems like this one for very large numbers, but only in constructed laboratory cases I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694225</commentid>
    <comment_count>8</comment_count>
      <attachid>157338</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-13 16:52:54 -0700</bug_when>
    <thetext>Comment on attachment 157338
Patch

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

Looks fine.

&gt; Source/WebCore/rendering/RenderBlock.cpp:3750
&gt; +        // FIXME: LayoutUnit::epsilon is probably only necessary here due to lost precision elsewhere
&gt; +        while (logicalRightOffsetForLine(logicalTopOffset, logicalRightOffset, false, &amp;heightRemainingRight) - floatLogicalLeft + LayoutUnit::epsilon() &lt; floatLogicalWidth) {

How do we fix/track down this fixme?

&gt; Source/WebCore/rendering/RenderBlock.cpp:3765
&gt; +        // FIXME: LayoutUnit::epsilon is probably only necessary here due to lost precision elsewhere

Same question.  What&apos;s the plan for fixing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695145</commentid>
    <comment_count>9</comment_count>
      <attachid>158368</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-08-14 10:50:25 -0700</bug_when>
    <thetext>Created attachment 158368
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695274</commentid>
    <comment_count>10</comment_count>
      <attachid>158368</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 12:48:59 -0700</bug_when>
    <thetext>Comment on attachment 158368
Patch for landing

Clearing flags on attachment: 158368

Committed r125591: &lt;http://trac.webkit.org/changeset/125591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695275</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 12:49:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157338</attachid>
            <date>2012-08-08 16:56:38 -0700</date>
            <delta_ts>2012-08-14 10:50:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93513-20120808165612.patch</filename>
            <type>text/plain</type>
            <size>11537</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTExMSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA4LTA4ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRpbmcgTGF5
b3V0VW5pdHMgd2l0aCBmbG9hdHMgZm9yIGRldGVybWluaW5nIGJsb2NrIHByZWZlcnJlZCB3aWR0
aCBjYW4gbGVhZCB0byB3cmFwcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTdWItcGl4ZWwgdmFsdWVzIGZyb20gZmxvYXRzIGFyZSBzdWJqZWN0IHRv
IHNtYWxsIGxvc3NlcyBpbiBwcmVjaXNpb24gd2hlbiBhY2N1bXVsYXRlZCB3aXRoCisgICAgICAg
IGZsb2F0aW5nIHBvaW50IHZhbHVlcywgYXMgd2UgZG8gaW4gUmVuZGVyQmxvY2suIFRoaXMgcGF0
Y2ggYWRkcyBhIG5ldyBtZXRob2QgdG8gRnJhY3Rpb25hbExheW91dFVuaXQgLS0KKyAgICAgICAg
Y2VpbFRvRmxvYXQgLS0gd2hpY2ggZ3VhcmFudGVlcyB1cyBhIGZsb2F0aW5nIHBvaW50IHZhbHVl
IGF0IGxlYXN0IGFzIGJpZyBhcyBvdXIgb3JpZ2luYWwgTGF5b3V0VW5pdAorICAgICAgICB2YWx1
ZSwgYW5kIHVzZXMgaXQgYWxvbmcgd2l0aCBjZWlsZWRMYXlvdXRVbml0IHRvIGF2b2lkIHVuZGVy
cHJvdmlzaW9uaW5nIFJlbmRlckJsb2NrJ3MgcHJlZmVycmVkCisgICAgICAgIHdpZHRocyBkdWUg
dG8gbG9zdCBwcmVjaXNpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9zdWItcGl4ZWwvYmxvY2st
cHJlZmVycmVkLXdpZHRocy13aXRoLXN1Yi1waXhlbC1mbG9hdHMuaHRtbAorCisgICAgICAgICog
cGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYWN0
aW9uYWxMYXlvdXRVbml0OjpjZWlsVG9GbG9hdCk6IFJldHVybnMgYSBmbG9hdCB2YWx1ZSB0aGUg
c2FtZSBvciBsYXJnZXIgdGhhbiB0aGUKKyAgICAgICAgRnJhY3Rpb25hbExheW91dFVuaXQgdmFs
dWUuCisgICAgICAgIChGcmFjdGlvbmFsTGF5b3V0VW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFjdGlvbmFsTGF5b3V0VW5pdDo6ZXBzaWxvbik6IE5vdyByZXR1cm5zIDAgd2hlbiBzdWItcGl4
ZWwgaXMgZGlzYWJsZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxv
YXQpOiBBZGRpbmcgYSBMYXlvdXRVbml0OjplcHNpbG9uIGZ1ZGdlIGZhY3RvcgorICAgICAgICBm
b3IgZml0dGluZyBmbG9hdHMuIFRoaXMgaXMgcHJvYmFibHkgbmVjZXNzYXJ5IGR1ZSB0byBwcmVj
aXNpb24gYmVpbmcgbG9zdCBlbHNld2hlcmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9j
azo6Y29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBFbnN1cmUgbm8gcHJlY2lz
aW9uIGlzIGxvc3QgZHVlIHRvIGNvbnZlcnNpb24KKyAgICAgICAgd2hlbiBhY2N1bXVsYXRpbmcg
b3VyIG1pbi9tYXggd2lkdGggd2l0aCBmbG9hdHMuCisKIDIwMTItMDgtMDggIEJldGggRGFraW4g
IDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05MzM5MwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rp
b25hbExheW91dFVuaXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9G
cmFjdGlvbmFsTGF5b3V0VW5pdC5oCShyZXZpc2lvbiAxMjUwNTQpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9GcmFjdGlvbmFsTGF5b3V0VW5pdC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDYs
MTAgKzEwNiwyMCBAQCBwdWJsaWM6CiAgICAgaW50IHRvSW50KCkgY29uc3QgeyByZXR1cm4gbV92
YWx1ZSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KICAgICBmbG9hdCB0b0Zsb2F0KCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdmFsdWUpIC8ga0ZpeGVkUG9pbnREZW5v
bWluYXRvcjsgfQogICAgIGRvdWJsZSB0b0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19j
YXN0PGRvdWJsZT4obV92YWx1ZSkgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CisgICAgZmxv
YXQgY2VpbFRvRmxvYXQoKSBjb25zdAorICAgIHsKKyAgICAgICAgZmxvYXQgZmxvYXRWYWx1ZSA9
IHRvRmxvYXQoKTsKKyAgICAgICAgaWYgKHN0YXRpY19jYXN0PGludD4oZmxvYXRWYWx1ZSAqIGtG
aXhlZFBvaW50RGVub21pbmF0b3IpID09IG1fdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gZmxv
YXRWYWx1ZTsKKyAgICAgICAgaWYgKGZsb2F0VmFsdWUgPiAwKQorICAgICAgICAgICAgcmV0dXJu
IG5leHRhZnRlcmYoZmxvYXRWYWx1ZSwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgp
KTsKKyAgICAgICAgcmV0dXJuIG5leHRhZnRlcmYoZmxvYXRWYWx1ZSwgc3RkOjpudW1lcmljX2xp
bWl0czxmbG9hdD46Om1pbigpKTsKKyAgICB9CiAjZWxzZQogICAgIGludCB0b0ludCgpIGNvbnN0
IHsgcmV0dXJuIG1fdmFsdWU7IH0KICAgICBmbG9hdCB0b0Zsb2F0KCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8ZmxvYXQ+KG1fdmFsdWUpOyB9CiAgICAgZG91YmxlIHRvRG91YmxlKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihtX3ZhbHVlKTsgfQorICAgIGZsb2F0IGNl
aWxUb0Zsb2F0KCkgY29uc3QgeyByZXR1cm4gdG9GbG9hdCgpOyB9CiAjZW5kaWYKICAgICB1bnNp
Z25lZCB0b1Vuc2lnbmVkKCkgY29uc3QgeyBSRVBPUlRfT1ZFUkZMT1cobV92YWx1ZSA+PSAwKTsg
cmV0dXJuIHRvSW50KCk7IH0KIApAQCAtMTY5LDcgKzE3OSwxMSBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiB0b0ludCgpOwogICAgIH0KIAorI2lmIEVOQUJMRShTVUJQSVhFTF9MQVlPVVQpCiAg
ICAgc3RhdGljIGZsb2F0IGVwc2lsb24oKSB7IHJldHVybiAxLjBmIC8ga0ZpeGVkUG9pbnREZW5v
bWluYXRvcjsgfQorI2Vsc2UKKyAgICBzdGF0aWMgaW50IGVwc2lsb24oKSB7IHJldHVybiAwOyB9
CisjZW5kaWYKICAgICBzdGF0aWMgY29uc3QgRnJhY3Rpb25hbExheW91dFVuaXQgbWF4KCkKICAg
ICB7CiAgICAgICAgIEZyYWN0aW9uYWxMYXlvdXRVbml0IG07CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDEyNTA1NCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3NDYs
NyArMzc0Niw4IEBAIExheW91dFBvaW50IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbEwKICAg
ICAgICAgTGF5b3V0VW5pdCBoZWlnaHRSZW1haW5pbmdMZWZ0ID0gMTsKICAgICAgICAgTGF5b3V0
VW5pdCBoZWlnaHRSZW1haW5pbmdSaWdodCA9IDE7CiAgICAgICAgIGZsb2F0TG9naWNhbExlZnQg
PSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbFRvcE9mZnNldCwgbG9naWNhbExlZnRP
ZmZzZXQsIGZhbHNlLCAmaGVpZ2h0UmVtYWluaW5nTGVmdCk7Ci0gICAgICAgIHdoaWxlIChsb2dp
Y2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNl
dCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdSaWdodCkgLSBmbG9hdExvZ2ljYWxMZWZ0IDwgZmxv
YXRMb2dpY2FsV2lkdGgpIHsKKyAgICAgICAgLy8gRklYTUU6IExheW91dFVuaXQ6OmVwc2lsb24g
aXMgcHJvYmFibHkgb25seSBuZWNlc3NhcnkgaGVyZSBkdWUgdG8gbG9zdCBwcmVjaXNpb24gZWxz
ZXdoZXJlCisgICAgICAgIHdoaWxlIChsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxU
b3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdSaWdo
dCkgLSBmbG9hdExvZ2ljYWxMZWZ0ICsgTGF5b3V0VW5pdDo6ZXBzaWxvbigpIDwgZmxvYXRMb2dp
Y2FsV2lkdGgpIHsKICAgICAgICAgICAgIGxvZ2ljYWxUb3BPZmZzZXQgKz0gbWluKGhlaWdodFJl
bWFpbmluZ0xlZnQsIGhlaWdodFJlbWFpbmluZ1JpZ2h0KTsKICAgICAgICAgICAgIGZsb2F0TG9n
aWNhbExlZnQgPSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbFRvcE9mZnNldCwgbG9n
aWNhbExlZnRPZmZzZXQsIGZhbHNlLCAmaGVpZ2h0UmVtYWluaW5nTGVmdCk7CiAgICAgICAgICAg
ICBpZiAoaW5SZW5kZXJGbG93VGhyZWFkKCkpIHsKQEAgLTM3NjEsNyArMzc2Miw4IEBAIExheW91
dFBvaW50IFJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbEwKICAgICAgICAgTGF5b3V0VW5pdCBo
ZWlnaHRSZW1haW5pbmdMZWZ0ID0gMTsKICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHRSZW1haW5p
bmdSaWdodCA9IDE7CiAgICAgICAgIGZsb2F0TG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHRPZmZz
ZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNldCwgZmFsc2UsICZo
ZWlnaHRSZW1haW5pbmdSaWdodCk7Ci0gICAgICAgIHdoaWxlIChmbG9hdExvZ2ljYWxMZWZ0IC0g
bG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxMZWZ0T2Zm
c2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ0xlZnQpIDwgZmxvYXRMb2dpY2FsV2lkdGgpIHsK
KyAgICAgICAgLy8gRklYTUU6IExheW91dFVuaXQ6OmVwc2lsb24gaXMgcHJvYmFibHkgb25seSBu
ZWNlc3NhcnkgaGVyZSBkdWUgdG8gbG9zdCBwcmVjaXNpb24gZWxzZXdoZXJlCisgICAgICAgIHdo
aWxlIChmbG9hdExvZ2ljYWxMZWZ0IC0gbG9naWNhbExlZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxU
b3BPZmZzZXQsIGxvZ2ljYWxMZWZ0T2Zmc2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ0xlZnQp
ICsgTGF5b3V0VW5pdDo6ZXBzaWxvbigpIDwgZmxvYXRMb2dpY2FsV2lkdGgpIHsKICAgICAgICAg
ICAgIGxvZ2ljYWxUb3BPZmZzZXQgKz0gbWluKGhlaWdodFJlbWFpbmluZ0xlZnQsIGhlaWdodFJl
bWFpbmluZ1JpZ2h0KTsKICAgICAgICAgICAgIGZsb2F0TG9naWNhbExlZnQgPSBsb2dpY2FsUmln
aHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNldCwgZmFs
c2UsICZoZWlnaHRSZW1haW5pbmdSaWdodCk7CiAgICAgICAgICAgICBpZiAoaW5SZW5kZXJGbG93
VGhyZWFkKCkpIHsKQEAgLTU3MTYsMTEgKzU3MTgsMTEgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29t
cHV0ZUlubGluZVByZWZlcnJlZAogICAgICAgICAgICAgICAgICAgICBMZW5ndGggc3RhcnRNYXJn
aW4gPSBjaGlsZFN0eWxlLT5tYXJnaW5TdGFydCgpOwogICAgICAgICAgICAgICAgICAgICBMZW5n
dGggZW5kTWFyZ2luID0gY2hpbGRTdHlsZS0+bWFyZ2luRW5kKCk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzdGFydE1hcmdpbi5pc0ZpeGVkKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBt
YXJnaW5zICs9IHN0YXJ0TWFyZ2luLnZhbHVlKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBt
YXJnaW5zICs9IGNlaWxlZExheW91dFVuaXQoc3RhcnRNYXJnaW4udmFsdWUoKSk7CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChlbmRNYXJnaW4uaXNGaXhlZCgpKQotICAgICAgICAgICAgICAgICAg
ICAgICAgbWFyZ2lucyArPSBlbmRNYXJnaW4udmFsdWUoKTsKLSAgICAgICAgICAgICAgICAgICAg
Y2hpbGRNaW4gKz0gbWFyZ2luczsKLSAgICAgICAgICAgICAgICAgICAgY2hpbGRNYXggKz0gbWFy
Z2luczsKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbnMgKz0gY2VpbGVkTGF5b3V0VW5p
dChlbmRNYXJnaW4udmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkTWluICs9IG1h
cmdpbnMuY2VpbFRvRmxvYXQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRNYXggKz0gbWFy
Z2lucy5jZWlsVG9GbG9hdCgpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIApA
QCAtNTcyOCw4ICs1NzMwLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUlubGluZVByZWZl
cnJlZAogICAgICAgICAgICAgICAgIC8vIENhc2UgKDIpLiBJbmxpbmUgcmVwbGFjZWQgZWxlbWVu
dHMgYW5kIGZsb2F0cy4KICAgICAgICAgICAgICAgICAvLyBHbyBhaGVhZCBhbmQgdGVybWluYXRl
IHRoZSBjdXJyZW50IGxpbmUgYXMgZmFyIGFzCiAgICAgICAgICAgICAgICAgLy8gbWlud2lkdGgg
aXMgY29uY2VybmVkLgotICAgICAgICAgICAgICAgIGNoaWxkTWluICs9IGNoaWxkLT5taW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgICAgICAgICBjaGlsZE1heCArPSBjaGlsZC0+
bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCk7CisgICAgICAgICAgICAgICAgY2hpbGRNaW4gKz0g
Y2hpbGQtPm1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpLmNlaWxUb0Zsb2F0KCk7CisgICAgICAg
ICAgICAgICAgY2hpbGRNYXggKz0gY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpLmNl
aWxUb0Zsb2F0KCk7CiAKICAgICAgICAgICAgICAgICBib29sIGNsZWFyUHJldmlvdXNGbG9hdDsK
ICAgICAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzRmxvYXRpbmcoKSkgewpAQCAtNTc1NiwxMSAr
NTc1OCwxMSBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5lUHJlZmVycmVkCiAgICAg
ICAgICAgICAgICAgTGF5b3V0VW5pdCB0aSA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKCFhZGRl
ZFRleHRJbmRlbnQpIHsKICAgICAgICAgICAgICAgICAgICAgdGkgPSB0ZXh0SW5kZW50OwotICAg
ICAgICAgICAgICAgICAgICBjaGlsZE1pbiArPSB0aTsKLSAgICAgICAgICAgICAgICAgICAgY2hp
bGRNYXggKz0gdGk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkTWluICs9IHRpLmNlaWxUb0Zs
b2F0KCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9IHRpLmNlaWxUb0Zsb2F0KCk7
CiAKICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTWluIDwgMCkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIHRleHRJbmRlbnQgPSBjaGlsZE1pbjsKKyAgICAgICAgICAgICAgICAgICAgICAg
IHRleHRJbmRlbnQgPSBjZWlsZWRMYXlvdXRVbml0KGNoaWxkTWluKTsKICAgICAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWRUZXh0SW5kZW50ID0gdHJ1
ZTsKICAgICAgICAgICAgICAgICB9CkBAIC01ODI4LDExICs1ODMwLDE0IEBAIHZvaWQgUmVuZGVy
QmxvY2s6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWQKICAgICAgICAgICAgICAgICAgICAgdHJhaWxp
bmdTcGFjZUNoaWxkID0gMDsKIAogICAgICAgICAgICAgICAgIC8vIEFkZCBpbiB0ZXh0LWluZGVu
dC4gIFRoaXMgaXMgYWRkZWQgaW4gb25seSBvbmNlLgotICAgICAgICAgICAgICAgIExheW91dFVu
aXQgdGkgPSAwOworICAgICAgICAgICAgICAgIGZsb2F0IHRpID0gMDsKICAgICAgICAgICAgICAg
ICBpZiAoIWFkZGVkVGV4dEluZGVudCkgewotICAgICAgICAgICAgICAgICAgICB0aSA9IHRleHRJ
bmRlbnQ7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTWluKz10aTsgYmVnaW5NaW4gKz0gdGk7
Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTWF4Kz10aTsgYmVnaW5NYXggKz0gdGk7CisgICAg
ICAgICAgICAgICAgICAgIHRpID0gdGV4dEluZGVudC5jZWlsVG9GbG9hdCgpOworICAgICAgICAg
ICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRNaW4gKz0gdGk7CisgICAgICAg
ICAgICAgICAgICAgIGNoaWxkTWF4ICs9IHRpOworICAgICAgICAgICAgICAgICAgICBiZWdpbk1p
biArPSB0aTsKKyAgICAgICAgICAgICAgICAgICAgYmVnaW5NYXggKz0gdGk7CiAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICBpZiAoY2hpbGRNaW4gPCAwKQogICAgICAg
ICAgICAgICAgICAgICAgICAgdGV4dEluZGVudCA9IGNoaWxkTWluOwpJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTI1MTExKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTUgQEAKKzIwMTItMDgtMDggIExldmkgV2VpbnRyYXViICA8bGV2aXdAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEFjY3VtdWxhdGluZyBMYXlvdXRVbml0cyB3aXRoIGZsb2F0cyBmb3Ig
ZGV0ZXJtaW5pbmcgYmxvY2sgcHJlZmVycmVkIHdpZHRoIGNhbiBsZWFkIHRvIHdyYXBwaW5nCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzUxMworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuc3VyaW5nIGZs
b2F0cyB3aXRoIHN1Yi1waXhlbCB2YWx1ZXMgZG9uJ3QgdW5uZWNlc3NhcmlseSB3cmFwLgorCisg
ICAgICAgICogZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJlZmVycmVkLXdpZHRocy13aXRoLXN1Yi1w
aXhlbC1mbG9hdHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3N1Yi1waXhl
bC9ibG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3ViLXBpeGVsLWZsb2F0cy5odG1sOiBBZGRl
ZC4KKwogMjAxMi0wOC0wOCAgUm9nZXIgRm9uZyAgPHJvZ2VyX2ZvbmdAYXBwbGUuY29tPgogCiAg
ICAgICAgIGNzczMvY2FsYy90cmFuc2l0aW9ucy1kZXBlbmRlbnQuaHRtbCB3YXMgY2F1c2luZyBj
c3MzL2NhbGMvdHJhbnNpdGlvbnMuaHRtbCB0byBmYWlsCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L3N1Yi1waXhlbC9ibG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3ViLXBpeGVsLWZsb2F0cy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvYmxv
Y2stcHJlZmVycmVkLXdpZHRocy13aXRoLXN1Yi1waXhlbC1mbG9hdHMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJlZmVycmVk
LXdpZHRocy13aXRoLXN1Yi1waXhlbC1mbG9hdHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDkgQEAKK1N1cHBvcnQKK01lbWJlciBDZW50ZXIKK1RoaXMgdGVzdHMgdGhhdCB3
ZSBkb24ndCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVyZSBvbiByZWxheW91dCBvZiBuZXN0ZWQg
cG9zaXRpb25lZCBlbGVtZW50cy4gVGhpcyB0ZXN0IHBhc3MgaWYgd2UgZG9uJ3QgY2F1c2UgYW4g
YXNzZXJ0aW9uIGZhaWx1cmUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNT
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdXBwb3J0Iikub2Zmc2V0VG9wIGlzIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJtZW1iZXJjZW50ZXIiKS5vZmZzZXRUb3AKKwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJlZmVycmVkLXdpZHRocy13aXRoLXN1Yi1waXhl
bC1mbG9hdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9i
bG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3ViLXBpeGVsLWZsb2F0cy5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJlZmVycmVkLXdpZHRo
cy13aXRoLXN1Yi1waXhlbC1mbG9hdHMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBA
QAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3JlbGF0
aXZlQ29udGFpbmVyIHsgcG9zaXRpb246cmVsYXRpdmU7IHdpZHRoOjk4MHB4OyBoZWlnaHQ6NThw
eDsgbWFyZ2luOjE4cHggYXV0byAwOyB6LWluZGV4Ojk5OTsgZm9udC1zaXplOjEycHg7IH0KKyNy
ZWxhdGl2ZUNvbnRhaW5lciB1bCB7IHBvc2l0aW9uOmFic29sdXRlOyByaWdodDoyMDBweDsgdG9w
OjFweDsgIG1hcmdpbjowOyB9CisjcmVsYXRpdmVDb250YWluZXIgdWwgbGkgeyBkaXNwbGF5Omlu
bGluZTsgZmxvYXQ6bGVmdDsgbWFyZ2luOjAgMCAwIDIuOGVtOyBiYWNrZ3JvdW5kLWNvbG9yOiBn
cmVlbjt9CisjcmVsYXRpdmVDb250YWluZXIgdWwgbGkgYSB7IGRpc3BsYXk6YmxvY2s7IGNvbG9y
OiMzMzM7IHRleHQtZGVjb3JhdGlvbjpub25lOyBwYWRkaW5nOi4zZW0gMCAuM2VtIDVweDsgdGV4
dC1zaGFkb3c6IDAgMXB4IDAgI2ZmZjsgbGluZS1oZWlnaHQ6MThweDsgfQorPC9zdHlsZT4JCis8
L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9InJlbGF0aXZlQ29udGFpbmVyIj4KKyAgPHVsPgorICAg
IDxsaSBpZD0ic3VwcG9ydCI+PGEgaHJlZj0iIyI+U3VwcG9ydDwvYT48L2xpPgorICAgIDxsaSBp
ZD0ibWVtYmVyY2VudGVyIj48YSBocmVmPSIjIj5NZW1iZXIgQ2VudGVyPC9hPjwvbGk+CisgPC91
bD4KKzwvZGl2PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHdlIGRvbid0IGNh
dXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlIG9uIHJlbGF5b3V0IG9mIG5lc3RlZCBwb3NpdGlvbmVk
IGVsZW1lbnRzLiBUaGlzIHRlc3QgcGFzcyBpZiB3ZSBkb24ndCBjYXVzZSBhbiBhc3NlcnRpb24g
ZmFpbHVyZS4iKTsKKworc2hvdWxkQmUoJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJzdXBwb3J0
Iikub2Zmc2V0VG9wJywgJ2RvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJtZW1iZXJjZW50ZXIiKS5v
ZmZzZXRUb3AnKTsKKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCWRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJyZWxhdGl2ZUNvbnRhaW5lciIpLmRpc3BsYXkgPSAnbm9uZSc7CisKKzwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158368</attachid>
            <date>2012-08-14 10:50:25 -0700</date>
            <delta_ts>2012-08-14 12:48:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-93513-20120814104952.patch</filename>
            <type>text/plain</type>
            <size>11692</size>
            <attacher name="Levi Weintraub">leviw</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTU3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA4LTE0ICBMZXZpIFdl
aW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1bXVsYXRpbmcgTGF5
b3V0VW5pdHMgd2l0aCBmbG9hdHMgZm9yIGRldGVybWluaW5nIGJsb2NrIHByZWZlcnJlZCB3aWR0
aCBjYW4gbGVhZCB0byB3cmFwcGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTM1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4K
KworICAgICAgICBTdWItcGl4ZWwgdmFsdWVzIGZyb20gZmxvYXRzIGFyZSBzdWJqZWN0IHRvIHNt
YWxsIGxvc3NlcyBpbiBwcmVjaXNpb24gd2hlbiBhY2N1bXVsYXRlZCB3aXRoCisgICAgICAgIGZs
b2F0aW5nIHBvaW50IHZhbHVlcywgYXMgd2UgZG8gaW4gUmVuZGVyQmxvY2suIFRoaXMgcGF0Y2gg
YWRkcyBhIG5ldyBtZXRob2QgdG8gRnJhY3Rpb25hbExheW91dFVuaXQgLS0KKyAgICAgICAgY2Vp
bFRvRmxvYXQgLS0gd2hpY2ggZ3VhcmFudGVlcyB1cyBhIGZsb2F0aW5nIHBvaW50IHZhbHVlIGF0
IGxlYXN0IGFzIGJpZyBhcyBvdXIgb3JpZ2luYWwgTGF5b3V0VW5pdAorICAgICAgICB2YWx1ZSwg
YW5kIHVzZXMgaXQgYWxvbmcgd2l0aCBjZWlsZWRMYXlvdXRVbml0IHRvIGF2b2lkIHVuZGVycHJv
dmlzaW9uaW5nIFJlbmRlckJsb2NrJ3MgcHJlZmVycmVkCisgICAgICAgIHdpZHRocyBkdWUgdG8g
bG9zdCBwcmVjaXNpb24uCisKKyAgICAgICAgVGVzdDogZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJl
ZmVycmVkLXdpZHRocy13aXRoLXN1Yi1waXhlbC1mbG9hdHMuaHRtbAorCisgICAgICAgICogcGxh
dGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYWN0aW9u
YWxMYXlvdXRVbml0OjpjZWlsVG9GbG9hdCk6IFJldHVybnMgYSBmbG9hdCB2YWx1ZSB0aGUgc2Ft
ZSBvciBsYXJnZXIgdGhhbiB0aGUKKyAgICAgICAgRnJhY3Rpb25hbExheW91dFVuaXQgdmFsdWUu
CisgICAgICAgIChGcmFjdGlvbmFsTGF5b3V0VW5pdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFj
dGlvbmFsTGF5b3V0VW5pdDo6ZXBzaWxvbik6IE5vdyByZXR1cm5zIDAgd2hlbiBzdWItcGl4ZWwg
aXMgZGlzYWJsZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjb21wdXRlTG9naWNhbExvY2F0aW9uRm9yRmxvYXQp
OiBBZGRpbmcgYSBMYXlvdXRVbml0OjplcHNpbG9uIGZ1ZGdlIGZhY3RvcgorICAgICAgICBmb3Ig
Zml0dGluZyBmbG9hdHMuIFRoaXMgaXMgcHJvYmFibHkgbmVjZXNzYXJ5IGR1ZSB0byBwcmVjaXNp
b24gYmVpbmcgbG9zdCBlbHNld2hlcmUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
Y29tcHV0ZUlubGluZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOiBFbnN1cmUgbm8gcHJlY2lzaW9u
IGlzIGxvc3QgZHVlIHRvIGNvbnZlcnNpb24KKyAgICAgICAgd2hlbiBhY2N1bXVsYXRpbmcgb3Vy
IG1pbi9tYXggd2lkdGggd2l0aCBmbG9hdHMuCisKIDIwMTItMDgtMTQgIEFudG9pbmUgTGFib3Vy
ICA8cGltYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gcmFjZSBiZXR3ZWVu
IENDTGF5ZXJUcmVlSG9zdEltcGw6OnJlbGVhc2VDb250ZW50c1RleHR1cmVzIGFuZCBDQ1RocmVh
ZFByb3h5OjpiZWdpbkZyYW1lQ29tcGxldGVPbkltcGxUaHJlYWQKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0ZyYWN0aW9uYWxMYXlvdXRVbml0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaAkocmV2aXNpb24gMTI1NTc3
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRnJhY3Rpb25hbExheW91dFVuaXQuaAkod29y
a2luZyBjb3B5KQpAQCAtMTE0LDEwICsxMTQsMjAgQEAgcHVibGljOgogICAgIGludCB0b0ludCgp
IGNvbnN0IHsgcmV0dXJuIG1fdmFsdWUgLyBrRml4ZWRQb2ludERlbm9taW5hdG9yOyB9CiAgICAg
ZmxvYXQgdG9GbG9hdCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX3ZhbHVl
KSAvIGtGaXhlZFBvaW50RGVub21pbmF0b3I7IH0KICAgICBkb3VibGUgdG9Eb3VibGUoKSBjb25z
dCB7IHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG1fdmFsdWUpIC8ga0ZpeGVkUG9pbnREZW5v
bWluYXRvcjsgfQorICAgIGZsb2F0IGNlaWxUb0Zsb2F0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IGZsb2F0IGZsb2F0VmFsdWUgPSB0b0Zsb2F0KCk7CisgICAgICAgIGlmIChzdGF0aWNfY2FzdDxp
bnQ+KGZsb2F0VmFsdWUgKiBrRml4ZWRQb2ludERlbm9taW5hdG9yKSA9PSBtX3ZhbHVlKQorICAg
ICAgICAgICAgcmV0dXJuIGZsb2F0VmFsdWU7CisgICAgICAgIGlmIChmbG9hdFZhbHVlID4gMCkK
KyAgICAgICAgICAgIHJldHVybiBuZXh0YWZ0ZXJmKGZsb2F0VmFsdWUsIHN0ZDo6bnVtZXJpY19s
aW1pdHM8ZmxvYXQ+OjptYXgoKSk7CisgICAgICAgIHJldHVybiBuZXh0YWZ0ZXJmKGZsb2F0VmFs
dWUsIHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptaW4oKSk7CisgICAgfQogI2Vsc2UKICAg
ICBpbnQgdG9JbnQoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVlOyB9CiAgICAgZmxvYXQgdG9GbG9h
dCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihtX3ZhbHVlKTsgfQogICAgIGRv
dWJsZSB0b0RvdWJsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obV92YWx1
ZSk7IH0KKyAgICBmbG9hdCBjZWlsVG9GbG9hdCgpIGNvbnN0IHsgcmV0dXJuIHRvRmxvYXQoKTsg
fQogI2VuZGlmCiAgICAgdW5zaWduZWQgdG9VbnNpZ25lZCgpIGNvbnN0IHsgUkVQT1JUX09WRVJG
TE9XKG1fdmFsdWUgPj0gMCk7IHJldHVybiB0b0ludCgpOyB9CiAKQEAgLTE4Myw3ICsxOTMsMTEg
QEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogCisjaWYgRU5BQkxFKFNVQlBJWEVMX0xBWU9VVCkK
ICAgICBzdGF0aWMgZmxvYXQgZXBzaWxvbigpIHsgcmV0dXJuIDEuMGYgLyBrRml4ZWRQb2ludERl
bm9taW5hdG9yOyB9CisjZWxzZQorICAgIHN0YXRpYyBpbnQgZXBzaWxvbigpIHsgcmV0dXJuIDA7
IH0KKyNlbmRpZgogICAgIHN0YXRpYyBjb25zdCBGcmFjdGlvbmFsTGF5b3V0VW5pdCBtYXgoKQog
ICAgIHsKICAgICAgICAgRnJhY3Rpb25hbExheW91dFVuaXQgbTsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gMTI1NTc3KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgy
Niw3ICszODI2LDggQEAgTGF5b3V0UG9pbnQgUmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsTAog
ICAgICAgICBMYXlvdXRVbml0IGhlaWdodFJlbWFpbmluZ0xlZnQgPSAxOwogICAgICAgICBMYXlv
dXRVbml0IGhlaWdodFJlbWFpbmluZ1JpZ2h0ID0gMTsKICAgICAgICAgZmxvYXRMb2dpY2FsTGVm
dCA9IGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsVG9wT2Zmc2V0LCBsb2dpY2FsTGVm
dE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdMZWZ0KTsKLSAgICAgICAgd2hpbGUgKGxv
Z2ljYWxSaWdodE9mZnNldEZvckxpbmUobG9naWNhbFRvcE9mZnNldCwgbG9naWNhbFJpZ2h0T2Zm
c2V0LCBmYWxzZSwgJmhlaWdodFJlbWFpbmluZ1JpZ2h0KSAtIGZsb2F0TG9naWNhbExlZnQgPCBm
bG9hdExvZ2ljYWxXaWR0aCkgeworICAgICAgICAvLyBGSVhNRTogTGF5b3V0VW5pdDo6ZXBzaWxv
biBpcyBwcm9iYWJseSBvbmx5IG5lY2Vzc2FyeSBoZXJlIGR1ZSB0byBsb3N0IHByZWNpc2lvbiBl
bHNld2hlcmUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0MDAwCisg
ICAgICAgIHdoaWxlIChsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQs
IGxvZ2ljYWxSaWdodE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdSaWdodCkgLSBmbG9h
dExvZ2ljYWxMZWZ0ICsgTGF5b3V0VW5pdDo6ZXBzaWxvbigpIDwgZmxvYXRMb2dpY2FsV2lkdGgp
IHsKICAgICAgICAgICAgIGxvZ2ljYWxUb3BPZmZzZXQgKz0gbWluKGhlaWdodFJlbWFpbmluZ0xl
ZnQsIGhlaWdodFJlbWFpbmluZ1JpZ2h0KTsKICAgICAgICAgICAgIGZsb2F0TG9naWNhbExlZnQg
PSBsb2dpY2FsTGVmdE9mZnNldEZvckxpbmUobG9naWNhbFRvcE9mZnNldCwgbG9naWNhbExlZnRP
ZmZzZXQsIGZhbHNlLCAmaGVpZ2h0UmVtYWluaW5nTGVmdCk7CiAgICAgICAgICAgICBpZiAoaW5S
ZW5kZXJGbG93VGhyZWFkKCkpIHsKQEAgLTM4NDEsNyArMzg0Miw4IEBAIExheW91dFBvaW50IFJl
bmRlckJsb2NrOjpjb21wdXRlTG9naWNhbEwKICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHRSZW1h
aW5pbmdMZWZ0ID0gMTsKICAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHRSZW1haW5pbmdSaWdodCA9
IDE7CiAgICAgICAgIGZsb2F0TG9naWNhbExlZnQgPSBsb2dpY2FsUmlnaHRPZmZzZXRGb3JMaW5l
KGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxSaWdodE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1h
aW5pbmdSaWdodCk7Ci0gICAgICAgIHdoaWxlIChmbG9hdExvZ2ljYWxMZWZ0IC0gbG9naWNhbExl
ZnRPZmZzZXRGb3JMaW5lKGxvZ2ljYWxUb3BPZmZzZXQsIGxvZ2ljYWxMZWZ0T2Zmc2V0LCBmYWxz
ZSwgJmhlaWdodFJlbWFpbmluZ0xlZnQpIDwgZmxvYXRMb2dpY2FsV2lkdGgpIHsKKyAgICAgICAg
Ly8gRklYTUU6IExheW91dFVuaXQ6OmVwc2lsb24gaXMgcHJvYmFibHkgb25seSBuZWNlc3Nhcnkg
aGVyZSBkdWUgdG8gbG9zdCBwcmVjaXNpb24gZWxzZXdoZXJlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD05NDAwMAorICAgICAgICB3aGlsZSAoZmxvYXRMb2dpY2FsTGVm
dCAtIGxvZ2ljYWxMZWZ0T2Zmc2V0Rm9yTGluZShsb2dpY2FsVG9wT2Zmc2V0LCBsb2dpY2FsTGVm
dE9mZnNldCwgZmFsc2UsICZoZWlnaHRSZW1haW5pbmdMZWZ0KSArIExheW91dFVuaXQ6OmVwc2ls
b24oKSA8IGZsb2F0TG9naWNhbFdpZHRoKSB7CiAgICAgICAgICAgICBsb2dpY2FsVG9wT2Zmc2V0
ICs9IG1pbihoZWlnaHRSZW1haW5pbmdMZWZ0LCBoZWlnaHRSZW1haW5pbmdSaWdodCk7CiAgICAg
ICAgICAgICBmbG9hdExvZ2ljYWxMZWZ0ID0gbG9naWNhbFJpZ2h0T2Zmc2V0Rm9yTGluZShsb2dp
Y2FsVG9wT2Zmc2V0LCBsb2dpY2FsUmlnaHRPZmZzZXQsIGZhbHNlLCAmaGVpZ2h0UmVtYWluaW5n
UmlnaHQpOwogICAgICAgICAgICAgaWYgKGluUmVuZGVyRmxvd1RocmVhZCgpKSB7CkBAIC01NzUx
LDExICs1NzUzLDExIEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWQK
ICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoIHN0YXJ0TWFyZ2luID0gY2hpbGRTdHlsZS0+bWFy
Z2luU3RhcnQoKTsKICAgICAgICAgICAgICAgICAgICAgTGVuZ3RoIGVuZE1hcmdpbiA9IGNoaWxk
U3R5bGUtPm1hcmdpbkVuZCgpOwogICAgICAgICAgICAgICAgICAgICBpZiAoc3RhcnRNYXJnaW4u
aXNGaXhlZCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2lucyArPSBzdGFydE1hcmdp
bi52YWx1ZSgpOworICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2lucyArPSBjZWlsZWRMYXlv
dXRVbml0KHN0YXJ0TWFyZ2luLnZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICBpZiAoZW5k
TWFyZ2luLmlzRml4ZWQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbnMgKz0gZW5k
TWFyZ2luLnZhbHVlKCk7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTWluICs9IG1hcmdpbnM7
Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9IG1hcmdpbnM7CisgICAgICAgICAgICAg
ICAgICAgICAgICBtYXJnaW5zICs9IGNlaWxlZExheW91dFVuaXQoZW5kTWFyZ2luLnZhbHVlKCkp
OworICAgICAgICAgICAgICAgICAgICBjaGlsZE1pbiArPSBtYXJnaW5zLmNlaWxUb0Zsb2F0KCk7
CisgICAgICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9IG1hcmdpbnMuY2VpbFRvRmxvYXQoKTsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKQEAgLTU3NjMsOCArNTc2NSw4IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1dGVJbmxpbmVQcmVmZXJyZWQKICAgICAgICAgICAgICAg
ICAvLyBDYXNlICgyKS4gSW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzIGFuZCBmbG9hdHMuCiAgICAg
ICAgICAgICAgICAgLy8gR28gYWhlYWQgYW5kIHRlcm1pbmF0ZSB0aGUgY3VycmVudCBsaW5lIGFz
IGZhciBhcwogICAgICAgICAgICAgICAgIC8vIG1pbndpZHRoIGlzIGNvbmNlcm5lZC4KLSAgICAg
ICAgICAgICAgICBjaGlsZE1pbiArPSBjaGlsZC0+bWluUHJlZmVycmVkTG9naWNhbFdpZHRoKCk7
Ci0gICAgICAgICAgICAgICAgY2hpbGRNYXggKz0gY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxX
aWR0aCgpOworICAgICAgICAgICAgICAgIGNoaWxkTWluICs9IGNoaWxkLT5taW5QcmVmZXJyZWRM
b2dpY2FsV2lkdGgoKS5jZWlsVG9GbG9hdCgpOworICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9
IGNoaWxkLT5tYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKS5jZWlsVG9GbG9hdCgpOwogCiAgICAg
ICAgICAgICAgICAgYm9vbCBjbGVhclByZXZpb3VzRmxvYXQ7CiAgICAgICAgICAgICAgICAgaWYg
KGNoaWxkLT5pc0Zsb2F0aW5nKCkpIHsKQEAgLTU3OTEsMTEgKzU3OTMsMTEgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6Y29tcHV0ZUlubGluZVByZWZlcnJlZAogICAgICAgICAgICAgICAgIExheW91dFVu
aXQgdGkgPSAwOwogICAgICAgICAgICAgICAgIGlmICghYWRkZWRUZXh0SW5kZW50KSB7CiAgICAg
ICAgICAgICAgICAgICAgIHRpID0gdGV4dEluZGVudDsKLSAgICAgICAgICAgICAgICAgICAgY2hp
bGRNaW4gKz0gdGk7Ci0gICAgICAgICAgICAgICAgICAgIGNoaWxkTWF4ICs9IHRpOworICAgICAg
ICAgICAgICAgICAgICBjaGlsZE1pbiArPSB0aS5jZWlsVG9GbG9hdCgpOworICAgICAgICAgICAg
ICAgICAgICBjaGlsZE1heCArPSB0aS5jZWlsVG9GbG9hdCgpOwogCiAgICAgICAgICAgICAgICAg
ICAgIGlmIChjaGlsZE1pbiA8IDApCi0gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0SW5kZW50
ID0gY2hpbGRNaW47CisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0SW5kZW50ID0gY2VpbGVk
TGF5b3V0VW5pdChjaGlsZE1pbik7CiAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAg
ICAgICAgICAgICAgICAgIGFkZGVkVGV4dEluZGVudCA9IHRydWU7CiAgICAgICAgICAgICAgICAg
fQpAQCAtNTg2MywxMSArNTg2NSwxNCBAQCB2b2lkIFJlbmRlckJsb2NrOjpjb21wdXRlSW5saW5l
UHJlZmVycmVkCiAgICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nU3BhY2VDaGlsZCA9IDA7CiAK
ICAgICAgICAgICAgICAgICAvLyBBZGQgaW4gdGV4dC1pbmRlbnQuICBUaGlzIGlzIGFkZGVkIGlu
IG9ubHkgb25jZS4KLSAgICAgICAgICAgICAgICBMYXlvdXRVbml0IHRpID0gMDsKKyAgICAgICAg
ICAgICAgICBmbG9hdCB0aSA9IDA7CiAgICAgICAgICAgICAgICAgaWYgKCFhZGRlZFRleHRJbmRl
bnQpIHsKLSAgICAgICAgICAgICAgICAgICAgdGkgPSB0ZXh0SW5kZW50OwotICAgICAgICAgICAg
ICAgICAgICBjaGlsZE1pbis9dGk7IGJlZ2luTWluICs9IHRpOwotICAgICAgICAgICAgICAgICAg
ICBjaGlsZE1heCs9dGk7IGJlZ2luTWF4ICs9IHRpOworICAgICAgICAgICAgICAgICAgICB0aSA9
IHRleHRJbmRlbnQuY2VpbFRvRmxvYXQoKTsKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgICAgIGNoaWxkTWluICs9IHRpOworICAgICAgICAgICAgICAgICAgICBjaGlsZE1h
eCArPSB0aTsKKyAgICAgICAgICAgICAgICAgICAgYmVnaW5NaW4gKz0gdGk7CisgICAgICAgICAg
ICAgICAgICAgIGJlZ2luTWF4ICs9IHRpOwogICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkTWluIDwgMCkKICAgICAgICAgICAgICAgICAgICAgICAgIHRl
eHRJbmRlbnQgPSBjaGlsZE1pbjsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTU3NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA4
LTE0ICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KKworICAgICAgICBBY2N1
bXVsYXRpbmcgTGF5b3V0VW5pdHMgd2l0aCBmbG9hdHMgZm9yIGRldGVybWluaW5nIGJsb2NrIHBy
ZWZlcnJlZCB3aWR0aCBjYW4gbGVhZCB0byB3cmFwcGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTM1MTMKKworICAgICAgICBSZXZpZXdlZCBieSBF
cmljIFNlaWRlbC4KKworICAgICAgICBFbnN1cmluZyBmbG9hdHMgd2l0aCBzdWItcGl4ZWwgdmFs
dWVzIGRvbid0IHVubmVjZXNzYXJpbHkgd3JhcC4KKworICAgICAgICAqIGZhc3Qvc3ViLXBpeGVs
L2Jsb2NrLXByZWZlcnJlZC13aWR0aHMtd2l0aC1zdWItcGl4ZWwtZmxvYXRzLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogZmFzdC9zdWItcGl4ZWwvYmxvY2stcHJlZmVycmVkLXdpZHRo
cy13aXRoLXN1Yi1waXhlbC1mbG9hdHMuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMTQgIENocmlz
dG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBGaXgg
IExheW91dFRlc3RzL2NhbnZhcy9waGlsaXAvdGVzdHMvMmQudGV4dC5kcmF3LnNwYWNlLmNvbGxh
cHNlLm5vbnNwYWNlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL2Jsb2Nr
LXByZWZlcnJlZC13aWR0aHMtd2l0aC1zdWItcGl4ZWwtZmxvYXRzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9ibG9jay1wcmVmZXJyZWQtd2lk
dGhzLXdpdGgtc3ViLXBpeGVsLWZsb2F0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9mYXN0L3N1Yi1waXhlbC9ibG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3Vi
LXBpeGVsLWZsb2F0cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOSBAQAor
U3VwcG9ydAorTWVtYmVyIENlbnRlcgorVGhpcyB0ZXN0cyB0aGF0IHdlIGRvbid0IGNhdXNlIGFu
IGFzc2VydGlvbiBmYWlsdXJlIG9uIHJlbGF5b3V0IG9mIG5lc3RlZCBwb3NpdGlvbmVkIGVsZW1l
bnRzLiBUaGlzIHRlc3QgcGFzcyBpZiB3ZSBkb24ndCBjYXVzZSBhbiBhc3NlcnRpb24gZmFpbHVy
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInN1cHBvcnQiKS5vZmZzZXRUb3AgaXMgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
Im1lbWJlcmNlbnRlciIpLm9mZnNldFRvcAorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3N1Yi1w
aXhlbC9ibG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3ViLXBpeGVsLWZsb2F0cy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qvc3ViLXBpeGVsL2Jsb2NrLXByZWZlcnJlZC13
aWR0aHMtd2l0aC1zdWItcGl4ZWwtZmxvYXRzLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L3N1Yi1waXhlbC9ibG9jay1wcmVmZXJyZWQtd2lkdGhzLXdpdGgtc3ViLXBpeGVs
LWZsb2F0cy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjcmVsYXRpdmVDb250YWluZXIgeyBw
b3NpdGlvbjpyZWxhdGl2ZTsgd2lkdGg6OTgwcHg7IGhlaWdodDo1OHB4OyBtYXJnaW46MThweCBh
dXRvIDA7IHotaW5kZXg6OTk5OyBmb250LXNpemU6MTJweDsgfQorI3JlbGF0aXZlQ29udGFpbmVy
IHVsIHsgcG9zaXRpb246YWJzb2x1dGU7IHJpZ2h0OjIwMHB4OyB0b3A6MXB4OyAgbWFyZ2luOjA7
IH0KKyNyZWxhdGl2ZUNvbnRhaW5lciB1bCBsaSB7IGRpc3BsYXk6aW5saW5lOyBmbG9hdDpsZWZ0
OyBtYXJnaW46MCAwIDAgMi44ZW07IGJhY2tncm91bmQtY29sb3I6IGdyZWVuO30KKyNyZWxhdGl2
ZUNvbnRhaW5lciB1bCBsaSBhIHsgZGlzcGxheTpibG9jazsgY29sb3I6IzMzMzsgdGV4dC1kZWNv
cmF0aW9uOm5vbmU7IHBhZGRpbmc6LjNlbSAwIC4zZW0gNXB4OyB0ZXh0LXNoYWRvdzogMCAxcHgg
MCAjZmZmOyBsaW5lLWhlaWdodDoxOHB4OyB9Cis8L3N0eWxlPgkKKzwvaGVhZD4KKzxib2R5Pgor
PGRpdiBpZD0icmVsYXRpdmVDb250YWluZXIiPgorICA8dWw+CisgICAgPGxpIGlkPSJzdXBwb3J0
Ij48YSBocmVmPSIjIj5TdXBwb3J0PC9hPjwvbGk+CisgICAgPGxpIGlkPSJtZW1iZXJjZW50ZXIi
PjxhIGhyZWY9IiMiPk1lbWJlciBDZW50ZXI8L2E+PC9saT4KKyA8L3VsPgorPC9kaXY+Cis8cCBp
ZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgd2UgZG9uJ3QgY2F1c2UgYW4gYXNzZXJ0aW9u
IGZhaWx1cmUgb24gcmVsYXlvdXQgb2YgbmVzdGVkIHBvc2l0aW9uZWQgZWxlbWVudHMuIFRoaXMg
dGVzdCBwYXNzIGlmIHdlIGRvbid0IGNhdXNlIGFuIGFzc2VydGlvbiBmYWlsdXJlLiIpOworCitz
aG91bGRCZSgnZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInN1cHBvcnQiKS5vZmZzZXRUb3AnLCAn
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1lbWJlcmNlbnRlciIpLm9mZnNldFRvcCcpOworCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlbGF0aXZl
Q29udGFpbmVyIikuZGlzcGxheSA9ICdub25lJzsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>