<?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>100851</bug_id>
          
          <creation_ts>2012-10-31 06:41:44 -0700</creation_ts>
          <short_desc>[V8] use toV8Fast in all relevant Node getters</short_desc>
          <delta_ts>2012-11-14 03:14:57 -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>
          <dependson>102082</dependson>
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dan Carney">dcarney</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>755238</commentid>
    <comment_count>0</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-31 06:41:44 -0700</bug_when>
    <thetext>[V8] use toV8Fast in all relevant getters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755242</commentid>
    <comment_count>1</comment_count>
      <attachid>171640</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-31 06:45:51 -0700</bug_when>
    <thetext>Created attachment 171640
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755270</commentid>
    <comment_count>2</comment_count>
      <attachid>171640</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-10-31 07:13:46 -0700</bug_when>
    <thetext>Comment on attachment 171640
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:297
&gt; +    die(&quot;IsDOMNodeType is out of date with respect to $interfaceName&quot;) if IsDOMNodeType($interfaceName) != IsNodeSubType($dataNode);

Why are both IsDOMNodeType() and IsNodeSubType() needed, given that they should return the same result?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1121
&gt; +    } elsif (IsDOMNodeType($attrType) &amp;&amp; IsDOMNodeType($interfaceName)) {
&gt; +        AddToImplIncludes($attrType.&quot;.h&quot;);
&gt;          push(@implContentDecls, &quot;    return toV8Fast($result, info, imp);\n&quot;);

Some Node-type classes have custom implementation of toV8() in bindings/v8/custom/*. Wouldn&apos;t it cause a problem? I mean, if you call toV8Fast() here, you might end up failing to call custom toV8().

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:-4031
&gt; -    return 1 if $type eq &apos;HTMLElement&apos;;
&gt; -    return 1 if $type eq &apos;HTMLUnknownElement&apos;;
&gt; -    return 1 if $type eq &apos;HTMLFormElement&apos;;
&gt; -    return 1 if $type eq &apos;HTMLTableCaptionElement&apos;;
&gt; -    return 1 if $type eq &apos;HTMLTableSectionElement&apos;;

Isn&apos;t IsDOMNodeType() used by other places? I want to make sure that this change won&apos;t affect other places.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>755362</commentid>
    <comment_count>3</comment_count>
      <attachid>171640</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-10-31 09:05:03 -0700</bug_when>
    <thetext>Comment on attachment 171640
Patch

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

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:297
&gt;&gt; +    die(&quot;IsDOMNodeType is out of date with respect to $interfaceName&quot;) if IsDOMNodeType($interfaceName) != IsNodeSubType($dataNode);
&gt; 
&gt; Why are both IsDOMNodeType() and IsNodeSubType() needed, given that they should return the same result?

One is only useful for the currently executing dataNode. The other can check the DOMNode-iness of anything based on name.

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:1121
&gt;&gt;          push(@implContentDecls, &quot;    return toV8Fast($result, info, imp);\n&quot;);
&gt; 
&gt; Some Node-type classes have custom implementation of toV8() in bindings/v8/custom/*. Wouldn&apos;t it cause a problem? I mean, if you call toV8Fast() here, you might end up failing to call custom toV8().

Yep.  Fix on its way.

&gt;&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:-4031
&gt;&gt; -    return 1 if $type eq &apos;HTMLTableSectionElement&apos;;
&gt; 
&gt; Isn&apos;t IsDOMNodeType() used by other places? I want to make sure that this change won&apos;t affect other places.

It&apos;s used in a few other places. I can check it out, but it&apos;s pretty poorly named if this update is not correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756254</commentid>
    <comment_count>4</comment_count>
      <attachid>171854</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-01 08:07:43 -0700</bug_when>
    <thetext>Created attachment 171854
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756268</commentid>
    <comment_count>5</comment_count>
      <attachid>171854</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 08:24:57 -0700</bug_when>
    <thetext>Comment on attachment 171854
Patch

This looks great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756269</commentid>
    <comment_count>6</comment_count>
      <attachid>171854</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-01 08:25:41 -0700</bug_when>
    <thetext>Comment on attachment 171854
Patch

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

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:527
&gt; +    my $has_empty_toV8 = 0;
&gt; +    my $has_fast_toV8 = 0;

WebKit uses camelCase for variable names.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:604
&gt; +    die(&quot;HasFastToV8 is out of sync with respect to interface $interfaceName [$has_fast_toV8]\n&quot;) if HasFastToV8($interfaceName) != $has_fast_toV8;
&gt; +    die(&quot;HasEmptyToV8 is out of sync with respect to interface $interfaceName [$has_fast_toV8]\n&quot;) if HasEmptyToV8($interfaceName) != $has_empty_toV8;

Basically we don&apos;t want to introduce hard-coded class lists (i.e. HasFastToV8() and HasEmptyToV8()). See below comments.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:4060
&gt; +sub HasEmptyToV8
&gt; +{
&gt; +    my $type = shift;
&gt; +
&gt; +    return 1 if $type eq &apos;Element&apos;;
&gt; +    return 1 if $type eq &apos;SVGRenderingIntent&apos;;
&gt; +    return 1 if $type eq &apos;SVGUnitTypes&apos;;
&gt; +    return 1 if $type eq &apos;SVGZoomAndPan&apos;;
&gt; +
&gt; +    return 0;
&gt; +}

What is this?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:4071
&gt; +    return 0 if $type eq &apos;Document&apos;;
&gt; +    return 0 if $type eq &apos;Element&apos;;
&gt; +    return 0 if $type eq &apos;HTMLDocument&apos;;
&gt; +    return 0 if $type eq &apos;HTMLElement&apos;;
&gt; +    return 0 if $type eq &apos;SVGDocument&apos;;
&gt; +    return 0 if $type eq &apos;SVGElement&apos;;

Wouldn&apos;t it be possible to rename toV8() in custom bindings to toV8Fast() and thus remove this hard-coded class list from CodeGeneratorV8.pm? (It would be better if we could make the implementation of custom toV8Fast() *fast*er, but let&apos;s do it in follow-up patches.)

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:4076
&gt;  sub IsDOMNodeType

Can&apos;t we just replace IsDOMNodeType() with IsNodeSubType(), and thus kill IsDOMNodeType() ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756273</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 08:28:37 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=171854&amp;action=review

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:545
&gt; +inline v8::Handle&lt;v8::Value&gt; toV8Fast(${nativeType}* node, const v8::AccessorInfo&amp; info, Node* holder)

It&apos;s unfortunate that we now have two copies of this function definition.  Maybe we could make a helper &quot;generate&quot; function to share the code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756276</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-01 08:31:00 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171854&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:545
&gt; &gt; +inline v8::Handle&lt;v8::Value&gt; toV8Fast(${nativeType}* node, const v8::AccessorInfo&amp; info, Node* holder)
&gt; 
&gt; It&apos;s unfortunate that we now have two copies of this function definition.  Maybe we could make a helper &quot;generate&quot; function to share the code?

Or can we just generate nothing so that the virtualized Node::toV8Fast() is called ?


dcarney: Sorry for setting my r? by mistake... please reset it:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>756300</commentid>
    <comment_count>9</comment_count>
      <attachid>171854</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-01 08:44:30 -0700</bug_when>
    <thetext>Comment on attachment 171854
Patch

Please address haraken&apos;s comments before landing.  It might be worth posting another iteration of the patch for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>760493</commentid>
    <comment_count>10</comment_count>
      <attachid>171854</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-07 02:49:04 -0800</bug_when>
    <thetext>Comment on attachment 171854
Patch

I discussed with dcarney a bit more offline. To clean up confusing toV8(), toV8Fast(), toV8Slow() and custom toV8(), we decided to land the patch step by step. For now marking r-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766587</commentid>
    <comment_count>11</comment_count>
      <attachid>174099</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-14 01:04:50 -0800</bug_when>
    <thetext>Created attachment 174099
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766592</commentid>
    <comment_count>12</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-14 01:07:44 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=174099) [details]
&gt; Patch

As per Kentaro&apos;s request, we now have toV8Fast on all Node subclasses which dispatches correctly in all cases (in some cases to regular toV8).  toV8Slow was removed in another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766603</commentid>
    <comment_count>13</comment_count>
      <attachid>174099</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 01:20:31 -0800</bug_when>
    <thetext>Comment on attachment 174099
Patch

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

Looks good to me as an incremental step to implement toV8Fast() and kill toV8Slow().

Just to clarify, would you explain what code will be executed for HTMLDivElement::toV8Fast() by this change?

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:606
&gt; +        V8DOMWindowShell* context = V8DOMWindowShell::getEntered();
&gt; +        ASSERT(context);
&gt; +        v8::Handle&lt;v8::Object&gt; wrapper = context-&gt;world()-&gt;isolatedWorldDOMDataStore()-&gt;get(impl);

Consider a change from abarth (https://bugs.webkit.org/show_bug.cgi?id=102156).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766605</commentid>
    <comment_count>14</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 01:21:44 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 174099 [details])
&gt; Looks good to me as an incremental step to implement toV8Fast() and kill toV8Slow().
&gt; 
&gt; Just to clarify, would you explain what code will be executed for HTMLDivElement::toV8Fast() by this change?

Maybe you need to update run-bindings-tests results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766674</commentid>
    <comment_count>15</comment_count>
      <attachid>174117</attachid>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-14 02:37:41 -0800</bug_when>
    <thetext>Created attachment 174117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766675</commentid>
    <comment_count>16</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-14 02:38:04 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 174099 [details] [details])
&gt; &gt; Looks good to me as an incremental step to implement toV8Fast() and kill toV8Slow().
&gt; &gt; 
&gt; &gt; Just to clarify, would you explain what code will be executed for HTMLDivElement::toV8Fast() by this change?
&gt; 
&gt; Maybe you need to update run-bindings-tests results.

fixed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766678</commentid>
    <comment_count>17</comment_count>
    <who name="Dan Carney">dcarney</who>
    <bug_when>2012-11-14 02:39:46 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 174099 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=174099&amp;action=review
&gt; 
&gt; Looks good to me as an incremental step to implement toV8Fast() and kill toV8Slow().
&gt; 
&gt; Just to clarify, would you explain what code will be executed for HTMLDivElement::toV8Fast() by this change?

it will call toV8Fast(HTMLDivElement*... which will perform the fast check and on cache miss, dispatch the wrapping call through dispatchWrap(HTMLDivElement*... instead of dispatchWrap(Node*..., which would eventually call dispatchWrap(HTMLDivElement*...  anyway</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766681</commentid>
    <comment_count>18</comment_count>
      <attachid>174117</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-11-14 02:43:30 -0800</bug_when>
    <thetext>Comment on attachment 174117
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766707</commentid>
    <comment_count>19</comment_count>
      <attachid>174117</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 03:14:52 -0800</bug_when>
    <thetext>Comment on attachment 174117
Patch

Clearing flags on attachment: 174117

Committed r134588: &lt;http://trac.webkit.org/changeset/134588&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766708</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-14 03:14:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171640</attachid>
            <date>2012-10-31 06:45:51 -0700</date>
            <delta_ts>2012-11-01 08:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100851-20121031144414.patch</filename>
            <type>text/plain</type>
            <size>3784</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzMDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI0MDgyMzUxYjYyYmM3
MTNmZTA0MjY4ODI1YTViZmNlYmE0MGNjMi4uMmViZjA3NTM2YzFjNGNlNmQ3OGNmODFhOTNkZDZh
MWU5NDEwMDgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTMxICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gdXNlIHRvVjhGYXN0
IGluIGFsbCByZWxldmFudCBnZXR0ZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDA4NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGUgdG9WOEZhc3QgZnVuY3Rpb24gZm9yIE5vZGUgb2JqZWN0cyBp
cyBub3cgY2FsbGVkIGluIGFsbCBnZXR0ZXJzCisgICAgICAgIGluc3RlYWQgb2YgdG9WOC4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMuIFRlc3QgY292ZXJhZ2UgZXh0ZW5zaXZlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZUhlYWRlcik6CisgICAgICAgIChHZW5lcmF0ZU5vcm1hbEF0dHJHZXR0ZXIpOgorICAgICAgICAo
SXNET01Ob2RlVHlwZSk6CisKIDIwMTItMTAtMzEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYXR0ZW1wdCB0byBmaXggdGhlIHJl
bGVhc2UgYnVpbGQgYnkgbm90IGV4cG9ydGluZyBzeW1ib2xzIHRoYXQgYXJlbid0IGRlZmluZWQg
dGhlcmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVH
ZW5lcmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCmluZGV4IDM5N2QyYzM4ZTM2MjA0MjdlNmIzZjEwZTNhZDgyMTRiZGYwZGZlMjgu
LmM5MDU2YmYzMGNlNjZkMzBjNTdjMjViNGJiOTZlOGU5NTU1OWRiYjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yOTMs
NiArMjkzLDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIENvcHkgY29udGVudHMgb2Yg
cGFyZW50IGNsYXNzZXMgZXhjZXB0IHRoZSBmaXJzdCBwYXJlbnQuCiAgICAgJGNvZGVHZW5lcmF0
b3ItPkFkZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRh
dGFOb2RlLCBcQGFsbFBhcmVudHMsIDEpOworICAgICMgRW5zdXJlIHRoZSBJc0RPTU5vZGVUeXBl
IGZ1bmN0aW9uIGlzIGluIHN5bmMuCisgICAgZGllKCJJc0RPTU5vZGVUeXBlIGlzIG91dCBvZiBk
YXRlIHdpdGggcmVzcGVjdCB0byAkaW50ZXJmYWNlTmFtZSIpIGlmIElzRE9NTm9kZVR5cGUoJGlu
dGVyZmFjZU5hbWUpICE9IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKTsKICAgICAkY29kZUdlbmVy
YXRvci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsKIAogICAgIG15ICRoYXNE
ZXBlbmRlbnRMaWZldGltZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RGVw
ZW5kZW50TGlmZXRpbWUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3Rp
dmVET01PYmplY3QifQpAQCAtMTExNCw4ICsxMTE2LDggQEAgRU5ECiAgICAgaW5mby5Ib2xkZXIo
KS0+U2V0SGlkZGVuVmFsdWUocHJvcGVydHlOYW1lLCB2YWx1ZSk7CiAgICAgcmV0dXJuIHZhbHVl
OwogRU5ECi0gICAgfSBlbHNpZiAoSXNET01Ob2RlVHlwZShHZXRUeXBlRnJvbVNpZ25hdHVyZSgk
YXR0cmlidXRlLT5zaWduYXR1cmUpKSAmJiAkaW1wbENsYXNzTmFtZSBlcSAiTm9kZSIpIHsKLSAg
ICAgICAgIyBGSVhNRTogV2Ugd291bGQgbGlrZSB0byB1c2UgdG9WOEZhc3QgaW4gbW9yZSBzaXR1
YXRpb25zLgorICAgIH0gZWxzaWYgKElzRE9NTm9kZVR5cGUoJGF0dHJUeXBlKSAmJiBJc0RPTU5v
ZGVUeXBlKCRpbnRlcmZhY2VOYW1lKSkgeworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygkYXR0
clR5cGUuIi5oIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJu
IHRvVjhGYXN0KCRyZXN1bHQsIGluZm8sIGltcCk7XG4iKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICIgLiBSZXR1cm5OYXRpdmVUb0pTVmFsdWUo
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAkcmVzdWx0LCAiaW5mby5Ib2xkZXIoKSIsICJpbmZvLkdl
dElzb2xhdGUoKSIpLiI7XG4iKTsKQEAgLTQwMTUsMjcgKzQwMTcsMjUgQEAgc3ViIElzRE9NTm9k
ZVR5cGUKICAgICBteSAkdHlwZSA9IHNoaWZ0OwogCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
J0F0dHInOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdDaGFyYWN0ZXJEYXRhJzsKICAgICBy
ZXR1cm4gMSBpZiAkdHlwZSBlcSAnQ0RBVEFTZWN0aW9uJzsKICAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAnQ29tbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0RvY3VtZW50JzsKICAg
ICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnRG9jdW1lbnRGcmFnbWVudCc7CiAgICAgcmV0dXJuIDEg
aWYgJHR5cGUgZXEgJ0RvY3VtZW50VHlwZSc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0Vs
ZW1lbnQnOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdFbnRpdHknOwogICAgIHJldHVybiAx
IGlmICR0eXBlIGVxICdFbnRpdHlSZWZlcmVuY2UnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVx
ICdIVE1MQ2FudmFzRWxlbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxEb2N1
bWVudCc7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxFbGVtZW50JzsKLSAgICByZXR1
cm4gMSBpZiAkdHlwZSBlcSAnSFRNTFVua25vd25FbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAk
dHlwZSBlcSAnSFRNTEZvcm1FbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRN
TFRhYmxlQ2FwdGlvbkVsZW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1MVGFi
bGVTZWN0aW9uRWxlbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ05vZGUnOworICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICdOb3RhdGlvbic7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUg
ZXEgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbic7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NW
R0VsZW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdTVkdEb2N1bWVudCc7Ci0gICAg
cmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NWR1NWR0VsZW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0
eXBlIGVxICdTVkdVc2VFbGVtZW50JzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnU2hhZG93
Um9vdCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1RleHQnOworICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICdTVkdEb2N1bWVudCc7CisKKyAgICByZXR1cm4gMSBpZiAkdHlwZSA9fiAvXkhU
TUwuKkVsZW1lbnQkLzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSA9fiAvXlNWRy4qRWxlbWVudCQv
OwogCiAgICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171854</attachid>
            <date>2012-11-01 08:07:43 -0700</date>
            <delta_ts>2012-11-14 01:04:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100851-20121101160604.patch</filename>
            <type>text/plain</type>
            <size>7492</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyOTk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI0MDgyMzUxYjYyYmM3
MTNmZTA0MjY4ODI1YTViZmNlYmE0MGNjMi4uY2U3ZDg3MjdlZTFhYzQzYTUwYzU1ZDc2MmQ0OWE2
Zjc4MTA5N2IwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTAxICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gdXNlIHRvVjhGYXN0
IGluIGFsbCByZWxldmFudCBOb2RlIGdldHRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0b1Y4RmFzdCBmdW5jdGlvbiBmb3IgTm9kZSBvYmpl
Y3RzIGlzIG5vdyBjYWxsZWQgaW4gYWxsIGdldHRlcnMKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Y4
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjb3ZlcmFnZSBleHRlbnNpdmUuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcik6CisgICAg
ICAgIChIYXNFbXB0eVRvVjgpOgorICAgICAgICAoSGFzRmFzdFRvVjgpOgorICAgICAgICAoSXNE
T01Ob2RlVHlwZSk6CisKIDIwMTItMTAtMzEgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgYXR0ZW1wdCB0byBmaXggdGhlIHJlbGVh
c2UgYnVpbGQgYnkgbm90IGV4cG9ydGluZyBzeW1ib2xzIHRoYXQgYXJlbid0IGRlZmluZWQgdGhl
cmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3JWOC5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
clY4LnBtCmluZGV4IDM5N2QyYzM4ZTM2MjA0MjdlNmIzZjEwZTNhZDgyMTRiZGYwZGZlMjguLmQw
NGQzMTJjYmFlZDhlMGQwOGQzZGJlOWRlY2NkZmVlN2FiYWE1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCkBAIC0yOTMsNiAr
MjkzLDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAKICAgICAjIENvcHkgY29udGVudHMgb2YgcGFy
ZW50IGNsYXNzZXMgZXhjZXB0IHRoZSBmaXJzdCBwYXJlbnQuCiAgICAgJGNvZGVHZW5lcmF0b3It
PkFkZE1ldGhvZHNDb25zdGFudHNBbmRBdHRyaWJ1dGVzRnJvbVBhcmVudENsYXNzZXMoJGRhdGFO
b2RlLCBcQGFsbFBhcmVudHMsIDEpOworICAgICMgRW5zdXJlIHRoZSBJc0RPTU5vZGVUeXBlIGZ1
bmN0aW9uIGlzIGluIHN5bmMuCisgICAgZGllKCJJc0RPTU5vZGVUeXBlIGlzIG91dCBvZiBkYXRl
IHdpdGggcmVzcGVjdCB0byAkaW50ZXJmYWNlTmFtZSIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVy
ZmFjZU5hbWUpICE9IElzTm9kZVN1YlR5cGUoJGRhdGFOb2RlKTsKICAgICAkY29kZUdlbmVyYXRv
ci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsKIAogICAgIG15ICRoYXNEZXBl
bmRlbnRMaWZldGltZSA9ICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RGVwZW5k
ZW50TGlmZXRpbWUifSB8fCAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVE
T01PYmplY3QifQpAQCAtNDkxLDYgKzQ5MywxMiBAQCBFTkQKIEVORAogICAgIH0KIAorICAgIGlm
IChIYXNGYXN0VG9WOCgkaW50ZXJmYWNlTmFtZSkgJiYgJGludGVyZmFjZU5hbWUgbmUgIk5vZGUi
KSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKKyAgICBmcmllbmQgdjg6
OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjhGYXN0KCR7bmF0aXZlVHlwZX0qIG5vZGUsIGNvbnN0IHY4
OjpBY2Nlc3NvckluZm8mIGluZm8sIE5vZGUqIGhvbGRlcik7CitFTkQKKyAgICB9CisKICAgICBt
eSAkd3JhcFNsb3dBcmd1bWVudFR5cGUgPSBHZXRQYXNzUmVmUHRyVHlwZSgkbmF0aXZlVHlwZSk7
CiAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgPDxFTkQpOwogcHJpdmF0ZToKQEAgLTUxNSw3ICs1
MjMsMTAgQEAgRU5ECiB9CiBFTkQKIAorICAgIG15ICRoYXNfZW1wdHlfdG9WOCA9IDA7CisgICAg
bXkgJGhhc19mYXN0X3RvVjggPSAwOwogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAnRWxlbWVu
dCcgb3IgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiU3VwcHJlc3NUb0pTT2JqZWN0
In0pIHsKKyAgICAgICAgJGhhc19lbXB0eV90b1Y4ID0gMTsKICAgICAgICAgIyBEbyBub3QgZ2Vu
ZXJhdGUgdG9WOCgpIGZvciBwZXJmb3JtYW5jZSBvcHRpbWl6YXRpb24uCiAgICAgfSBlbHNpZiAo
ISgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Ub0pTT2JqZWN0In0gb3Ig
JGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiVjhDdXN0b21Ub0pTT2JqZWN0In0pKSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKQEAgLTUyNywxMiArNTM4LDM1
IEBAIGlubGluZSB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOCgke25hdGl2ZVR5cGV9KiBpbXBs
LCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyCiAgICAgcmV0dXJuICR7Y2xhc3NOYW1lfTo6d3Jh
cChpbXBsLCBjcmVhdGlvbkNvbnRleHQsIGlzb2xhdGUpOwogfQogRU5ECisgICAgICAgIGlmIChJ
c05vZGVTdWJUeXBlKCRkYXRhTm9kZSkpIHsKKyAgICAgICAgICAgICRoYXNfZmFzdF90b1Y4ID0g
MTsKKyAgICAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKKworaW5saW5lIHY4
OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4RmFzdCgke25hdGl2ZVR5cGV9KiBub2RlLCBjb25zdCB2
ODo6QWNjZXNzb3JJbmZvJiBpbmZvLCBOb2RlKiBob2xkZXIpCit7CisgICAgaWYgKFVOTElLRUxZ
KCFub2RlKSkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKGluZm8uR2V0SXNvbGF0ZSgpKTsKKyAg
ICAvLyBXaGF0IHdlJ2QgcmVhbGx5IGxpa2UgdG8gY2hlY2sgaGVyZSBpcyB3aGV0aGVyIHdlJ3Jl
IGluIHRoZSBtYWluIHdvcmxkIG9yCisgICAgLy8gaW4gYW4gaXNvbGF0ZWQgd29ybGQuIFRoZSBm
YXN0ZXN0IHdheSB3ZSBrbm93IGhvdyB0byBkbyB0aGF0IGlzIHRvIGNoZWNrCisgICAgLy8gd2hl
dGhlciB0aGUgaG9sZGVyJ3MgaW5saW5lIHdyYXBwZXIgaXMgdGhlIHNhbWUgd3JhcHBlciB3ZSBz
ZWUgaW4gdGhlCisgICAgLy8gdjg6OkFjY2Vzc29ySW5mby4KKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IGhvbGRlcldyYXBwZXIgPSBpbmZvLkhvbGRlcigpOworICAgIGlmIChob2xkZXItPndy
YXBwZXIoKSA9PSBob2xkZXJXcmFwcGVyKSB7CisgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlciA9IG5vZGUtPndyYXBwZXIoKTsKKyAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1w
dHkoKSkKKyAgICAgICAgICAgIHJldHVybiB3cmFwcGVyOworICAgIH0KKyAgICByZXR1cm4gJHtj
bGFzc05hbWV9Ojp3cmFwU2xvdyhub2RlLCBob2xkZXJXcmFwcGVyLCBpbmZvLkdldElzb2xhdGUo
KSk7Cit9CitFTkQKKyAgICAgICAgfQogICAgIH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIG5lICdO
b2RlJykgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCA8PEVORCk7CiAKIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4KCR7bmF0aXZlVHlwZX0qLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+
IGNyZWF0aW9uQ29udGV4dCA9IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4oKSwgdjg6Oklzb2xhdGUq
ID0gMCk7CiBFTkQKICAgICB9IGVsc2UgeworICAgICAgICAkaGFzX2Zhc3RfdG9WOCA9IDE7CiAg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKIAogdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IHRvVjhTbG93KE5vZGUqLCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4
dCwgdjg6Oklzb2xhdGUqKTsKQEAgLTU2Niw2ICs2MDAsOSBAQCBpbmxpbmUgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjhGYXN0KE5vZGUqIG5vZGUsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8sCiBFTkQKICAgICB9CiAKKyAgICBkaWUoIkhhc0Zhc3RUb1Y4IGlzIG91dCBvZiBzeW5jIHdp
dGggcmVzcGVjdCB0byBpbnRlcmZhY2UgJGludGVyZmFjZU5hbWUgWyRoYXNfZmFzdF90b1Y4XVxu
IikgaWYgSGFzRmFzdFRvVjgoJGludGVyZmFjZU5hbWUpICE9ICRoYXNfZmFzdF90b1Y4OworICAg
IGRpZSgiSGFzRW1wdHlUb1Y4IGlzIG91dCBvZiBzeW5jIHdpdGggcmVzcGVjdCB0byBpbnRlcmZh
Y2UgJGludGVyZmFjZU5hbWUgWyRoYXNfZmFzdF90b1Y4XVxuIikgaWYgSGFzRW1wdHlUb1Y4KCRp
bnRlcmZhY2VOYW1lKSAhPSAkaGFzX2VtcHR5X3RvVjg7CisKICAgICBwdXNoKEBoZWFkZXJDb250
ZW50LCA8PEVORCk7CiBpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoUGFzc1JlZlB0
cjwgJHtuYXRpdmVUeXBlfSA+IGltcGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25D
b250ZXh0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogaXNvbGF0ZSA9
IDApCiB7CkBAIC0xMTE0LDggKzExNTEsOCBAQCBFTkQKICAgICBpbmZvLkhvbGRlcigpLT5TZXRI
aWRkZW5WYWx1ZShwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKICAgICByZXR1cm4gdmFsdWU7CiBFTkQK
LSAgICB9IGVsc2lmIChJc0RPTU5vZGVUeXBlKEdldFR5cGVGcm9tU2lnbmF0dXJlKCRhdHRyaWJ1
dGUtPnNpZ25hdHVyZSkpICYmICRpbXBsQ2xhc3NOYW1lIGVxICJOb2RlIikgewotICAgICAgICAj
IEZJWE1FOiBXZSB3b3VsZCBsaWtlIHRvIHVzZSB0b1Y4RmFzdCBpbiBtb3JlIHNpdHVhdGlvbnMu
CisgICAgfSBlbHNpZiAoSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSkgJiYgKEhhc0Zhc3RU
b1Y4KCRhdHRyVHlwZSkgfHwgKElzRE9NTm9kZVR5cGUoJGF0dHJUeXBlKSAmJiBIYXNFbXB0eVRv
VjgoJGF0dHJUeXBlKSkpKSB7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCRhdHRyVHlwZS4i
LmgiKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1cm4gdG9WOEZh
c3QoJHJlc3VsdCwgaW5mbywgaW1wKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIHB1c2go
QGltcGxDb250ZW50RGVjbHMsICIgICAgIiAuIFJldHVybk5hdGl2ZVRvSlNWYWx1ZSgkYXR0cmli
dXRlLT5zaWduYXR1cmUsICRyZXN1bHQsICJpbmZvLkhvbGRlcigpIiwgImluZm8uR2V0SXNvbGF0
ZSgpIikuIjtcbiIpOwpAQCAtNDAxMCwzMiArNDA0Nyw1NyBAQCBzdWIgR2V0VHlwZU5hbWVPZkV4
dGVybmFsVHlwZWRBcnJheQogICAgIGRpZSAiVHlwZWRBcnJheSBvZiB1bmtub3duIHR5cGUgaXMg
Zm91bmQiOwogfQogCitzdWIgSGFzRW1wdHlUb1Y4Cit7CisgICAgbXkgJHR5cGUgPSBzaGlmdDsK
KworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdFbGVtZW50JzsKKyAgICByZXR1cm4gMSBpZiAk
dHlwZSBlcSAnU1ZHUmVuZGVyaW5nSW50ZW50JzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAn
U1ZHVW5pdFR5cGVzJzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnU1ZHWm9vbUFuZFBhbic7
CisKKyAgICByZXR1cm4gMDsKK30KKworc3ViIEhhc0Zhc3RUb1Y4Cit7CisgICAgbXkgJHR5cGUg
PSBzaGlmdDsKKworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICdEb2N1bWVudCc7CisgICAgcmV0
dXJuIDAgaWYgJHR5cGUgZXEgJ0VsZW1lbnQnOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICdI
VE1MRG9jdW1lbnQnOworICAgIHJldHVybiAwIGlmICR0eXBlIGVxICdIVE1MRWxlbWVudCc7Cisg
ICAgcmV0dXJuIDAgaWYgJHR5cGUgZXEgJ1NWR0RvY3VtZW50JzsKKyAgICByZXR1cm4gMCBpZiAk
dHlwZSBlcSAnU1ZHRWxlbWVudCc7CisKKyAgICByZXR1cm4gSXNET01Ob2RlVHlwZSgkdHlwZSk7
Cit9CisKIHN1YiBJc0RPTU5vZGVUeXBlCiB7CiAgICAgbXkgJHR5cGUgPSBzaGlmdDsKIAogICAg
IHJldHVybiAxIGlmICR0eXBlIGVxICdBdHRyJzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAn
Q2hhcmFjdGVyRGF0YSc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0NEQVRBU2VjdGlvbic7
CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0NvbW1lbnQnOwogICAgIHJldHVybiAxIGlmICR0
eXBlIGVxICdEb2N1bWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0RvY3VtZW50RnJh
Z21lbnQnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdEb2N1bWVudFR5cGUnOworICAgIHJl
dHVybiAxIGlmICR0eXBlIGVxICdEb2N1bWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
J0VsZW1lbnQnOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdFbnRpdHknOwogICAgIHJldHVy
biAxIGlmICR0eXBlIGVxICdFbnRpdHlSZWZlcmVuY2UnOwotICAgIHJldHVybiAxIGlmICR0eXBl
IGVxICdIVE1MQ2FudmFzRWxlbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxE
b2N1bWVudCc7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxFbGVtZW50JzsKLSAgICBy
ZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRNTFVua25vd25FbGVtZW50JzsKLSAgICByZXR1cm4gMSBp
ZiAkdHlwZSBlcSAnSFRNTEZvcm1FbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAn
SFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1M
VGFibGVTZWN0aW9uRWxlbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ05vZGUnOwor
ICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdOb3RhdGlvbic7CiAgICAgcmV0dXJuIDEgaWYgJHR5
cGUgZXEgJ1Byb2Nlc3NpbmdJbnN0cnVjdGlvbic7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEg
J1NWR0VsZW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdTVkdEb2N1bWVudCc7Ci0g
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NWR1NWR0VsZW1lbnQnOwotICAgIHJldHVybiAxIGlm
ICR0eXBlIGVxICdTVkdVc2VFbGVtZW50JzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnU2hh
ZG93Um9vdCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1RleHQnOworICAgIHJldHVybiAx
IGlmICR0eXBlIGVxICdTVkdEb2N1bWVudCc7CisKKyAgICByZXR1cm4gMSBpZiAkdHlwZSA9fiAv
XkhUTUwuKkVsZW1lbnQkLzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSA9fiAvXlNWRy4qRWxlbWVu
dCQvOwogCiAgICAgcmV0dXJuIDA7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174099</attachid>
            <date>2012-11-14 01:04:50 -0800</date>
            <delta_ts>2012-11-14 02:37:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100851-20121114100248.patch</filename>
            <type>text/plain</type>
            <size>4693</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2IzODFlYmZjMjUwYTNl
Mzg0YThjNGVmNWIwODI3OTNhNDIxMjdkNy4uZDYwMGQyNjJkYzJlZGI2MjViYWIxY2ZkMWVlYmM0
MGMxMGIwNTU0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTE0ICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gdXNlIHRvVjhGYXN0
IGluIGFsbCByZWxldmFudCBOb2RlIGdldHRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0b1Y4RmFzdCBmdW5jdGlvbiBmb3IgTm9kZSBvYmpl
Y3RzIGlzIG5vdyBjYWxsZWQgaW4gYWxsIGdldHRlcnMKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Y4
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjb3ZlcmFnZSBleHRlbnNpdmUuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcik6CisgICAg
ICAgIChJc0RPTU5vZGVUeXBlKToKKwogMjAxMi0xMS0xMyAgVmluY2VudCBTY2hlaWIgIDxzY2hl
aWJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBSdW50aW1lRW5hYmxlZEZlYXR1cmVz
Ojppc1BvaW50ZXJMb2NrRW5hYmxlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5kZXggNzdjZGYxNGMxZDQ2Njk0M2IzYzA5MjVl
MTVlYTkyNDA2Y2RjYWZlYy4uNmZiMWFiNWFmZjAyMzJlNTNkNWNjM2U5NDdjODcwYTljN2E0ZjM1
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yVjgucG0KQEAgLTI5NCw2ICsyOTQsOSBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICAkY29k
ZUdlbmVyYXRvci0+QWRkTWV0aG9kc0NvbnN0YW50c0FuZEF0dHJpYnV0ZXNGcm9tUGFyZW50Q2xh
c3NlcygkZGF0YU5vZGUsIFxAYWxsUGFyZW50cywgMSk7CiAgICAgJGNvZGVHZW5lcmF0b3ItPkxp
bmtPdmVybG9hZGVkRnVuY3Rpb25zKCRkYXRhTm9kZSk7CiAKKyAgICAjIEVuc3VyZSB0aGUgSXNE
T01Ob2RlVHlwZSBmdW5jdGlvbiBpcyBpbiBzeW5jLgorICAgIGRpZSgiSXNET01Ob2RlVHlwZSBp
cyBvdXQgb2YgZGF0ZSB3aXRoIHJlc3BlY3QgdG8gJGludGVyZmFjZU5hbWUiKSBpZiBJc0RPTU5v
ZGVUeXBlKCRpbnRlcmZhY2VOYW1lKSAhPSBJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSk7CisKICAg
ICBteSAkaGFzRGVwZW5kZW50TGlmZXRpbWUgPSAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRl
cy0+eyJWOERlcGVuZGVudExpZmV0aW1lIn0gfHwgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPnsiQWN0aXZlRE9NT2JqZWN0In0KICAgICAgICAgIHx8IEdldEdlbmVyYXRlSXNSZWFjaGFi
bGUoJGRhdGFOb2RlKSB8fCAkY2xhc3NOYW1lID1+IC9TVkcvOwogICAgIGlmICghJGhhc0RlcGVu
ZGVudExpZmV0aW1lKSB7CkBAIC01NDIsNiArNTQ1LDExIEBAIEVORAogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCA8PEVORCk7CiBjbGFzcyAke25hdGl2ZVR5cGV9Owogdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IHRvVjgoJHtuYXRpdmVUeXBlfSosIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3Jl
YXRpb25Db250ZXh0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0PigpLCB2ODo6SXNvbGF0ZSogPSAw
KTsKKworaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4RmFzdCgke25hdGl2ZVR5cGV9
KiBpbXBsLCBjb25zdCB2ODo6QWNjZXNzb3JJbmZvJiBpbmZvLCBOb2RlKikKK3sKKyAgICByZXR1
cm4gdG9WOChpbXBsLCBpbmZvLkhvbGRlcigpLCBpbmZvLkdldElzb2xhdGUoKSk7Cit9CiBFTkQK
ICAgICB9IGVsc2UgewogCkBAIC01OTIsNiArNjAwLDEyIEBAIGlubGluZSB2ODo6SGFuZGxlPHY4
OjpWYWx1ZT4gdG9WOEZhc3QoJHtuYXRpdmVUeXBlfSogaW1wbCwgY29uc3Qgdjg6OkFjY2Vzc29y
SW5mCiAgICAgICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IGltcGwtPndyYXBw
ZXIoKTsKICAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVy
biB3cmFwcGVyOworICAgIH0gZWxzZSB7CisgICAgICAgIFY4RE9NV2luZG93U2hlbGwqIGNvbnRl
eHQgPSBWOERPTVdpbmRvd1NoZWxsOjpnZXRFbnRlcmVkKCk7CisgICAgICAgIEFTU0VSVChjb250
ZXh0KTsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gY29udGV4dC0+
d29ybGQoKS0+aXNvbGF0ZWRXb3JsZERPTURhdGFTdG9yZSgpLT5nZXQoaW1wbCk7CisgICAgICAg
IGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsKICAg
ICB9CiAgICAgcmV0dXJuIGRpc3BhdGNoV3JhcChpbXBsLCBob2xkZXJXcmFwcGVyLCBpbmZvLkdl
dElzb2xhdGUoKSk7CiB9CkBAIC0xMTQ0LDggKzExNTgsOCBAQCBFTkQKICAgICBpbmZvLkhvbGRl
cigpLT5TZXRIaWRkZW5WYWx1ZShwcm9wZXJ0eU5hbWUsIHZhbHVlKTsKICAgICByZXR1cm4gdmFs
dWU7CiBFTkQKLSAgICB9IGVsc2lmIChJc0RPTU5vZGVUeXBlKEdldFR5cGVGcm9tU2lnbmF0dXJl
KCRhdHRyaWJ1dGUtPnNpZ25hdHVyZSkpICYmICRpbXBsQ2xhc3NOYW1lIGVxICJOb2RlIikgewot
ICAgICAgICAjIEZJWE1FOiBXZSB3b3VsZCBsaWtlIHRvIHVzZSB0b1Y4RmFzdCBpbiBtb3JlIHNp
dHVhdGlvbnMuCisgICAgfSBlbHNpZiAoSXNET01Ob2RlVHlwZSgkaW50ZXJmYWNlTmFtZSkgJiYg
SXNET01Ob2RlVHlwZSgkYXR0clR5cGUpKSB7CisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCRh
dHRyVHlwZS4iLmgiKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICByZXR1
cm4gdG9WOEZhc3QoJHJlc3VsdCwgaW5mbywgaW1wKTtcbiIpOwogICAgIH0gZWxzZSB7CiAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgIiAuIFJldHVybk5hdGl2ZVRvSlNWYWx1
ZSgkYXR0cmlidXRlLT5zaWduYXR1cmUsICRyZXN1bHQsICJpbmZvLkhvbGRlcigpIiwgImluZm8u
R2V0SXNvbGF0ZSgpIikuIjtcbiIpOwpAQCAtNDA2MSwyNyArNDA3NSwyNSBAQCBzdWIgSXNET01O
b2RlVHlwZQogCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0F0dHInOwogICAgIHJldHVybiAx
IGlmICR0eXBlIGVxICdDREFUQVNlY3Rpb24nOworICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdD
aGFyYWN0ZXJEYXRhJzsKICAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnQ29tbWVudCc7CiAgICAg
cmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0RvY3VtZW50JzsKICAgICByZXR1cm4gMSBpZiAkdHlwZSBl
cSAnRG9jdW1lbnRGcmFnbWVudCc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0RvY3VtZW50
VHlwZSc7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0VsZW1lbnQnOworICAgIHJldHVybiAx
IGlmICR0eXBlIGVxICdFbnRpdHknOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdFbnRpdHlS
ZWZlcmVuY2UnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1MQ2FudmFzRWxlbWVudCc7
CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxEb2N1bWVudCc7Ci0gICAgcmV0dXJuIDEg
aWYgJHR5cGUgZXEgJ0hUTUxFbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRN
TFVua25vd25FbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRNTEZvcm1FbGVt
ZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQn
OwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1MVGFibGVTZWN0aW9uRWxlbWVudCc7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ05vZGUnOworICAgIHJldHVybiAxIGlmICR0eXBlIGVx
ICdOb3RhdGlvbic7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1Byb2Nlc3NpbmdJbnN0cnVj
dGlvbic7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NWR0VsZW1lbnQnOworICAgIHJldHVy
biAxIGlmICR0eXBlIGVxICdTaGFkb3dSb290JzsKICAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAn
U1ZHRG9jdW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdTVkdTVkdFbGVtZW50JzsK
LSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnU1ZHVXNlRWxlbWVudCc7CiAgICAgcmV0dXJuIDEg
aWYgJHR5cGUgZXEgJ1RleHQnOwogCisgICAgcmV0dXJuIDEgaWYgJHR5cGUgPX4gL15IVE1MLipF
bGVtZW50JC87CisgICAgcmV0dXJuIDEgaWYgJHR5cGUgPX4gL15TVkcuKkVsZW1lbnQkLzsKKwog
ICAgIHJldHVybiAwOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>174117</attachid>
            <date>2012-11-14 02:37:41 -0800</date>
            <delta_ts>2012-11-14 03:14:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-100851-20121114113540.patch</filename>
            <type>text/plain</type>
            <size>5486</size>
            <attacher name="Dan Carney">dcarney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2IzODFlYmZjMjUwYTNl
Mzg0YThjNGVmNWIwODI3OTNhNDIxMjdkNy4uZDIyOTFkNWM1OGI2ZDZiMjQ1ZTU3ZmZlMWZhYmM2
YjZkOGE5OTg1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTExLTE0ICBEYW4g
Q2FybmV5ICA8ZGNhcm5leUBnb29nbGUuY29tPgorCisgICAgICAgIFtWOF0gdXNlIHRvVjhGYXN0
IGluIGFsbCByZWxldmFudCBOb2RlIGdldHRlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMDg1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSB0b1Y4RmFzdCBmdW5jdGlvbiBmb3IgTm9kZSBvYmpl
Y3RzIGlzIG5vdyBjYWxsZWQgaW4gYWxsIGdldHRlcnMKKyAgICAgICAgaW5zdGVhZCBvZiB0b1Y4
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gVGVzdCBjb3ZlcmFnZSBleHRlbnNpdmUuCisKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbToKKyAgICAgICAgKEdl
bmVyYXRlSGVhZGVyKToKKyAgICAgICAgKEdlbmVyYXRlTm9ybWFsQXR0ckdldHRlcik6CisgICAg
ICAgIChJc0RPTU5vZGVUeXBlKToKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgv
VjhUZXN0Tm9kZS5oOgorICAgICAgICAoV2ViQ29yZTo6dG9WOEZhc3QpOgorCiAyMDEyLTExLTEz
ICBWaW5jZW50IFNjaGVpYiAgPHNjaGVpYkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3Zl
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmlzUG9pbnRlckxvY2tFbmFibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQppbmRleCA3
N2NkZjE0YzFkNDY2OTQzYjNjMDkyNWUxNWVhOTI0MDZjZGNhZmVjLi42ZDQ1Y2E1M2IwNDZkYWE3
MDg3ZmM3OGNkMDZhNzcxMTdhYjU5MzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjk0LDYgKzI5NCw5IEBAIHN1YiBH
ZW5lcmF0ZUhlYWRlcgogICAgICRjb2RlR2VuZXJhdG9yLT5BZGRNZXRob2RzQ29uc3RhbnRzQW5k
QXR0cmlidXRlc0Zyb21QYXJlbnRDbGFzc2VzKCRkYXRhTm9kZSwgXEBhbGxQYXJlbnRzLCAxKTsK
ICAgICAkY29kZUdlbmVyYXRvci0+TGlua092ZXJsb2FkZWRGdW5jdGlvbnMoJGRhdGFOb2RlKTsK
IAorICAgICMgRW5zdXJlIHRoZSBJc0RPTU5vZGVUeXBlIGZ1bmN0aW9uIGlzIGluIHN5bmMuCisg
ICAgZGllKCJJc0RPTU5vZGVUeXBlIGlzIG91dCBvZiBkYXRlIHdpdGggcmVzcGVjdCB0byAkaW50
ZXJmYWNlTmFtZSIpIGlmIElzRE9NTm9kZVR5cGUoJGludGVyZmFjZU5hbWUpICE9IElzTm9kZVN1
YlR5cGUoJGRhdGFOb2RlKTsKKwogICAgIG15ICRoYXNEZXBlbmRlbnRMaWZldGltZSA9ICRkYXRh
Tm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlY4RGVwZW5kZW50TGlmZXRpbWUifSB8fCAkZGF0
YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJBY3RpdmVET01PYmplY3QifQogICAgICAgICAg
fHwgR2V0R2VuZXJhdGVJc1JlYWNoYWJsZSgkZGF0YU5vZGUpIHx8ICRjbGFzc05hbWUgPX4gL1NW
Ry87CiAgICAgaWYgKCEkaGFzRGVwZW5kZW50TGlmZXRpbWUpIHsKQEAgLTU0Miw2ICs1NDUsMTEg
QEAgRU5ECiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsIDw8RU5EKTsKIGNsYXNzICR7bmF0
aXZlVHlwZX07CiB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOCgke25hdGl2ZVR5cGV9Kiwgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQgPSB2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+KCksIHY4OjpJc29sYXRlKiA9IDApOworCitpbmxpbmUgdjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHRvVjhGYXN0KCR7bmF0aXZlVHlwZX0qIGltcGwsIGNvbnN0IHY4OjpBY2Nlc3NvckluZm8mIGlu
Zm8sIE5vZGUqKQoreworICAgIHJldHVybiB0b1Y4KGltcGwsIGluZm8uSG9sZGVyKCksIGluZm8u
R2V0SXNvbGF0ZSgpKTsKK30KIEVORAogICAgIH0gZWxzZSB7CiAKQEAgLTU5Miw2ICs2MDAsMTAg
QEAgaW5saW5lIHY4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4RmFzdCgke25hdGl2ZVR5cGV9KiBp
bXBsLCBjb25zdCB2ODo6QWNjZXNzb3JJbmYKICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0
PiB3cmFwcGVyID0gaW1wbC0+d3JhcHBlcigpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0
eSgpKQogICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpnZXRDYWNoZWRX
cmFwcGVyKGltcGwpOworICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgfQogICAgIHJldHVybiBkaXNwYXRjaFdyYXAoaW1wbCwg
aG9sZGVyV3JhcHBlciwgaW5mby5HZXRJc29sYXRlKCkpOwogfQpAQCAtMTE0NCw4ICsxMTU2LDgg
QEAgRU5ECiAgICAgaW5mby5Ib2xkZXIoKS0+U2V0SGlkZGVuVmFsdWUocHJvcGVydHlOYW1lLCB2
YWx1ZSk7CiAgICAgcmV0dXJuIHZhbHVlOwogRU5ECi0gICAgfSBlbHNpZiAoSXNET01Ob2RlVHlw
ZShHZXRUeXBlRnJvbVNpZ25hdHVyZSgkYXR0cmlidXRlLT5zaWduYXR1cmUpKSAmJiAkaW1wbENs
YXNzTmFtZSBlcSAiTm9kZSIpIHsKLSAgICAgICAgIyBGSVhNRTogV2Ugd291bGQgbGlrZSB0byB1
c2UgdG9WOEZhc3QgaW4gbW9yZSBzaXR1YXRpb25zLgorICAgIH0gZWxzaWYgKElzRE9NTm9kZVR5
cGUoJGludGVyZmFjZU5hbWUpICYmIElzRE9NTm9kZVR5cGUoJGF0dHJUeXBlKSkgeworICAgICAg
ICBBZGRUb0ltcGxJbmNsdWRlcygkYXR0clR5cGUuIi5oIik7CiAgICAgICAgIHB1c2goQGltcGxD
b250ZW50RGVjbHMsICIgICAgcmV0dXJuIHRvVjhGYXN0KCRyZXN1bHQsIGluZm8sIGltcCk7XG4i
KTsKICAgICB9IGVsc2UgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgICIg
LiBSZXR1cm5OYXRpdmVUb0pTVmFsdWUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLCAkcmVzdWx0LCAi
aW5mby5Ib2xkZXIoKSIsICJpbmZvLkdldElzb2xhdGUoKSIpLiI7XG4iKTsKQEAgLTQwNjEsMjcg
KzQwNzMsMjcgQEAgc3ViIElzRE9NTm9kZVR5cGUKIAogICAgIHJldHVybiAxIGlmICR0eXBlIGVx
ICdBdHRyJzsKICAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnQ0RBVEFTZWN0aW9uJzsKKyAgICBy
ZXR1cm4gMSBpZiAkdHlwZSBlcSAnQ2hhcmFjdGVyRGF0YSc7CiAgICAgcmV0dXJuIDEgaWYgJHR5
cGUgZXEgJ0NvbW1lbnQnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdEb2N1bWVudCc7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0RvY3VtZW50RnJhZ21lbnQnOwogICAgIHJldHVybiAx
IGlmICR0eXBlIGVxICdEb2N1bWVudFR5cGUnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdF
bGVtZW50JzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnRW50aXR5JzsKICAgICByZXR1cm4g
MSBpZiAkdHlwZSBlcSAnRW50aXR5UmVmZXJlbmNlJzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBl
cSAnSFRNTENhbnZhc0VsZW1lbnQnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1MRG9j
dW1lbnQnOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdIVE1MRWxlbWVudCc7Ci0gICAgcmV0
dXJuIDEgaWYgJHR5cGUgZXEgJ0hUTUxVbmtub3duRWxlbWVudCc7Ci0gICAgcmV0dXJuIDEgaWYg
JHR5cGUgZXEgJ0hUTUxGb3JtRWxlbWVudCc7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ0hU
TUxUYWJsZUNhcHRpb25FbGVtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnSFRNTFRh
YmxlU2VjdGlvbkVsZW1lbnQnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdOb2RlJzsKKyAg
ICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnTm90YXRpb24nOwogICAgIHJldHVybiAxIGlmICR0eXBl
IGVxICdQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24nOwotICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdT
VkdFbGVtZW50JzsKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnU2hhZG93Um9vdCc7CiAgICAg
cmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NWR0RvY3VtZW50JzsKLSAgICByZXR1cm4gMSBpZiAkdHlw
ZSBlcSAnU1ZHU1ZHRWxlbWVudCc7Ci0gICAgcmV0dXJuIDEgaWYgJHR5cGUgZXEgJ1NWR1VzZUVs
ZW1lbnQnOwogICAgIHJldHVybiAxIGlmICR0eXBlIGVxICdUZXh0JzsKIAorICAgIHJldHVybiAx
IGlmICR0eXBlID1+IC9eSFRNTC4qRWxlbWVudCQvOworICAgIHJldHVybiAxIGlmICR0eXBlID1+
IC9eU1ZHLipFbGVtZW50JC87CisKKyAgICByZXR1cm4gMSBpZiAkdHlwZSBlcSAnVGVzdE5vZGUn
OworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5oCmluZGV4IGVhMTA4NzQ0NjA2YWFmYWYyOTQz
MzJhZWJkNDJhYzQ0ODBhOWJhZmYuLjc5Yjk4Yzc2YTkwNjI5ODA0Mjk0ZGQzNmM1OWZiYWNiNmFi
MGNkZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3ROb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdE5vZGUuaApAQCAtOTQsNiArOTQsMTAgQEAgaW5saW5lIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiB0b1Y4RmFzdChUZXN0Tm9kZSogaW1wbCwgY29uc3Qgdjg6OkFjY2Vzc29ySW5mbyYg
aW4KICAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gaW1wbC0+d3JhcHBl
cigpOwogICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJu
IHdyYXBwZXI7CisgICAgfSBlbHNlIHsKKyAgICAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3
cmFwcGVyID0gVjhET01XcmFwcGVyOjpnZXRDYWNoZWRXcmFwcGVyKGltcGwpOworICAgICAgICBp
ZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAg
fQogICAgIHJldHVybiBkaXNwYXRjaFdyYXAoaW1wbCwgaG9sZGVyV3JhcHBlciwgaW5mby5HZXRJ
c29sYXRlKCkpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>