<?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>79188</bug_id>
          
          <creation_ts>2012-02-21 19:55:42 -0800</creation_ts>
          <short_desc>CSS3 calc(): handle non-negative values</short_desc>
          <delta_ts>2012-02-24 01:33:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>16662</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike Lawther">mikelawther</reporter>
          <assigned_to name="Mike Lawther">mikelawther</assigned_to>
          <cc>dbates</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>561525</commentid>
    <comment_count>0</comment_count>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-21 19:55:42 -0800</bug_when>
    <thetext>CSS3 calc(): handle non-negative values</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561531</commentid>
    <comment_count>1</comment_count>
      <attachid>128121</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-21 19:59:18 -0800</bug_when>
    <thetext>Created attachment 128121
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561583</commentid>
    <comment_count>2</comment_count>
      <attachid>128127</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-21 21:18:12 -0800</bug_when>
    <thetext>Created attachment 128127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563534</commentid>
    <comment_count>3</comment_count>
      <attachid>128127</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-02-23 15:17:00 -0800</bug_when>
    <thetext>Comment on attachment 128127
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Some CSS properties (eg padding) are required to be non-negative. These

Nit: eg =&gt; e.g.

(&quot;e.g.&quot; is an acronym for the Latin phrase &quot;example gratia&quot;)

&gt; Source/WebCore/ChangeLog:16
&gt; +        (WebCore::CSSCalcValue::clampToRange):

For your consideration, I suggest adding the word &quot;Added.&quot;  to right of the &apos;:&apos; for all methods that were added in this patch. This makes it straightforward to identify the added methods from reading the change log message and also helps when searching on Trac for a change that introduced a method.

&gt; Source/WebCore/css/CSSCalculationValue.cpp:84
&gt; +double CSSCalcValue::clampToRange(double value) const
&gt; +{
&gt; +    return m_nonNegative &amp;&amp; value &lt; 0 ? 0 : value;
&gt; +}    

I don&apos;t really like the name of this method or doubleValue() as they are somewhat disingenuous, but I can&apos;t think of a better name at the moment. I mean, the value is only clamped to 0 if its negative and its permitted value range is non-negative.

&gt; Source/WebCore/css/CSSCalculationValue.cpp:90
&gt;  double CSSCalcValue::doubleValue() const 
&gt;  { 
&gt; +    return clampToRange(doubleValueUnclamped());
&gt; +}
&gt; +

I take it that you&apos;ve ensured that all call sites of doubleValue() have been changed to doubleValueUnclamped() since you&apos;ve changed the meaning of doubleValue() from being an unclamped value to a &quot;clamped value&quot; (see my remark for clampToRange() above).

&gt; Source/WebCore/css/CSSCalculationValue.cpp:91
&gt; +double CSSCalcValue::doubleValueUnclamped() const 

You may want to consider inlining this function in the header since it&apos;s a simple expression and its referenced in doubleValue().

&gt; Source/WebCore/css/CSSParser.cpp:710
&gt; +    if (!parseCalculation(value, unitflags &amp; FNonNeg ? CalculationRangeNonNegative : CalculationRangeAll))

I suggest defining a variable, say isNonNegativeValue, for the expression &quot;unitflags &amp; FNonNeg&quot; since it appears three times in this code block and is evaluated at most twice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563645</commentid>
    <comment_count>4</comment_count>
      <attachid>128127</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-23 16:22:05 -0800</bug_when>
    <thetext>Comment on attachment 128127
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Some CSS properties (eg padding) are required to be non-negative. These
&gt; 
&gt; Nit: eg =&gt; e.g.
&gt; 
&gt; (&quot;e.g.&quot; is an acronym for the Latin phrase &quot;example gratia&quot;)

Done.

&gt;&gt; Source/WebCore/ChangeLog:16
&gt;&gt; +        (WebCore::CSSCalcValue::clampToRange):
&gt; 
&gt; For your consideration, I suggest adding the word &quot;Added.&quot;  to right of the &apos;:&apos; for all methods that were added in this patch. This makes it straightforward to identify the added methods from reading the change log message and also helps when searching on Trac for a change that introduced a method.

Done. I wasn&apos;t aware that this was a convention. Sounds like something worth teaching the Changelog creation script about :)

&gt;&gt; Source/WebCore/css/CSSCalculationValue.cpp:84
&gt;&gt; +}    
&gt; 
&gt; I don&apos;t really like the name of this method or doubleValue() as they are somewhat disingenuous, but I can&apos;t think of a better name at the moment. I mean, the value is only clamped to 0 if its negative and its permitted value range is non-negative.

renamed to clampToPermittedRange().

&gt;&gt; Source/WebCore/css/CSSCalculationValue.cpp:90
&gt;&gt; +
&gt; 
&gt; I take it that you&apos;ve ensured that all call sites of doubleValue() have been changed to doubleValueUnclamped() since you&apos;ve changed the meaning of doubleValue() from being an unclamped value to a &quot;clamped value&quot; (see my remark for clampToRange() above).

All existing call sites of doubleValue() really wanted the value clamped - that&apos;s the bug this patch fixes.

&gt;&gt; Source/WebCore/css/CSSCalculationValue.cpp:91
&gt;&gt; +double CSSCalcValue::doubleValueUnclamped() const 
&gt; 
&gt; You may want to consider inlining this function in the header since it&apos;s a simple expression and its referenced in doubleValue().

Renamed to isNegative(), and inlined.

&gt;&gt; Source/WebCore/css/CSSParser.cpp:710
&gt;&gt; +    if (!parseCalculation(value, unitflags &amp; FNonNeg ? CalculationRangeNonNegative : CalculationRangeAll))
&gt; 
&gt; I suggest defining a variable, say isNonNegativeValue, for the expression &quot;unitflags &amp; FNonNeg&quot; since it appears three times in this code block and is evaluated at most twice.

Done. I called it mustBeNonNegative, since it&apos;s a requirement, rather than a fact. It makes the below checks of &apos;if mustBeNonNegative &amp;&amp; isNegative() then fail&apos; read better as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563646</commentid>
    <comment_count>5</comment_count>
      <attachid>128593</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-23 16:23:04 -0800</bug_when>
    <thetext>Created attachment 128593
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563652</commentid>
    <comment_count>6</comment_count>
      <attachid>128593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-02-23 16:26:09 -0800</bug_when>
    <thetext>Comment on attachment 128593
Patch for landing

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

&gt; Source/WebCore/css/CSSCalculationValue.cpp:80
&gt; +    

Nit: I would remove this extraneous empty line as it doesn&apos;t improve the readability of this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563657</commentid>
    <comment_count>7</comment_count>
      <attachid>128593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-02-23 16:27:38 -0800</bug_when>
    <thetext>Comment on attachment 128593
Patch for landing

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

&gt; Source/WebCore/css/CSSCalculationValue.h:101
&gt; +                        

Nit: This line has extraneous whitespace.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563667</commentid>
    <comment_count>8</comment_count>
      <attachid>128593</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-23 16:32:44 -0800</bug_when>
    <thetext>Comment on attachment 128593
Patch for landing

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

&gt;&gt; Source/WebCore/css/CSSCalculationValue.cpp:80
&gt;&gt; +    
&gt; 
&gt; Nit: I would remove this extraneous empty line as it doesn&apos;t improve the readability of this file.

Oops. Fixed.

&gt;&gt; Source/WebCore/css/CSSCalculationValue.h:101
&gt;&gt; +                        
&gt; 
&gt; Nit: This line has extraneous whitespace.

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563668</commentid>
    <comment_count>9</comment_count>
      <attachid>128593</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-02-23 16:32:55 -0800</bug_when>
    <thetext>Comment on attachment 128593
Patch for landing

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

&gt; Source/WebCore/css/CSSParser.cpp:710
&gt; +    bool mustBeNonNegative = unitflags &amp; FNonNeg;

Nit: This is OK as-is. That being said, I don&apos;t like the prefix &quot;must&quot; because it implies a requirement, but this boolean variable could evaluate to false, which contradicts the meaning of &quot;must&quot;. For your consideration, I suggest naming this variable, isNonNegative.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563670</commentid>
    <comment_count>10</comment_count>
      <attachid>128597</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-23 16:33:28 -0800</bug_when>
    <thetext>Created attachment 128597
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563680</commentid>
    <comment_count>11</comment_count>
      <attachid>128593</attachid>
    <who name="Mike Lawther">mikelawther</who>
    <bug_when>2012-02-23 16:42:08 -0800</bug_when>
    <thetext>Comment on attachment 128593
Patch for landing

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

&gt;&gt; Source/WebCore/css/CSSParser.cpp:710
&gt;&gt; +    bool mustBeNonNegative = unitflags &amp; FNonNeg;
&gt; 
&gt; Nit: This is OK as-is. That being said, I don&apos;t like the prefix &quot;must&quot; because it implies a requirement, but this boolean variable could evaluate to false, which contradicts the meaning of &quot;must&quot;. For your consideration, I suggest naming this variable, isNonNegative.

It is a requirement isn&apos;t it? The function here is &apos;validCalculationUnit&apos;, and its purpose is to determine whether the current calculated value is valid as per the requirements passed in the flags.

I take your point about the negative of &apos;mustBeNonNegative&apos; being potentially confusing. I don&apos;t think it&apos;s a contradiction though as it&apos;s a requirement about the value, not a fact about the value. Maybe I should reuse the enum I defined that has the values CalculationRangeNonNegative and CalculationRangeAll for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563847</commentid>
    <comment_count>12</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2012-02-23 19:41:44 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 128593 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128593&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/css/CSSParser.cpp:710
&gt; &gt;&gt; +    bool mustBeNonNegative = unitflags &amp; FNonNeg;
&gt; &gt; 
&gt; &gt; Nit: This is OK as-is. That being said, I don&apos;t like the prefix &quot;must&quot; because it implies a requirement, but this boolean variable could evaluate to false, which contradicts the meaning of &quot;must&quot;. For your consideration, I suggest naming this variable, isNonNegative.
&gt; 
&gt; It is a requirement isn&apos;t it? The function here is &apos;validCalculationUnit&apos;, and its purpose is to determine whether the current calculated value is valid as per the requirements passed in the flags.
&gt; 
&gt; I take your point about the negative of &apos;mustBeNonNegative&apos; being potentially confusing.

Yes, I felt the name is confusing.

&gt; I don&apos;t think it&apos;s a contradiction though as it&apos;s a requirement about the value, not a fact about the value. Maybe I should reuse the enum I defined that has the values CalculationRangeNonNegative and CalculationRangeAll for this?

The use of a boolean seems sufficient. Feel free to improve this code and increase its readability.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564070</commentid>
    <comment_count>13</comment_count>
      <attachid>128597</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 01:33:11 -0800</bug_when>
    <thetext>Comment on attachment 128597
Patch for landing

Clearing flags on attachment: 128597

Committed r108750: &lt;http://trac.webkit.org/changeset/108750&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564071</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-24 01:33:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128121</attachid>
            <date>2012-02-21 19:59:18 -0800</date>
            <delta_ts>2012-02-21 21:18:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79188-20120222145916.patch</filename>
            <type>text/plain</type>
            <size>9209</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNjk2YWRlZTEzYTY1
YzRjMzZhYTJjYzA3OTU1ODZmMTZkNDBlYi4uYTFlZmU2NWI0NDEzYmFiMTE0MTA0ODY3ZDljYjM4
ZTlkN2IyNDQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAyLTIxICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
KCk6IGhhbmRsZSBub24tbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgQ1NTIHByb3BlcnRpZXMgKGVnIHBhZGRpbmcpIGFy
ZSByZXF1aXJlZCB0byBiZSBub24tbmVnYXRpdmUuIFRoZXNlCisgICAgICAgIGFyZSBub3cgcmVz
dHJpY3RlZCB0byB0aGUgY29ycmVjdCByYW5nZS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFs
dWU6OmNsYW1wVG9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmRvdWJs
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Y29tcHV0ZUxlbmd0aFB4
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBj
c3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oOgorICAgICAgICAoQ1NTQ2FsY1ZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Q1NTQ2FsY1ZhbHVlKToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dmFsaWRDYWxjdWxh
dGlvblVuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNhbGN1bGF0aW9u
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2FsY3Vs
YXRpb25WYWx1ZS5oOgorCiAyMDEyLTAyLTIwICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uICgxMDgxMzUpIGlzT3BhcXVlKCkgcmV0dXJu
cyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwCmluZGV4IDhkZDBjOGUwOWRlMmIzNWI0ZmI2YjViYzY2NjRjN2RhZDVmNDFi
YjguLjJhNTViZTI2Yjg5NmFhYzM3ZDg3NzA2NTQzN2M3ZDgzMGEyNDAyMTUgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTc3LDE0ICs3NywyMCBAQCBT
dHJpbmcgQ1NTQ2FsY1ZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gIiI7
CiB9CiAKKyAgICAKK2RvdWJsZSBDU1NDYWxjVmFsdWU6OmNsYW1wVG9SYW5nZShkb3VibGUgdmFs
dWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbm9uTmVnYXRpdmUgJiYgdmFsdWUgPCAwID8gMCA6
IHZhbHVlOworfSAgICAKKyAgICAKIGRvdWJsZSBDU1NDYWxjVmFsdWU6OmRvdWJsZVZhbHVlKCkg
Y29uc3QgCiB7IAotICAgIHJldHVybiBtX2V4cHJlc3Npb24tPmRvdWJsZVZhbHVlKCk7CisgICAg
cmV0dXJuIGNsYW1wVG9SYW5nZShtX2V4cHJlc3Npb24tPmRvdWJsZVZhbHVlKCkpOwogfQogICAg
IAogZG91YmxlIENTU0NhbGNWYWx1ZTo6Y29tcHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBjdXJy
ZW50U3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyLCBib29s
IGNvbXB1dGluZ0ZvbnRTaXplKSBjb25zdAogewotICAgIHJldHVybiBtX2V4cHJlc3Npb24tPmNv
bXB1dGVMZW5ndGhQeChjdXJyZW50U3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0
aW5nRm9udFNpemUpOworICAgIHJldHVybiBjbGFtcFRvUmFuZ2UobV9leHByZXNzaW9uLT5jb21w
dXRlTGVuZ3RoUHgoY3VycmVudFN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIsIGNvbXB1dGlu
Z0ZvbnRTaXplKSk7CiB9CiAgICAgCiBDU1NDYWxjRXhwcmVzc2lvbk5vZGU6On5DU1NDYWxjRXhw
cmVzc2lvbk5vZGUoKSAKQEAgLTM4MSw3ICszODcsNyBAQCBwcml2YXRlOgogICAgIH0KIH07CiAK
LVBhc3NSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NQYXJzZXJT
dHJpbmcgbmFtZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiBwYXJzZXJWYWx1ZUxpc3QpCitQYXNzUmVm
UHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTUGFyc2VyU3RyaW5nIG5h
bWUsIENTU1BhcnNlclZhbHVlTGlzdCogcGFyc2VyVmFsdWVMaXN0LCBDYWxjdWxhdGlvblBlcm1p
dHRlZFZhbHVlUmFuZ2UgcmFuZ2UpCiB7ICAgIAogICAgIENTU0NhbGNFeHByZXNzaW9uTm9kZVBh
cnNlciBwYXJzZXI7ICAgIAogICAgIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IGV4cHJl
c3Npb247CkBAIC0zOTAsNyArMzk2LDcgQEAgUGFzc1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0Nh
bGNWYWx1ZTo6Y3JlYXRlKENTU1BhcnNlclN0cmluZyBuYW1lLCBDU1NQYXJzZXJWYWwKICAgICAg
ICAgZXhwcmVzc2lvbiA9IHBhcnNlci5wYXJzZUNhbGMocGFyc2VyVmFsdWVMaXN0KTsgICAgCiAg
ICAgLy8gRklYTUUgY2FsYyAoaHR0cDovL3dlYmtpdC5vcmcvYi8xNjY2MikgQWRkIHBhcnNpbmcg
Zm9yIG1pbiBhbmQgbWF4IGhlcmUKIAotICAgIHJldHVybiBleHByZXNzaW9uID8gYWRvcHRSZWYo
bmV3IENTU0NhbGNWYWx1ZShleHByZXNzaW9uKSkgOiAwOworICAgIHJldHVybiBleHByZXNzaW9u
ID8gYWRvcHRSZWYobmV3IENTU0NhbGNWYWx1ZShleHByZXNzaW9uLCByYW5nZSkpIDogMDsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlv
blZhbHVlLmgKaW5kZXggMmRiZjQyOTdkOTU0OGZmNDliYzRiYWEwNzc3ZDQzMzJjZjk5ZTYyZi4u
NzE5MDYwMDkxZWZkMjJiMmQ5MGQzNTZiYmU1NTUxMDg3ZTBlMWYxOCAxMDA3NTUKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCkBAIC03OSw3ICs3OSw3IEBAIHByb3RlY3RlZDoK
ICAgICAgICAgCiBjbGFzcyBDU1NDYWxjVmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKENTU1BhcnNlclN0
cmluZyBuYW1lLCBDU1NQYXJzZXJWYWx1ZUxpc3QqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
U1NDYWxjVmFsdWU+IGNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NTUGFyc2VyVmFsdWVM
aXN0KiwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlKTsKIAogICAgIENhbGN1bGF0aW9u
Q2F0ZWdvcnkgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb24tPmNhdGVnb3J5
KCk7IH0KICAgICBib29sIGlzSW50KCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uLT5pc0lu
dGVnZXIoKTsgfSAgICAKQEAgLTg5LDEzICs4OSwxNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGN1
c3RvbUNzc1RleHQoKSBjb25zdDsKICAgICAKIHByaXZhdGU6ICAgIAotICAgIENTU0NhbGNWYWx1
ZShQYXNzUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gZXhwcmVzc2lvbikKKyAgICBDU1ND
YWxjVmFsdWUoUGFzc1JlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IGV4cHJlc3Npb24sIENh
bGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSByYW5nZSkKICAgICAgICAgOiBDU1NWYWx1ZShD
YWxjdWxhdGlvbkNsYXNzKQogICAgICAgICAsIG1fZXhwcmVzc2lvbihleHByZXNzaW9uKQorICAg
ICAgICAsIG1fbm9uTmVnYXRpdmUocmFuZ2UgPT0gQ2FsY3VsYXRpb25SYW5nZU5vbk5lZ2F0aXZl
KQogICAgIHsKICAgICB9CiAgICAgCisgICAgZG91YmxlIGNsYW1wVG9SYW5nZShkb3VibGUpIGNv
bnN0OworICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgY29uc3QgUmVmUHRyPENTU0NhbGNF
eHByZXNzaW9uTm9kZT4gbV9leHByZXNzaW9uOworICAgIGNvbnN0IGJvb2wgbV9ub25OZWdhdGl2
ZTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGMyNTc3YzAzZTBmMmMzZjMwOTJhZjYxMDFiZGJiMmRlYzVhY2IzOTYuLjRhN2Y4
NjQ4M2RkODViZTI5ZmRhY2IyNDBlNDUxZDExNTY4ZmQxODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCkBAIC03MDcsNyArNzA3LDcgQEAgRG9jdW1lbnQqIENTU1BhcnNlcjo6ZmluZERvY3Vt
ZW50KCkgY29uc3QKIAogYm9vbCBDU1NQYXJzZXI6OnZhbGlkQ2FsY3VsYXRpb25Vbml0KENTU1Bh
cnNlclZhbHVlKiB2YWx1ZSwgVW5pdHMgdW5pdGZsYWdzKQogewotICAgIGlmICghcGFyc2VDYWxj
dWxhdGlvbih2YWx1ZSkpCisgICAgaWYgKCFwYXJzZUNhbGN1bGF0aW9uKHZhbHVlLCB1bml0Zmxh
Z3MgJiBGTm9uTmVnID8gQ2FsY3VsYXRpb25SYW5nZU5vbk5lZ2F0aXZlIDogQ2FsY3VsYXRpb25S
YW5nZUFsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGJvb2wgYiA9IGZhbHNlOwpA
QCAtNzQxOCw3ICs3NDE4LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udFZhcmlhbnRMaWdh
dHVyZXMoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NTUGFy
c2VyOjpwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkgCitib29sIENTU1Bh
cnNlcjo6cGFyc2VDYWxjdWxhdGlvbihDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIENhbGN1bGF0aW9u
UGVybWl0dGVkVmFsdWVSYW5nZSByYW5nZSkgCiB7CiAgICAgQVNTRVJUKGlzQ2FsY3VsYXRpb24o
dmFsdWUpKTsKICAgICAKQEAgLTc0MjcsNyArNzQyNyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJz
ZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgQVNTRVJUKCFtX3BhcnNlZENhbGN1bGF0aW9uKTsKLSAgICBtX3BhcnNlZENhbGN1
bGF0aW9uID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCBhcmdz
KTsKKyAgICBtX3BhcnNlZENhbGN1bGF0aW9uID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUodmFsdWUt
PmZ1bmN0aW9uLT5uYW1lLCBhcmdzLCByYW5nZSk7CiAgICAgCiAgICAgaWYgKCFtX3BhcnNlZENh
bGN1bGF0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5k
ZXggODdkNTJmNWY1NmE3YjRiZWVjZGEyN2Y3NTQxMzZjYWFiMDI1MTU5Ni4uZjk1OGUxNWM5NGNh
MWQxNDhhYzMzNmVmNDQwOTZjYWNhM2I1ZTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAt
MjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVGV4dEVtcGhhc2lzU3R5bGUo
Ym9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wgaW1w
b3J0YW50KTsKLSAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqKTsKKyAg
ICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqLCBDYWxjdWxhdGlvblBlcm1p
dHRlZFZhbHVlUmFuZ2UpOwogCiAgICAgYm9vbCBwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVl
TGlzdCopOwogICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuaAppbmRleCA3NjIx
Nzk0YTkxMDM5OTcyNzAxMzVlYjQ0NmQ3YWQ1N2Q1MWU1YTU1Li5kODk0NDVlODA2Y2I1ZWU4MGY5
ZjQxZjkwNzg3ZjhhNWI4OWUzODJhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9DYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3Vs
YXRpb25WYWx1ZS5oCkBAIC00Myw3ICs0MywxMiBAQCBlbnVtIENhbGNPcGVyYXRvciB7CiAgICAg
Q2FsY0FkZCA9ICcrJywKICAgICBDYWxjU3VidHJhY3QgPSAnLScsCiAgICAgQ2FsY011bHRpcGx5
ID0gJyonLAotICAgIENhbGNEaXZpZGUgPSAnLycsCisgICAgQ2FsY0RpdmlkZSA9ICcvJworfTsK
KworZW51bSBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UgeworICAgIENhbGN1bGF0aW9u
UmFuZ2VBbGwsCisgICAgQ2FsY3VsYXRpb25SYW5nZU5vbk5lZ2F0aXZlCiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDVjMjg5YmUzYmJlODg2NGEwMDIxN2E4ZDVlNGFkZTlk
Y2NkMTVlNC4uZDk1ODkxZTlhZTBmNzdmMGE0MmY4MDM0YWVkNmE0MTg3Y2NkNjVhMiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIxICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhlckBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxjKCk6IGhhbmRsZSBub24tbmVnYXRpdmUg
dmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03
OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
Y3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAg
ICogY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmcuaHRtbDogQWRkZWQuCisKIDIwMTItMDItMjAg
IEtpaG9uZyBLd29uICA8a2lob25nLmt3b25Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIGEg
bmV3IHRlc3QgY2FzZSBmb3IgdGhlIFZpYnJhdGlvbiBBUEkuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jc3MzL2NhbGMvbmVnYXRpdmUtcGFkZGluZy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
OTliY2Q3NGRkM2M1OWUyNmYxZTYzY2VlMDVjMDY2NzQ4ZjAxNzAxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDExIEBACis8IURPQ1RZUEUgSFRNTD4KKzxzdHlsZT4KKyAgICBwIHsgd2lkdGg6
MjAwcHg7IGhlaWdodDoxMjBweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjt9CisgICAg
LmNvbnRyb2wgeyBwYWRkaW5nOiAtMTAwcHg7IH0KKzwvc3R5bGU+CisKKzxkaXYgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IHllbGxvdzsiPgorICAgIDxwIGNsYXNzPSJjb250cm9sIj5UaGlzIGVs
ZW1lbnQgc2hvdWxkIGhhdmUgemVybyBwYWRkaW5nLjwvcD4KKyAgICA8cCBjbGFzcz0iY29udHJv
bCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGluZy48L3A+CisgICAgPHAgY2xh
c3M9ImNvbnRyb2wiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgor
PC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2NhbGMvbmVnYXRpdmUtcGFkZGlu
Zy5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmcuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNzVlODI4ZDFkMTllYzQ4YTBhYTVmODUwZWM2MzRmYzUyMDZjMTQwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmcuaHRtbApA
QCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTD4KKzxzdHlsZT4KKyAgICBwIHsgd2lkdGg6
MjAwcHg7IGhlaWdodDoxMjBweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmVlbjsgfQorICAg
IC5jb250cm9sICAgICAgICB7IHBhZGRpbmc6IC0xMDBweDsgfQorICAgIC5zaW1wbGUtcHggICAg
ICB7IHBhZGRpbmc6IC13ZWJraXQtY2FsYygxMDBweCAtIDIwMHB4KTsgfQorICAgIC5zaW1wbGUt
cGVyY2VudCB7IHBhZGRpbmc6IC13ZWJraXQtY2FsYyg1MCUgLSA2MCUpOyB9Cis8L3N0eWxlPgor
Cis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Ij4KKyAgICA8cCBjbGFzcz0i
Y29udHJvbCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGluZy48L3A+CisgICAg
PHAgY2xhc3M9InNpbXBsZS1weCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGlu
Zy48L3A+CisgICAgPHAgY2xhc3M9InNpbXBsZS1wZXJjZW50Ij5UaGlzIGVsZW1lbnQgc2hvdWxk
IGhhdmUgemVybyBwYWRkaW5nLjwvcD4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128127</attachid>
            <date>2012-02-21 21:18:12 -0800</date>
            <delta_ts>2012-02-23 16:22:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79188-20120222161810.patch</filename>
            <type>text/plain</type>
            <size>10962</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNjk2YWRlZTEzYTY1
YzRjMzZhYTJjYzA3OTU1ODZmMTZkNDBlYi4uYTFlZmU2NWI0NDEzYmFiMTE0MTA0ODY3ZDljYjM4
ZTlkN2IyNDQ4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAyLTIxICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
KCk6IGhhbmRsZSBub24tbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgQ1NTIHByb3BlcnRpZXMgKGVnIHBhZGRpbmcpIGFy
ZSByZXF1aXJlZCB0byBiZSBub24tbmVnYXRpdmUuIFRoZXNlCisgICAgICAgIGFyZSBub3cgcmVz
dHJpY3RlZCB0byB0aGUgY29ycmVjdCByYW5nZS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFs
dWU6OmNsYW1wVG9SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmRvdWJs
ZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Y29tcHV0ZUxlbmd0aFB4
KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBj
c3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oOgorICAgICAgICAoQ1NTQ2FsY1ZhbHVlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6Q1NTQ2FsY1ZhbHVlKToKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dmFsaWRDYWxjdWxh
dGlvblVuaXQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUNhbGN1bGF0aW9u
KToKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmg6CisgICAgICAgICogcGxhdGZvcm0vQ2FsY3Vs
YXRpb25WYWx1ZS5oOgorCiAyMDEyLTAyLTIwICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5v
a2lhLmNvbT4KIAogICAgICAgICBSZWdyZXNzaW9uICgxMDgxMzUpIGlzT3BhcXVlKCkgcmV0dXJu
cyB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0
aW9uVmFsdWUuY3BwCmluZGV4IDhkZDBjOGUwOWRlMmIzNWI0ZmI2YjViYzY2NjRjN2RhZDVmNDFi
YjguLmUzNmZlYzc0ZGE5N2I4Zjc2MWIwNGI0ZWJlZGIyNzA2ZmY2MDY0MTggMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKQEAgLTc3LDE0ICs3NywyNSBAQCBT
dHJpbmcgQ1NTQ2FsY1ZhbHVlOjpjdXN0b21Dc3NUZXh0KCkgY29uc3QKICAgICByZXR1cm4gIiI7
CiB9CiAKKyAgICAKK2RvdWJsZSBDU1NDYWxjVmFsdWU6OmNsYW1wVG9SYW5nZShkb3VibGUgdmFs
dWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbm9uTmVnYXRpdmUgJiYgdmFsdWUgPCAwID8gMCA6
IHZhbHVlOworfSAgICAKKyAgICAKIGRvdWJsZSBDU1NDYWxjVmFsdWU6OmRvdWJsZVZhbHVlKCkg
Y29uc3QgCiB7IAorICAgIHJldHVybiBjbGFtcFRvUmFuZ2UoZG91YmxlVmFsdWVVbmNsYW1wZWQo
KSk7Cit9CisKK2RvdWJsZSBDU1NDYWxjVmFsdWU6OmRvdWJsZVZhbHVlVW5jbGFtcGVkKCkgY29u
c3QgCit7IAogICAgIHJldHVybiBtX2V4cHJlc3Npb24tPmRvdWJsZVZhbHVlKCk7CiB9CiAgICAg
CiBkb3VibGUgQ1NTQ2FsY1ZhbHVlOjpjb21wdXRlTGVuZ3RoUHgoUmVuZGVyU3R5bGUqIGN1cnJl
bnRTdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRpcGxpZXIsIGJvb2wg
Y29tcHV0aW5nRm9udFNpemUpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fZXhwcmVzc2lvbi0+Y29t
cHV0ZUxlbmd0aFB4KGN1cnJlbnRTdHlsZSwgcm9vdFN0eWxlLCBtdWx0aXBsaWVyLCBjb21wdXRp
bmdGb250U2l6ZSk7CisgICAgcmV0dXJuIGNsYW1wVG9SYW5nZShtX2V4cHJlc3Npb24tPmNvbXB1
dGVMZW5ndGhQeChjdXJyZW50U3R5bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0aW5n
Rm9udFNpemUpKTsKIH0KICAgICAKIENTU0NhbGNFeHByZXNzaW9uTm9kZTo6fkNTU0NhbGNFeHBy
ZXNzaW9uTm9kZSgpIApAQCAtMzgxLDcgKzM5Miw3IEBAIHByaXZhdGU6CiAgICAgfQogfTsKIAot
UGFzc1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKENTU1BhcnNlclN0
cmluZyBuYW1lLCBDU1NQYXJzZXJWYWx1ZUxpc3QqIHBhcnNlclZhbHVlTGlzdCkKK1Bhc3NSZWZQ
dHI8Q1NTQ2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFt
ZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiBwYXJzZXJWYWx1ZUxpc3QsIENhbGN1bGF0aW9uUGVybWl0
dGVkVmFsdWVSYW5nZSByYW5nZSkKIHsgICAgCiAgICAgQ1NTQ2FsY0V4cHJlc3Npb25Ob2RlUGFy
c2VyIHBhcnNlcjsgICAgCiAgICAgUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gZXhwcmVz
c2lvbjsKQEAgLTM5MCw3ICs0MDEsNyBAQCBQYXNzUmVmUHRyPENTU0NhbGNWYWx1ZT4gQ1NTQ2Fs
Y1ZhbHVlOjpjcmVhdGUoQ1NTUGFyc2VyU3RyaW5nIG5hbWUsIENTU1BhcnNlclZhbAogICAgICAg
ICBleHByZXNzaW9uID0gcGFyc2VyLnBhcnNlQ2FsYyhwYXJzZXJWYWx1ZUxpc3QpOyAgICAKICAg
ICAvLyBGSVhNRSBjYWxjIChodHRwOi8vd2Via2l0Lm9yZy9iLzE2NjYyKSBBZGQgcGFyc2luZyBm
b3IgbWluIGFuZCBtYXggaGVyZQogCi0gICAgcmV0dXJuIGV4cHJlc3Npb24gPyBhZG9wdFJlZihu
ZXcgQ1NTQ2FsY1ZhbHVlKGV4cHJlc3Npb24pKSA6IDA7CisgICAgcmV0dXJuIGV4cHJlc3Npb24g
PyBhZG9wdFJlZihuZXcgQ1NTQ2FsY1ZhbHVlKGV4cHJlc3Npb24sIHJhbmdlKSkgOiAwOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTQ2FsY3VsYXRpb25WYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9u
VmFsdWUuaAppbmRleCAyZGJmNDI5N2Q5NTQ4ZmY0OWJjNGJhYTA3NzdkNDMzMmNmOTllNjJmLi5j
NWE2ZWZmY2EzYzU1ZDNlYTlkMDliMjVkZDZhMmJjN2NkMTczOTFjIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
IAogICAgIHZpcnR1YWwgfkNTU0NhbGNFeHByZXNzaW9uTm9kZSgpID0gMDsgIAogICAgIHZpcnR1
YWwgYm9vbCBpc1plcm8oKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBkb3VibGUgZG91YmxlVmFs
dWUoKSBjb25zdCA9IDA7ICAKKyAgICB2aXJ0dWFsIGRvdWJsZSBkb3VibGVWYWx1ZSgpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIGRvdWJsZSBjb21wdXRlTGVuZ3RoUHgoUmVuZGVyU3R5bGUqIGN1
cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91YmxlIG11bHRpcGxpZXIgPSAx
LjAsIGJvb2wgY29tcHV0aW5nRm9udFNpemUgPSBmYWxzZSkgY29uc3QgPSAwOwogICAgIAogICAg
IENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdvcnkoKSBjb25zdCB7IHJldHVybiBtX2NhdGVnb3J5
OyB9ICAgIApAQCAtNzksMjMgKzc5LDI4IEBAIHByb3RlY3RlZDoKICAgICAgICAgCiBjbGFzcyBD
U1NDYWxjVmFsdWUgOiBwdWJsaWMgQ1NTVmFsdWUgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNz
UmVmUHRyPENTU0NhbGNWYWx1ZT4gY3JlYXRlKENTU1BhcnNlclN0cmluZyBuYW1lLCBDU1NQYXJz
ZXJWYWx1ZUxpc3QqKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDYWxjVmFsdWU+IGNyZWF0
ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NTUGFyc2VyVmFsdWVMaXN0KiwgQ2FsY3VsYXRpb25Q
ZXJtaXR0ZWRWYWx1ZVJhbmdlKTsKIAogICAgIENhbGN1bGF0aW9uQ2F0ZWdvcnkgY2F0ZWdvcnko
KSBjb25zdCB7IHJldHVybiBtX2V4cHJlc3Npb24tPmNhdGVnb3J5KCk7IH0KICAgICBib29sIGlz
SW50KCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9uLT5pc0ludGVnZXIoKTsgfSAgICAKICAg
ICBkb3VibGUgZG91YmxlVmFsdWUoKSBjb25zdDsKKyAgICBkb3VibGUgZG91YmxlVmFsdWVVbmNs
YW1wZWQoKSBjb25zdDsKICAgICBkb3VibGUgY29tcHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBj
dXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyID0g
MS4wLCBib29sIGNvbXB1dGluZ0ZvbnRTaXplID0gZmFsc2UpIGNvbnN0OwogICAgICAgICAKICAg
ICBTdHJpbmcgY3VzdG9tQ3NzVGV4dCgpIGNvbnN0OwogICAgIAogcHJpdmF0ZTogICAgCi0gICAg
Q1NTQ2FsY1ZhbHVlKFBhc3NSZWZQdHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBleHByZXNzaW9u
KQorICAgIENTU0NhbGNWYWx1ZShQYXNzUmVmUHRyPENTU0NhbGNFeHByZXNzaW9uTm9kZT4gZXhw
cmVzc2lvbiwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlIHJhbmdlKQogICAgICAgICA6
IENTU1ZhbHVlKENhbGN1bGF0aW9uQ2xhc3MpCiAgICAgICAgICwgbV9leHByZXNzaW9uKGV4cHJl
c3Npb24pCisgICAgICAgICwgbV9ub25OZWdhdGl2ZShyYW5nZSA9PSBDYWxjdWxhdGlvblJhbmdl
Tm9uTmVnYXRpdmUpCiAgICAgewogICAgIH0KICAgICAKKyAgICBkb3VibGUgY2xhbXBUb1Jhbmdl
KGRvdWJsZSkgY29uc3Q7CisgICAgICAgICAgICAgICAgICAgICAgICAKICAgICBjb25zdCBSZWZQ
dHI8Q1NTQ2FsY0V4cHJlc3Npb25Ob2RlPiBtX2V4cHJlc3Npb247CisgICAgY29uc3QgYm9vbCBt
X25vbk5lZ2F0aXZlOwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlci5jcHAKaW5kZXggYzI1NzdjMDNlMGYyYzNmMzA5MmFmNjEwMWJkYmIyZGVjNWFj
YjM5Ni4uNjYzMzcyM2NhZjU0NDAyNjJjZDRiNzUyY2E1ZTA5NjU0MzBmNzAzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKQEAgLTcwNyw3ICs3MDcsNyBAQCBEb2N1bWVudCogQ1NTUGFyc2Vy
OjpmaW5kRG9jdW1lbnQoKSBjb25zdAogCiBib29sIENTU1BhcnNlcjo6dmFsaWRDYWxjdWxhdGlv
blVuaXQoQ1NTUGFyc2VyVmFsdWUqIHZhbHVlLCBVbml0cyB1bml0ZmxhZ3MpCiB7Ci0gICAgaWYg
KCFwYXJzZUNhbGN1bGF0aW9uKHZhbHVlKSkKKyAgICBpZiAoIXBhcnNlQ2FsY3VsYXRpb24odmFs
dWUsIHVuaXRmbGFncyAmIEZOb25OZWcgPyBDYWxjdWxhdGlvblJhbmdlTm9uTmVnYXRpdmUgOiBD
YWxjdWxhdGlvblJhbmdlQWxsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgYm9vbCBi
ID0gZmFsc2U7CkBAIC03MTcsMTcgKzcxNywxNSBAQCBib29sIENTU1BhcnNlcjo6dmFsaWRDYWxj
dWxhdGlvblVuaXQoQ1NTUGFyc2VyVmFsdWUqIHZhbHVlLCBVbml0cyB1bml0ZmxhZ3MpCiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ2FsY1BlcmNlbnQ6CiAgICAgICAgIGIgPSAodW5pdGZsYWdz
ICYgRlBlcmNlbnQpOwotICAgICAgICAvLyBGSVhNRSBjYWxjIChodHRwOi8vd2Via2l0Lm9yZy9i
LzE2NjYyKTogdGVzdCBGTm9uTmVnIGhlcmUsIGVnCi0gICAgICAgIC8vIGlmIChiICYmICh1bml0
ZmxhZ3MgJiBGTm9uTmVnKSAmJiBtX3BhcnNlZENhbGN1bGF0aW9uLT5kb3VibGVWYWx1ZSgpIDwg
MCkKLSAgICAgICAgLy8gICAgYiA9IGZhbHNlOworICAgICAgICBpZiAoYiAmJiAodW5pdGZsYWdz
ICYgRk5vbk5lZykgJiYgbV9wYXJzZWRDYWxjdWxhdGlvbi0+ZG91YmxlVmFsdWVVbmNsYW1wZWQo
KSA8IDApCisgICAgICAgICAgICBiID0gZmFsc2U7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q2FsY051bWJlcjoKICAgICAgICAgYiA9ICh1bml0ZmxhZ3MgJiBGTnVtYmVyKTsKICAgICAgICAg
aWYgKCFiICYmICh1bml0ZmxhZ3MgJiBGSW50ZWdlcikgJiYgbV9wYXJzZWRDYWxjdWxhdGlvbi0+
aXNJbnQoKSkKICAgICAgICAgICAgIGIgPSB0cnVlOwotICAgICAgICAvLyBGSVhNRSBjYWxjICho
dHRwOi8vd2Via2l0Lm9yZy9iLzE2NjYyKTogdGVzdCBGTm9uTmVnIGhlcmUsIGVnCi0gICAgICAg
IC8vIGlmIChiICYmICh1bml0ZmxhZ3MgJiBGTm9uTmVnKSAmJiBtX3BhcnNlZENhbGN1bGF0aW9u
LT5kb3VibGVWYWx1ZSgpIDwgMCkKLSAgICAgICAgLy8gICAgYiA9IGZhbHNlOworICAgICAgICBp
ZiAoYiAmJiAodW5pdGZsYWdzICYgRk5vbk5lZykgJiYgbV9wYXJzZWRDYWxjdWxhdGlvbi0+ZG91
YmxlVmFsdWVVbmNsYW1wZWQoKSA8IDApCisgICAgICAgICAgICBiID0gZmFsc2U7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ2FsY1BlcmNlbnRMZW5ndGg6CiAgICAgICAgIGIgPSAodW5pdGZs
YWdzICYgRlBlcmNlbnQpICYmICh1bml0ZmxhZ3MgJiBGTGVuZ3RoKTsKQEAgLTc0MTgsNyArNzQx
Niw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZvbnRWYXJpYW50TGlnYXR1cmVzKGJvb2wgaW1w
b3J0YW50KQogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIENTU1BhcnNlcjo6cGFyc2VDYWxj
dWxhdGlvbihDU1NQYXJzZXJWYWx1ZSogdmFsdWUpIAorYm9vbCBDU1NQYXJzZXI6OnBhcnNlQ2Fs
Y3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqIHZhbHVlLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVl
UmFuZ2UgcmFuZ2UpIAogewogICAgIEFTU0VSVChpc0NhbGN1bGF0aW9uKHZhbHVlKSk7CiAgICAg
CkBAIC03NDI3LDcgKzc0MjUsNyBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VDYWxjdWxhdGlvbihD
U1NQYXJzZXJWYWx1ZSogdmFsdWUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEFTU0VS
VCghbV9wYXJzZWRDYWxjdWxhdGlvbik7Ci0gICAgbV9wYXJzZWRDYWxjdWxhdGlvbiA9IENTU0Nh
bGNWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mdW5jdGlvbi0+bmFtZSwgYXJncyk7CisgICAgbV9wYXJz
ZWRDYWxjdWxhdGlvbiA9IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKHZhbHVlLT5mdW5jdGlvbi0+bmFt
ZSwgYXJncywgcmFuZ2UpOwogICAgIAogICAgIGlmICghbV9wYXJzZWRDYWxjdWxhdGlvbikKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDg3ZDUyZjVmNTZh
N2I0YmVlY2RhMjdmNzU0MTM2Y2FhYjAyNTE1OTYuLmY5NThlMTVjOTRjYTFkMTQ4YWMzMzZlZjQ0
MDk2Y2FjYTNiNWU2M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgKQEAgLTIwOCw3ICsyMDgsNyBA
QCBwdWJsaWM6CiAgICAgYm9vbCBwYXJzZVRleHRFbXBoYXNpc1N0eWxlKGJvb2wgaW1wb3J0YW50
KTsKIAogICAgIGJvb2wgcGFyc2VMaW5lQm94Q29udGFpbihib29sIGltcG9ydGFudCk7Ci0gICAg
Ym9vbCBwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKik7CisgICAgYm9vbCBwYXJzZUNh
bGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiwgQ2FsY3VsYXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdl
KTsKIAogICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVRhZyhDU1NWYWx1ZUxpc3QqKTsKICAgICBi
b29sIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFudCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKaW5kZXggNzYyMTc5NGE5MTAzOTk3Mjcw
MTM1ZWI0NDZkN2FkNTdkNTFlNWE1NS4uZDg5NDQ1ZTgwNmNiNWVlODBmOWY0MWY5MDc4N2Y4YTVi
ODllMzgyYSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25W
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuaApA
QCAtNDMsNyArNDMsMTIgQEAgZW51bSBDYWxjT3BlcmF0b3IgewogICAgIENhbGNBZGQgPSAnKycs
CiAgICAgQ2FsY1N1YnRyYWN0ID0gJy0nLAogICAgIENhbGNNdWx0aXBseSA9ICcqJywKLSAgICBD
YWxjRGl2aWRlID0gJy8nLAorICAgIENhbGNEaXZpZGUgPSAnLycKK307CisKK2VudW0gQ2FsY3Vs
YXRpb25QZXJtaXR0ZWRWYWx1ZVJhbmdlIHsKKyAgICBDYWxjdWxhdGlvblJhbmdlQWxsLAorICAg
IENhbGN1bGF0aW9uUmFuZ2VOb25OZWdhdGl2ZQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDQ1YzI4OWJlM2JiZTg4NjRhMDAyMTdhOGQ1ZTRhZGU5ZGNjZDE1ZTQuLmQ5NTg5
MWU5YWUwZjc3ZjBhNDJmODAzNGFlZDZhNDE4N2NjZDY1YTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBA
QAorMjAxMi0wMi0yMSAgTWlrZSBMYXd0aGVyICA8bWlrZWxhd3RoZXJAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIENTUzMgY2FsYygpOiBoYW5kbGUgbm9uLW5lZ2F0aXZlIHZhbHVlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkxODgKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGNzczMvY2FsYy9uZWdh
dGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY2FsYy9u
ZWdhdGl2ZS1wYWRkaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTIwICBLaWhvbmcgS3dvbiAg
PGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGNhc2Ug
Zm9yIHRoZSBWaWJyYXRpb24gQVBJLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9u
ZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5YmNkNzRkZDNjNTll
MjZmMWU2M2NlZTA1YzA2Njc0OGYwMTcwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBA
QAorPCFET0NUWVBFIEhUTUw+Cis8c3R5bGU+CisgICAgcCB7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6
MTIwcHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47fQorICAgIC5jb250cm9sIHsgcGFk
ZGluZzogLTEwMHB4OyB9Cis8L3N0eWxlPgorCis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9y
OiB5ZWxsb3c7Ij4KKyAgICA8cCBjbGFzcz0iY29udHJvbCI+VGhpcyBlbGVtZW50IHNob3VsZCBo
YXZlIHplcm8gcGFkZGluZy48L3A+CisgICAgPHAgY2xhc3M9ImNvbnRyb2wiPlRoaXMgZWxlbWVu
dCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxwIGNsYXNzPSJjb250cm9sIj5U
aGlzIGVsZW1lbnQgc2hvdWxkIGhhdmUgemVybyBwYWRkaW5nLjwvcD4KKzwvZGl2PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1ZTgy
OGQxZDE5ZWM0OGEwYWE1Zjg1MGVjNjM0ZmM1MjA2YzE0MAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSwxMyBA
QAorPCFET0NUWVBFIEhUTUw+Cis8c3R5bGU+CisgICAgcCB7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6
MTIwcHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47IH0KKyAgICAuY29udHJvbCAgICAg
ICAgeyBwYWRkaW5nOiAtMTAwcHg7IH0KKyAgICAuc2ltcGxlLXB4ICAgICAgeyBwYWRkaW5nOiAt
d2Via2l0LWNhbGMoMTAwcHggLSAyMDBweCk7IH0KKyAgICAuc2ltcGxlLXBlcmNlbnQgeyBwYWRk
aW5nOiAtd2Via2l0LWNhbGMoNTAlIC0gNjAlKTsgfQorPC9zdHlsZT4KKworPGRpdiBzdHlsZT0i
YmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyI+CisgICAgPHAgY2xhc3M9ImNvbnRyb2wiPlRoaXMg
ZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxwIGNsYXNzPSJzaW1w
bGUtcHgiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxw
IGNsYXNzPSJzaW1wbGUtcGVyY2VudCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFk
ZGluZy48L3A+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128593</attachid>
            <date>2012-02-23 16:23:04 -0800</date>
            <delta_ts>2012-02-23 16:42:08 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-79188-20120224112301.patch</filename>
            <type>text/plain</type>
            <size>11055</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNjk2YWRlZTEzYTY1
YzRjMzZhYTJjYzA3OTU1ODZmMTZkNDBlYi4uNGNhN2YyZjIyMjAxZDE2NGMzZjRkMmZiYWU2MGMz
MTNiN2FjNTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAyLTIxICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
KCk6IGhhbmRsZSBub24tbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmll
bCBCYXRlcy4KKworICAgICAgICBTb21lIENTUyBwcm9wZXJ0aWVzIChlLmcuIHBhZGRpbmcpIGFy
ZSByZXF1aXJlZCB0byBiZSBub24tbmVnYXRpdmUuIFRoZXNlCisgICAgICAgIGFyZSBub3cgcmVz
dHJpY3RlZCB0byB0aGUgY29ycmVjdCByYW5nZS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFs
dWU6OmNsYW1wVG9QZXJtaXR0ZWRSYW5nZSk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpDU1ND
YWxjVmFsdWU6OmRvdWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6
aXNOZWdhdGl2ZSk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmNvbXB1
dGVMZW5ndGhQeCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmNyZWF0ZSk6Cisg
ICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaDoKKyAgICAgICAgKENTU0NhbGNWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OkNTU0NhbGNWYWx1ZSk6CisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnZh
bGlkQ2FsY3VsYXRpb25Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VD
YWxjdWxhdGlvbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL0NhbGN1bGF0aW9uVmFsdWUuaDoKKwogMjAxMi0wMi0yMCAgWWFlbCBBaGFyb24gIDx5YWVs
LmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbiAoMTA4MTM1KSBpc09wYXF1
ZSgpIHJldHVybnMgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDYWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCA4ZGQwYzhlMDlkZTJiMzViNGZiNmI1YmM2NjY0
YzdkYWQ1ZjQxYmI4Li42YmQ0Y2NkN2Q5NDRiOTcwMTU5YWVhMzA5YzBmNDM1MjVlMDczNjhlIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC03NywxNCAr
NzcsMjAgQEAgU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiAgICAg
cmV0dXJuICIiOwogfQogCisgICAgCitkb3VibGUgQ1NTQ2FsY1ZhbHVlOjpjbGFtcFRvUGVybWl0
dGVkUmFuZ2UoZG91YmxlIHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX25vbk5lZ2F0aXZl
ICYmIHZhbHVlIDwgMCA/IDAgOiB2YWx1ZTsKK30gICAgCisgICAgCiBkb3VibGUgQ1NTQ2FsY1Zh
bHVlOjpkb3VibGVWYWx1ZSgpIGNvbnN0IAogeyAKLSAgICByZXR1cm4gbV9leHByZXNzaW9uLT5k
b3VibGVWYWx1ZSgpOworICAgIHJldHVybiBjbGFtcFRvUGVybWl0dGVkUmFuZ2UobV9leHByZXNz
aW9uLT5kb3VibGVWYWx1ZSgpKTsKIH0KLSAgICAKKwogZG91YmxlIENTU0NhbGNWYWx1ZTo6Y29t
cHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiByb290
U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyLCBib29sIGNvbXB1dGluZ0ZvbnRTaXplKSBjb25zdAog
ewotICAgIHJldHVybiBtX2V4cHJlc3Npb24tPmNvbXB1dGVMZW5ndGhQeChjdXJyZW50U3R5bGUs
IHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0aW5nRm9udFNpemUpOworICAgIHJldHVybiBj
bGFtcFRvUGVybWl0dGVkUmFuZ2UobV9leHByZXNzaW9uLT5jb21wdXRlTGVuZ3RoUHgoY3VycmVu
dFN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIsIGNvbXB1dGluZ0ZvbnRTaXplKSk7CiB9CiAg
ICAgCiBDU1NDYWxjRXhwcmVzc2lvbk5vZGU6On5DU1NDYWxjRXhwcmVzc2lvbk5vZGUoKSAKQEAg
LTM4MSw3ICszODcsNyBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVBhc3NSZWZQdHI8Q1NTQ2Fs
Y1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NTUGFy
c2VyVmFsdWVMaXN0KiBwYXJzZXJWYWx1ZUxpc3QpCitQYXNzUmVmUHRyPENTU0NhbGNWYWx1ZT4g
Q1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTUGFyc2VyU3RyaW5nIG5hbWUsIENTU1BhcnNlclZhbHVl
TGlzdCogcGFyc2VyVmFsdWVMaXN0LCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UgcmFu
Z2UpCiB7ICAgIAogICAgIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXI7ICAgIAog
ICAgIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IGV4cHJlc3Npb247CkBAIC0zOTAsNyAr
Mzk2LDcgQEAgUGFzc1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRlKENT
U1BhcnNlclN0cmluZyBuYW1lLCBDU1NQYXJzZXJWYWwKICAgICAgICAgZXhwcmVzc2lvbiA9IHBh
cnNlci5wYXJzZUNhbGMocGFyc2VyVmFsdWVMaXN0KTsgICAgCiAgICAgLy8gRklYTUUgY2FsYyAo
aHR0cDovL3dlYmtpdC5vcmcvYi8xNjY2MikgQWRkIHBhcnNpbmcgZm9yIG1pbiBhbmQgbWF4IGhl
cmUKIAotICAgIHJldHVybiBleHByZXNzaW9uID8gYWRvcHRSZWYobmV3IENTU0NhbGNWYWx1ZShl
eHByZXNzaW9uKSkgOiAwOworICAgIHJldHVybiBleHByZXNzaW9uID8gYWRvcHRSZWYobmV3IENT
U0NhbGNWYWx1ZShleHByZXNzaW9uLCByYW5nZSkpIDogMDsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKaW5kZXggMmRi
ZjQyOTdkOTU0OGZmNDliYzRiYWEwNzc3ZDQzMzJjZjk5ZTYyZi4uMjY3NmZhMDJkODczOTBjYmI1
YmYzMzRhMzIxNmM1MjBkNDM1MTU3ZSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRp
b25WYWx1ZS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIH5D
U1NDYWxjRXhwcmVzc2lvbk5vZGUoKSA9IDA7ICAKICAgICB2aXJ0dWFsIGJvb2wgaXNaZXJvKCkg
Y29uc3QgPSAwOwotICAgIHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3QgPSAwOyAg
CisgICAgdmlydHVhbCBkb3VibGUgZG91YmxlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCBkb3VibGUgY29tcHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRl
clN0eWxlKiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyID0gMS4wLCBib29sIGNvbXB1dGlu
Z0ZvbnRTaXplID0gZmFsc2UpIGNvbnN0ID0gMDsKICAgICAKICAgICBDYWxjdWxhdGlvbkNhdGVn
b3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfSAgICAKQEAgLTc5LDIz
ICs3OSwyOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIAogY2xhc3MgQ1NTQ2FsY1ZhbHVlIDogcHVi
bGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDYWxjVmFs
dWU+IGNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7Cisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NTUGFyc2VyU3RyaW5n
IG5hbWUsIENTU1BhcnNlclZhbHVlTGlzdCosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5n
ZSk7CiAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4g
bV9leHByZXNzaW9uLT5jYXRlZ29yeSgpOyB9CiAgICAgYm9vbCBpc0ludCgpIGNvbnN0IHsgcmV0
dXJuIG1fZXhwcmVzc2lvbi0+aXNJbnRlZ2VyKCk7IH0gICAgCiAgICAgZG91YmxlIGRvdWJsZVZh
bHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9leHBy
ZXNzaW9uLT5kb3VibGVWYWx1ZSgpIDwgMDsgfQogICAgIGRvdWJsZSBjb21wdXRlTGVuZ3RoUHgo
UmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91Ymxl
IG11bHRpcGxpZXIgPSAxLjAsIGJvb2wgY29tcHV0aW5nRm9udFNpemUgPSBmYWxzZSkgY29uc3Q7
CiAgICAgICAgIAogICAgIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3Q7CiAgICAgCiBwcml2
YXRlOiAgICAKLSAgICBDU1NDYWxjVmFsdWUoUGFzc1JlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5v
ZGU+IGV4cHJlc3Npb24pCisgICAgQ1NTQ2FsY1ZhbHVlKFBhc3NSZWZQdHI8Q1NTQ2FsY0V4cHJl
c3Npb25Ob2RlPiBleHByZXNzaW9uLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UgcmFu
Z2UpCiAgICAgICAgIDogQ1NTVmFsdWUoQ2FsY3VsYXRpb25DbGFzcykKICAgICAgICAgLCBtX2V4
cHJlc3Npb24oZXhwcmVzc2lvbikKKyAgICAgICAgLCBtX25vbk5lZ2F0aXZlKHJhbmdlID09IENh
bGN1bGF0aW9uUmFuZ2VOb25OZWdhdGl2ZSkKICAgICB7CiAgICAgfQogICAgIAorICAgIGRvdWJs
ZSBjbGFtcFRvUGVybWl0dGVkUmFuZ2UoZG91YmxlKSBjb25zdDsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgIGNvbnN0IFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IG1fZXhwcmVz
c2lvbjsKKyAgICBjb25zdCBib29sIG1fbm9uTmVnYXRpdmU7CiB9OwogICAgIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjMjU3N2MwM2UwZjJj
M2YzMDkyYWY2MTAxYmRiYjJkZWM1YWNiMzk2Li45NDM3MTk1ZjA0M2UxNzA1ZDg0ZTBjMzc0MTFl
ZDFkMjY0NzJlYjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNzA3LDcgKzcwNyw5
IEBAIERvY3VtZW50KiBDU1NQYXJzZXI6OmZpbmREb2N1bWVudCgpIGNvbnN0CiAKIGJvb2wgQ1NT
UGFyc2VyOjp2YWxpZENhbGN1bGF0aW9uVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFVuaXRz
IHVuaXRmbGFncykKIHsKLSAgICBpZiAoIXBhcnNlQ2FsY3VsYXRpb24odmFsdWUpKQorICAgIGJv
b2wgbXVzdEJlTm9uTmVnYXRpdmUgPSB1bml0ZmxhZ3MgJiBGTm9uTmVnOworCisgICAgaWYgKCFw
YXJzZUNhbGN1bGF0aW9uKHZhbHVlLCBtdXN0QmVOb25OZWdhdGl2ZSA/IENhbGN1bGF0aW9uUmFu
Z2VOb25OZWdhdGl2ZSA6IENhbGN1bGF0aW9uUmFuZ2VBbGwpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBib29sIGIgPSBmYWxzZTsKQEAgLTcxNywxNyArNzE5LDE1IEBAIGJvb2wgQ1NT
UGFyc2VyOjp2YWxpZENhbGN1bGF0aW9uVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFVuaXRz
IHVuaXRmbGFncykKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYWxjUGVyY2VudDoKICAgICAg
ICAgYiA9ICh1bml0ZmxhZ3MgJiBGUGVyY2VudCk7Ci0gICAgICAgIC8vIEZJWE1FIGNhbGMgKGh0
dHA6Ly93ZWJraXQub3JnL2IvMTY2NjIpOiB0ZXN0IEZOb25OZWcgaGVyZSwgZWcKLSAgICAgICAg
Ly8gaWYgKGIgJiYgKHVuaXRmbGFncyAmIEZOb25OZWcpICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24t
PmRvdWJsZVZhbHVlKCkgPCAwKQotICAgICAgICAvLyAgICBiID0gZmFsc2U7CisgICAgICAgIGlm
IChiICYmIG11c3RCZU5vbk5lZ2F0aXZlICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmlzTmVnYXRp
dmUoKSkKKyAgICAgICAgICAgIGIgPSBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
YWxjTnVtYmVyOgogICAgICAgICBiID0gKHVuaXRmbGFncyAmIEZOdW1iZXIpOwogICAgICAgICBp
ZiAoIWIgJiYgKHVuaXRmbGFncyAmIEZJbnRlZ2VyKSAmJiBtX3BhcnNlZENhbGN1bGF0aW9uLT5p
c0ludCgpKQogICAgICAgICAgICAgYiA9IHRydWU7Ci0gICAgICAgIC8vIEZJWE1FIGNhbGMgKGh0
dHA6Ly93ZWJraXQub3JnL2IvMTY2NjIpOiB0ZXN0IEZOb25OZWcgaGVyZSwgZWcKLSAgICAgICAg
Ly8gaWYgKGIgJiYgKHVuaXRmbGFncyAmIEZOb25OZWcpICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24t
PmRvdWJsZVZhbHVlKCkgPCAwKQotICAgICAgICAvLyAgICBiID0gZmFsc2U7CisgICAgICAgIGlm
IChiICYmIG11c3RCZU5vbk5lZ2F0aXZlICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmlzTmVnYXRp
dmUoKSkKKyAgICAgICAgICAgIGIgPSBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
YWxjUGVyY2VudExlbmd0aDoKICAgICAgICAgYiA9ICh1bml0ZmxhZ3MgJiBGUGVyY2VudCkgJiYg
KHVuaXRmbGFncyAmIEZMZW5ndGgpOwpAQCAtNzQxOCw3ICs3NDE4LDcgQEAgYm9vbCBDU1NQYXJz
ZXI6OnBhcnNlRm9udFZhcmlhbnRMaWdhdHVyZXMoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZh
bHVlKiB2YWx1ZSkgCitib29sIENTU1BhcnNlcjo6cGFyc2VDYWxjdWxhdGlvbihDU1NQYXJzZXJW
YWx1ZSogdmFsdWUsIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVSYW5nZSByYW5nZSkgCiB7CiAg
ICAgQVNTRVJUKGlzQ2FsY3VsYXRpb24odmFsdWUpKTsKICAgICAKQEAgLTc0MjcsNyArNzQyNyw3
IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiB2YWx1
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQVNTRVJUKCFtX3BhcnNlZENhbGN1bGF0
aW9uKTsKLSAgICBtX3BhcnNlZENhbGN1bGF0aW9uID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUodmFs
dWUtPmZ1bmN0aW9uLT5uYW1lLCBhcmdzKTsKKyAgICBtX3BhcnNlZENhbGN1bGF0aW9uID0gQ1NT
Q2FsY1ZhbHVlOjpjcmVhdGUodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCBhcmdzLCByYW5nZSk7CiAg
ICAgCiAgICAgaWYgKCFtX3BhcnNlZENhbGN1bGF0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmgKaW5kZXggODdkNTJmNWY1NmE3YjRiZWVjZGEyN2Y3NTQxMzZj
YWFiMDI1MTU5Ni4uZjk1OGUxNWM5NGNhMWQxNDhhYzMzNmVmNDQwOTZjYWNhM2I1ZTYzZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuaApAQCAtMjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICBib29s
IHBhcnNlVGV4dEVtcGhhc2lzU3R5bGUoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9vbCBwYXJz
ZUxpbmVCb3hDb250YWluKGJvb2wgaW1wb3J0YW50KTsKLSAgICBib29sIHBhcnNlQ2FsY3VsYXRp
b24oQ1NTUGFyc2VyVmFsdWUqKTsKKyAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2Vy
VmFsdWUqLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UpOwogCiAgICAgYm9vbCBwYXJz
ZUZvbnRGZWF0dXJlVGFnKENTU1ZhbHVlTGlzdCopOwogICAgIGJvb2wgcGFyc2VGb250RmVhdHVy
ZVNldHRpbmdzKGJvb2wgaW1wb3J0YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1
bGF0aW9uVmFsdWUuaAppbmRleCA3NjIxNzk0YTkxMDM5OTcyNzAxMzVlYjQ0NmQ3YWQ1N2Q1MWU1
YTU1Li5kODk0NDVlODA2Y2I1ZWU4MGY5ZjQxZjkwNzg3ZjhhNWI4OWUzODJhIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ2FsY3VsYXRpb25WYWx1ZS5oCkBAIC00Myw3ICs0MywxMiBAQCBl
bnVtIENhbGNPcGVyYXRvciB7CiAgICAgQ2FsY0FkZCA9ICcrJywKICAgICBDYWxjU3VidHJhY3Qg
PSAnLScsCiAgICAgQ2FsY011bHRpcGx5ID0gJyonLAotICAgIENhbGNEaXZpZGUgPSAnLycsCisg
ICAgQ2FsY0RpdmlkZSA9ICcvJworfTsKKworZW51bSBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVl
UmFuZ2UgeworICAgIENhbGN1bGF0aW9uUmFuZ2VBbGwsCisgICAgQ2FsY3VsYXRpb25SYW5nZU5v
bk5lZ2F0aXZlCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDVjMjg5YmUz
YmJlODg2NGEwMDIxN2E4ZDVlNGFkZTlkY2NkMTVlNC4uZWYxYjBmMzQxZDA2N2Y1ZmNhZWI2M2E5
Nzc2M2E4NjhlOGVjYmJmMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIxICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
KCk6IGhhbmRsZSBub24tbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmll
bCBCYXRlcy4KKworICAgICAgICAqIGNzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVk
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGNzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWw6
IEFkZGVkLgorCiAyMDEyLTAyLTIwICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcu
Y29tPgogCiAgICAgICAgIEFkZCBhIG5ldyB0ZXN0IGNhc2UgZm9yIHRoZSBWaWJyYXRpb24gQVBJ
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmctZXhw
ZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjk5YmNkNzRkZDNjNTllMjZmMWU2M2NlZTA1YzA2Njc0OGYw
MTcwMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1w
YWRkaW5nLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8
c3R5bGU+CisgICAgcCB7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MTIwcHg7IGJhY2tncm91bmQtY29s
b3I6IGxpZ2h0Z3JlZW47fQorICAgIC5jb250cm9sIHsgcGFkZGluZzogLTEwMHB4OyB9Cis8L3N0
eWxlPgorCis8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Ij4KKyAgICA8cCBj
bGFzcz0iY29udHJvbCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGluZy48L3A+
CisgICAgPHAgY2xhc3M9ImNvbnRyb2wiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBh
ZGRpbmcuPC9wPgorICAgIDxwIGNsYXNzPSJjb250cm9sIj5UaGlzIGVsZW1lbnQgc2hvdWxkIGhh
dmUgemVybyBwYWRkaW5nLjwvcD4KKzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3Nz
My9jYWxjL25lZ2F0aXZlLXBhZGRpbmcuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdh
dGl2ZS1wYWRkaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDc1ZTgyOGQxZDE5ZWM0OGEwYWE1Zjg1MGVj
NjM0ZmM1MjA2YzE0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9u
ZWdhdGl2ZS1wYWRkaW5nLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUw+Cis8
c3R5bGU+CisgICAgcCB7IHdpZHRoOjIwMHB4OyBoZWlnaHQ6MTIwcHg7IGJhY2tncm91bmQtY29s
b3I6IGxpZ2h0Z3JlZW47IH0KKyAgICAuY29udHJvbCAgICAgICAgeyBwYWRkaW5nOiAtMTAwcHg7
IH0KKyAgICAuc2ltcGxlLXB4ICAgICAgeyBwYWRkaW5nOiAtd2Via2l0LWNhbGMoMTAwcHggLSAy
MDBweCk7IH0KKyAgICAuc2ltcGxlLXBlcmNlbnQgeyBwYWRkaW5nOiAtd2Via2l0LWNhbGMoNTAl
IC0gNjAlKTsgfQorPC9zdHlsZT4KKworPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93OyI+CisgICAgPHAgY2xhc3M9ImNvbnRyb2wiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6
ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxwIGNsYXNzPSJzaW1wbGUtcHgiPlRoaXMgZWxlbWVudCBz
aG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxwIGNsYXNzPSJzaW1wbGUtcGVyY2Vu
dCI+VGhpcyBlbGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGluZy48L3A+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128597</attachid>
            <date>2012-02-23 16:33:28 -0800</date>
            <delta_ts>2012-02-24 01:33:11 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-79188-20120224113325.patch</filename>
            <type>text/plain</type>
            <size>11034</size>
            <attacher name="Mike Lawther">mikelawther</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxNjk2YWRlZTEzYTY1
YzRjMzZhYTJjYzA3OTU1ODZmMTZkNDBlYi4uNGNhN2YyZjIyMjAxZDE2NGMzZjRkMmZiYWU2MGMz
MTNiN2FjNTA1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTAyLTIxICBNaWtl
IExhd3RoZXIgIDxtaWtlbGF3dGhlckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxj
KCk6IGhhbmRsZSBub24tbmVnYXRpdmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmll
bCBCYXRlcy4KKworICAgICAgICBTb21lIENTUyBwcm9wZXJ0aWVzIChlLmcuIHBhZGRpbmcpIGFy
ZSByZXF1aXJlZCB0byBiZSBub24tbmVnYXRpdmUuIFRoZXNlCisgICAgICAgIGFyZSBub3cgcmVz
dHJpY3RlZCB0byB0aGUgY29ycmVjdCByYW5nZS4KKworICAgICAgICBUZXN0czogY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbAorICAgICAgICAgICAgICAgY3NzMy9jYWxj
L25lZ2F0aXZlLXBhZGRpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFs
dWUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFs
dWU6OmNsYW1wVG9QZXJtaXR0ZWRSYW5nZSk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpDU1ND
YWxjVmFsdWU6OmRvdWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0NhbGNWYWx1ZTo6
aXNOZWdhdGl2ZSk6IEFkZGVkCisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmNvbXB1
dGVMZW5ndGhQeCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OmNyZWF0ZSk6Cisg
ICAgICAgICogY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuaDoKKyAgICAgICAgKENTU0NhbGNWYWx1
ZSk6CisgICAgICAgIChXZWJDb3JlOjpDU1NDYWxjVmFsdWU6OkNTU0NhbGNWYWx1ZSk6CisgICAg
ICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJzZXI6OnZh
bGlkQ2FsY3VsYXRpb25Vbml0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VD
YWxjdWxhdGlvbik6CisgICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAqIHBsYXRm
b3JtL0NhbGN1bGF0aW9uVmFsdWUuaDoKKwogMjAxMi0wMi0yMCAgWWFlbCBBaGFyb24gIDx5YWVs
LmFoYXJvbkBub2tpYS5jb20+CiAKICAgICAgICAgUmVncmVzc2lvbiAoMTA4MTM1KSBpc09wYXF1
ZSgpIHJldHVybnMgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NDYWxjdWxhdGlvblZhbHVlLmNwcAppbmRleCA4ZGQwYzhlMDlkZTJiMzViNGZiNmI1YmM2NjY0
YzdkYWQ1ZjQxYmI4Li44N2ZhNzM3ODI3MjY4MTdjZTBmMzJiYzA2MGJhZTJiOWFmY2RhOThiIDEw
MDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3VsYXRpb25WYWx1ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9uVmFsdWUuY3BwCkBAIC03NiwxNSAr
NzYsMjAgQEAgU3RyaW5nIENTU0NhbGNWYWx1ZTo6Y3VzdG9tQ3NzVGV4dCgpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuICIiOwogfQotCisgICAgCitkb3VibGUgQ1NTQ2FsY1ZhbHVlOjpjbGFtcFRvUGVy
bWl0dGVkUmFuZ2UoZG91YmxlIHZhbHVlKSBjb25zdAoreworICAgIHJldHVybiBtX25vbk5lZ2F0
aXZlICYmIHZhbHVlIDwgMCA/IDAgOiB2YWx1ZTsKK30gICAgCisgICAgCiBkb3VibGUgQ1NTQ2Fs
Y1ZhbHVlOjpkb3VibGVWYWx1ZSgpIGNvbnN0IAogeyAKLSAgICByZXR1cm4gbV9leHByZXNzaW9u
LT5kb3VibGVWYWx1ZSgpOworICAgIHJldHVybiBjbGFtcFRvUGVybWl0dGVkUmFuZ2UobV9leHBy
ZXNzaW9uLT5kb3VibGVWYWx1ZSgpKTsKIH0KLSAgICAKKwogZG91YmxlIENTU0NhbGNWYWx1ZTo6
Y29tcHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJlbmRlclN0eWxlKiBy
b290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyLCBib29sIGNvbXB1dGluZ0ZvbnRTaXplKSBjb25z
dAogewotICAgIHJldHVybiBtX2V4cHJlc3Npb24tPmNvbXB1dGVMZW5ndGhQeChjdXJyZW50U3R5
bGUsIHJvb3RTdHlsZSwgbXVsdGlwbGllciwgY29tcHV0aW5nRm9udFNpemUpOworICAgIHJldHVy
biBjbGFtcFRvUGVybWl0dGVkUmFuZ2UobV9leHByZXNzaW9uLT5jb21wdXRlTGVuZ3RoUHgoY3Vy
cmVudFN0eWxlLCByb290U3R5bGUsIG11bHRpcGxpZXIsIGNvbXB1dGluZ0ZvbnRTaXplKSk7CiB9
CiAgICAgCiBDU1NDYWxjRXhwcmVzc2lvbk5vZGU6On5DU1NDYWxjRXhwcmVzc2lvbk5vZGUoKSAK
QEAgLTM4MSw3ICszODYsNyBAQCBwcml2YXRlOgogICAgIH0KIH07CiAKLVBhc3NSZWZQdHI8Q1NT
Q2FsY1ZhbHVlPiBDU1NDYWxjVmFsdWU6OmNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NT
UGFyc2VyVmFsdWVMaXN0KiBwYXJzZXJWYWx1ZUxpc3QpCitQYXNzUmVmUHRyPENTU0NhbGNWYWx1
ZT4gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUoQ1NTUGFyc2VyU3RyaW5nIG5hbWUsIENTU1BhcnNlclZh
bHVlTGlzdCogcGFyc2VyVmFsdWVMaXN0LCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2Ug
cmFuZ2UpCiB7ICAgIAogICAgIENTU0NhbGNFeHByZXNzaW9uTm9kZVBhcnNlciBwYXJzZXI7ICAg
IAogICAgIFJlZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IGV4cHJlc3Npb247CkBAIC0zOTAs
NyArMzk1LDcgQEAgUGFzc1JlZlB0cjxDU1NDYWxjVmFsdWU+IENTU0NhbGNWYWx1ZTo6Y3JlYXRl
KENTU1BhcnNlclN0cmluZyBuYW1lLCBDU1NQYXJzZXJWYWwKICAgICAgICAgZXhwcmVzc2lvbiA9
IHBhcnNlci5wYXJzZUNhbGMocGFyc2VyVmFsdWVMaXN0KTsgICAgCiAgICAgLy8gRklYTUUgY2Fs
YyAoaHR0cDovL3dlYmtpdC5vcmcvYi8xNjY2MikgQWRkIHBhcnNpbmcgZm9yIG1pbiBhbmQgbWF4
IGhlcmUKIAotICAgIHJldHVybiBleHByZXNzaW9uID8gYWRvcHRSZWYobmV3IENTU0NhbGNWYWx1
ZShleHByZXNzaW9uKSkgOiAwOworICAgIHJldHVybiBleHByZXNzaW9uID8gYWRvcHRSZWYobmV3
IENTU0NhbGNWYWx1ZShleHByZXNzaW9uLCByYW5nZSkpIDogMDsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NhbGN1bGF0aW9u
VmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDYWxjdWxhdGlvblZhbHVlLmgKaW5kZXgg
MmRiZjQyOTdkOTU0OGZmNDliYzRiYWEwNzc3ZDQzMzJjZjk5ZTYyZi4uN2MzNjY3MTI1YjVkN2Ix
MmU1N2UzZmJmYmJkY2MyZjcwYmMzNDBmMyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0NhbGN1bGF0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ2FsY3Vs
YXRpb25WYWx1ZS5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFs
IH5DU1NDYWxjRXhwcmVzc2lvbk5vZGUoKSA9IDA7ICAKICAgICB2aXJ0dWFsIGJvb2wgaXNaZXJv
KCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgZG91YmxlIGRvdWJsZVZhbHVlKCkgY29uc3QgPSAw
OyAgCisgICAgdmlydHVhbCBkb3VibGUgZG91YmxlVmFsdWUoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBkb3VibGUgY29tcHV0ZUxlbmd0aFB4KFJlbmRlclN0eWxlKiBjdXJyZW50U3R5bGUsIFJl
bmRlclN0eWxlKiByb290U3R5bGUsIGRvdWJsZSBtdWx0aXBsaWVyID0gMS4wLCBib29sIGNvbXB1
dGluZ0ZvbnRTaXplID0gZmFsc2UpIGNvbnN0ID0gMDsKICAgICAKICAgICBDYWxjdWxhdGlvbkNh
dGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1cm4gbV9jYXRlZ29yeTsgfSAgICAKQEAgLTc5
LDIzICs3OSwyOCBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIAogY2xhc3MgQ1NTQ2FsY1ZhbHVlIDog
cHVibGljIENTU1ZhbHVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxDU1NDYWxj
VmFsdWU+IGNyZWF0ZShDU1NQYXJzZXJTdHJpbmcgbmFtZSwgQ1NTUGFyc2VyVmFsdWVMaXN0Kik7
CisgICAgc3RhdGljIFBhc3NSZWZQdHI8Q1NTQ2FsY1ZhbHVlPiBjcmVhdGUoQ1NTUGFyc2VyU3Ry
aW5nIG5hbWUsIENTU1BhcnNlclZhbHVlTGlzdCosIENhbGN1bGF0aW9uUGVybWl0dGVkVmFsdWVS
YW5nZSk7CiAKICAgICBDYWxjdWxhdGlvbkNhdGVnb3J5IGNhdGVnb3J5KCkgY29uc3QgeyByZXR1
cm4gbV9leHByZXNzaW9uLT5jYXRlZ29yeSgpOyB9CiAgICAgYm9vbCBpc0ludCgpIGNvbnN0IHsg
cmV0dXJuIG1fZXhwcmVzc2lvbi0+aXNJbnRlZ2VyKCk7IH0gICAgCiAgICAgZG91YmxlIGRvdWJs
ZVZhbHVlKCkgY29uc3Q7CisgICAgYm9vbCBpc05lZ2F0aXZlKCkgY29uc3QgeyByZXR1cm4gbV9l
eHByZXNzaW9uLT5kb3VibGVWYWx1ZSgpIDwgMDsgfQogICAgIGRvdWJsZSBjb21wdXRlTGVuZ3Ro
UHgoUmVuZGVyU3R5bGUqIGN1cnJlbnRTdHlsZSwgUmVuZGVyU3R5bGUqIHJvb3RTdHlsZSwgZG91
YmxlIG11bHRpcGxpZXIgPSAxLjAsIGJvb2wgY29tcHV0aW5nRm9udFNpemUgPSBmYWxzZSkgY29u
c3Q7CiAgICAgICAgIAogICAgIFN0cmluZyBjdXN0b21Dc3NUZXh0KCkgY29uc3Q7CiAgICAgCiBw
cml2YXRlOiAgICAKLSAgICBDU1NDYWxjVmFsdWUoUGFzc1JlZlB0cjxDU1NDYWxjRXhwcmVzc2lv
bk5vZGU+IGV4cHJlc3Npb24pCisgICAgQ1NTQ2FsY1ZhbHVlKFBhc3NSZWZQdHI8Q1NTQ2FsY0V4
cHJlc3Npb25Ob2RlPiBleHByZXNzaW9uLCBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2Ug
cmFuZ2UpCiAgICAgICAgIDogQ1NTVmFsdWUoQ2FsY3VsYXRpb25DbGFzcykKICAgICAgICAgLCBt
X2V4cHJlc3Npb24oZXhwcmVzc2lvbikKKyAgICAgICAgLCBtX25vbk5lZ2F0aXZlKHJhbmdlID09
IENhbGN1bGF0aW9uUmFuZ2VOb25OZWdhdGl2ZSkKICAgICB7CiAgICAgfQogICAgIAorICAgIGRv
dWJsZSBjbGFtcFRvUGVybWl0dGVkUmFuZ2UoZG91YmxlKSBjb25zdDsKKwogICAgIGNvbnN0IFJl
ZlB0cjxDU1NDYWxjRXhwcmVzc2lvbk5vZGU+IG1fZXhwcmVzc2lvbjsKKyAgICBjb25zdCBib29s
IG1fbm9uTmVnYXRpdmU7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjMjU3N2MwM2UwZjJjM2YzMDkyYWY2MTAxYmRiYjJkZWM1
YWNiMzk2Li45NDM3MTk1ZjA0M2UxNzA1ZDg0ZTBjMzc0MTFlZDFkMjY0NzJlYjU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNzA3LDcgKzcwNyw5IEBAIERvY3VtZW50KiBDU1NQYXJz
ZXI6OmZpbmREb2N1bWVudCgpIGNvbnN0CiAKIGJvb2wgQ1NTUGFyc2VyOjp2YWxpZENhbGN1bGF0
aW9uVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFVuaXRzIHVuaXRmbGFncykKIHsKLSAgICBp
ZiAoIXBhcnNlQ2FsY3VsYXRpb24odmFsdWUpKQorICAgIGJvb2wgbXVzdEJlTm9uTmVnYXRpdmUg
PSB1bml0ZmxhZ3MgJiBGTm9uTmVnOworCisgICAgaWYgKCFwYXJzZUNhbGN1bGF0aW9uKHZhbHVl
LCBtdXN0QmVOb25OZWdhdGl2ZSA/IENhbGN1bGF0aW9uUmFuZ2VOb25OZWdhdGl2ZSA6IENhbGN1
bGF0aW9uUmFuZ2VBbGwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBib29sIGIgPSBm
YWxzZTsKQEAgLTcxNywxNyArNzE5LDE1IEBAIGJvb2wgQ1NTUGFyc2VyOjp2YWxpZENhbGN1bGF0
aW9uVW5pdChDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFVuaXRzIHVuaXRmbGFncykKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDYWxjUGVyY2VudDoKICAgICAgICAgYiA9ICh1bml0ZmxhZ3MgJiBG
UGVyY2VudCk7Ci0gICAgICAgIC8vIEZJWE1FIGNhbGMgKGh0dHA6Ly93ZWJraXQub3JnL2IvMTY2
NjIpOiB0ZXN0IEZOb25OZWcgaGVyZSwgZWcKLSAgICAgICAgLy8gaWYgKGIgJiYgKHVuaXRmbGFn
cyAmIEZOb25OZWcpICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmRvdWJsZVZhbHVlKCkgPCAwKQot
ICAgICAgICAvLyAgICBiID0gZmFsc2U7CisgICAgICAgIGlmIChiICYmIG11c3RCZU5vbk5lZ2F0
aXZlICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmlzTmVnYXRpdmUoKSkKKyAgICAgICAgICAgIGIg
PSBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYWxjTnVtYmVyOgogICAgICAgICBi
ID0gKHVuaXRmbGFncyAmIEZOdW1iZXIpOwogICAgICAgICBpZiAoIWIgJiYgKHVuaXRmbGFncyAm
IEZJbnRlZ2VyKSAmJiBtX3BhcnNlZENhbGN1bGF0aW9uLT5pc0ludCgpKQogICAgICAgICAgICAg
YiA9IHRydWU7Ci0gICAgICAgIC8vIEZJWE1FIGNhbGMgKGh0dHA6Ly93ZWJraXQub3JnL2IvMTY2
NjIpOiB0ZXN0IEZOb25OZWcgaGVyZSwgZWcKLSAgICAgICAgLy8gaWYgKGIgJiYgKHVuaXRmbGFn
cyAmIEZOb25OZWcpICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmRvdWJsZVZhbHVlKCkgPCAwKQot
ICAgICAgICAvLyAgICBiID0gZmFsc2U7CisgICAgICAgIGlmIChiICYmIG11c3RCZU5vbk5lZ2F0
aXZlICYmIG1fcGFyc2VkQ2FsY3VsYXRpb24tPmlzTmVnYXRpdmUoKSkKKyAgICAgICAgICAgIGIg
PSBmYWxzZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDYWxjUGVyY2VudExlbmd0aDoKICAg
ICAgICAgYiA9ICh1bml0ZmxhZ3MgJiBGUGVyY2VudCkgJiYgKHVuaXRmbGFncyAmIEZMZW5ndGgp
OwpAQCAtNzQxOCw3ICs3NDE4LDcgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRm9udFZhcmlhbnRM
aWdhdHVyZXMoYm9vbCBpbXBvcnRhbnQpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgQ1NT
UGFyc2VyOjpwYXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkgCitib29sIENT
U1BhcnNlcjo6cGFyc2VDYWxjdWxhdGlvbihDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIENhbGN1bGF0
aW9uUGVybWl0dGVkVmFsdWVSYW5nZSByYW5nZSkgCiB7CiAgICAgQVNTRVJUKGlzQ2FsY3VsYXRp
b24odmFsdWUpKTsKICAgICAKQEAgLTc0MjcsNyArNzQyNyw3IEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZUNhbGN1bGF0aW9uKENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgQVNTRVJUKCFtX3BhcnNlZENhbGN1bGF0aW9uKTsKLSAgICBtX3BhcnNlZENh
bGN1bGF0aW9uID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUodmFsdWUtPmZ1bmN0aW9uLT5uYW1lLCBh
cmdzKTsKKyAgICBtX3BhcnNlZENhbGN1bGF0aW9uID0gQ1NTQ2FsY1ZhbHVlOjpjcmVhdGUodmFs
dWUtPmZ1bmN0aW9uLT5uYW1lLCBhcmdzLCByYW5nZSk7CiAgICAgCiAgICAgaWYgKCFtX3BhcnNl
ZENhbGN1bGF0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmgK
aW5kZXggODdkNTJmNWY1NmE3YjRiZWVjZGEyN2Y3NTQxMzZjYWFiMDI1MTU5Ni4uZjk1OGUxNWM5
NGNhMWQxNDhhYzMzNmVmNDQwOTZjYWNhM2I1ZTYzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaApA
QCAtMjA4LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICBib29sIHBhcnNlVGV4dEVtcGhhc2lzU3R5
bGUoYm9vbCBpbXBvcnRhbnQpOwogCiAgICAgYm9vbCBwYXJzZUxpbmVCb3hDb250YWluKGJvb2wg
aW1wb3J0YW50KTsKLSAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqKTsK
KyAgICBib29sIHBhcnNlQ2FsY3VsYXRpb24oQ1NTUGFyc2VyVmFsdWUqLCBDYWxjdWxhdGlvblBl
cm1pdHRlZFZhbHVlUmFuZ2UpOwogCiAgICAgYm9vbCBwYXJzZUZvbnRGZWF0dXJlVGFnKENTU1Zh
bHVlTGlzdCopOwogICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVNldHRpbmdzKGJvb2wgaW1wb3J0
YW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0NhbGN1bGF0aW9uVmFsdWUuaAppbmRleCA3
NjIxNzk0YTkxMDM5OTcyNzAxMzVlYjQ0NmQ3YWQ1N2Q1MWU1YTU1Li5kODk0NDVlODA2Y2I1ZWU4
MGY5ZjQxZjkwNzg3ZjhhNWI4OWUzODJhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9DYWxjdWxhdGlvblZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ2Fs
Y3VsYXRpb25WYWx1ZS5oCkBAIC00Myw3ICs0MywxMiBAQCBlbnVtIENhbGNPcGVyYXRvciB7CiAg
ICAgQ2FsY0FkZCA9ICcrJywKICAgICBDYWxjU3VidHJhY3QgPSAnLScsCiAgICAgQ2FsY011bHRp
cGx5ID0gJyonLAotICAgIENhbGNEaXZpZGUgPSAnLycsCisgICAgQ2FsY0RpdmlkZSA9ICcvJwor
fTsKKworZW51bSBDYWxjdWxhdGlvblBlcm1pdHRlZFZhbHVlUmFuZ2UgeworICAgIENhbGN1bGF0
aW9uUmFuZ2VBbGwsCisgICAgQ2FsY3VsYXRpb25SYW5nZU5vbk5lZ2F0aXZlCiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDVjMjg5YmUzYmJlODg2NGEwMDIxN2E4ZDVlNGFk
ZTlkY2NkMTVlNC4uZWYxYjBmMzQxZDA2N2Y1ZmNhZWI2M2E5Nzc2M2E4NjhlOGVjYmJmMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAyLTIxICBNaWtlIExhd3RoZXIgIDxtaWtlbGF3dGhl
ckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ1NTMyBjYWxjKCk6IGhhbmRsZSBub24tbmVnYXRp
dmUgdmFsdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03OTE4OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhbmllbCBCYXRlcy4KKworICAgICAgICAq
IGNzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGNzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAyLTIw
ICBLaWhvbmcgS3dvbiAgPGtpaG9uZy5rd29uQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFkZCBh
IG5ldyB0ZXN0IGNhc2UgZm9yIHRoZSBWaWJyYXRpb24gQVBJLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRpbmctZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Yjk5YmNkNzRkZDNjNTllMjZmMWU2M2NlZTA1YzA2Njc0OGYwMTcwMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLWV4cGVjdGVkLmh0bWwK
QEAgLTAsMCArMSwxMSBAQAorPCFET0NUWVBFIEhUTUw+Cis8c3R5bGU+CisgICAgcCB7IHdpZHRo
OjIwMHB4OyBoZWlnaHQ6MTIwcHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47fQorICAg
IC5jb250cm9sIHsgcGFkZGluZzogLTEwMHB4OyB9Cis8L3N0eWxlPgorCis8ZGl2IHN0eWxlPSJi
YWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Ij4KKyAgICA8cCBjbGFzcz0iY29udHJvbCI+VGhpcyBl
bGVtZW50IHNob3VsZCBoYXZlIHplcm8gcGFkZGluZy48L3A+CisgICAgPHAgY2xhc3M9ImNvbnRy
b2wiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAgIDxwIGNs
YXNzPSJjb250cm9sIj5UaGlzIGVsZW1lbnQgc2hvdWxkIGhhdmUgemVybyBwYWRkaW5nLjwvcD4K
KzwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9jYWxjL25lZ2F0aXZlLXBhZGRp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDc1ZTgyOGQxZDE5ZWM0OGEwYWE1Zjg1MGVjNjM0ZmM1MjA2YzE0MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvY2FsYy9uZWdhdGl2ZS1wYWRkaW5nLmh0bWwK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUw+Cis8c3R5bGU+CisgICAgcCB7IHdpZHRo
OjIwMHB4OyBoZWlnaHQ6MTIwcHg7IGJhY2tncm91bmQtY29sb3I6IGxpZ2h0Z3JlZW47IH0KKyAg
ICAuY29udHJvbCAgICAgICAgeyBwYWRkaW5nOiAtMTAwcHg7IH0KKyAgICAuc2ltcGxlLXB4ICAg
ICAgeyBwYWRkaW5nOiAtd2Via2l0LWNhbGMoMTAwcHggLSAyMDBweCk7IH0KKyAgICAuc2ltcGxl
LXBlcmNlbnQgeyBwYWRkaW5nOiAtd2Via2l0LWNhbGMoNTAlIC0gNjAlKTsgfQorPC9zdHlsZT4K
KworPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyI+CisgICAgPHAgY2xhc3M9
ImNvbnRyb2wiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRpbmcuPC9wPgorICAg
IDxwIGNsYXNzPSJzaW1wbGUtcHgiPlRoaXMgZWxlbWVudCBzaG91bGQgaGF2ZSB6ZXJvIHBhZGRp
bmcuPC9wPgorICAgIDxwIGNsYXNzPSJzaW1wbGUtcGVyY2VudCI+VGhpcyBlbGVtZW50IHNob3Vs
ZCBoYXZlIHplcm8gcGFkZGluZy48L3A+Cis8L2Rpdj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>