<?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>108921</bug_id>
          
          <creation_ts>2013-02-05 01:21:44 -0800</creation_ts>
          <short_desc>Range::collapsed callers should explicitly ASSERT_NO_EXCEPTION.</short_desc>
          <delta_ts>2013-02-11 05:57:00 -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>WebCore Misc.</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>108180</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mike West">mkwst</reporter>
          <assigned_to name="Mike West">mkwst</assigned_to>
          <cc>buildbot</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>825257</commentid>
    <comment_count>0</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-05 01:21:44 -0800</bug_when>
    <thetext>In https://bugs.webkit.org/show_bug.cgi?id=108773, Darin noted that I&apos;d incorrectly relied on the default value of &apos;ec&apos; in Range::collapsed. He suggested creating a Range::isCollapsed method instead: https://bugs.webkit.org/show_bug.cgi?id=108773#c8.

I grepped quickly through the code, and there are only three callsites that rely on the current behavior. I&apos;d suggest instead that we overload Range::collapsed in the same way that Range::startContainer, etc. are overloaded, and simply update those three callsites to explicitly call ASSERT_NO_EXCEPTION.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825288</commentid>
    <comment_count>1</comment_count>
      <attachid>186579</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-05 02:07:40 -0800</bug_when>
    <thetext>Created attachment 186579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825309</commentid>
    <comment_count>2</comment_count>
      <attachid>186579</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-02-05 02:33:29 -0800</bug_when>
    <thetext>Comment on attachment 186579
Patch

Attachment 186579 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/16375661</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825315</commentid>
    <comment_count>3</comment_count>
      <attachid>186579</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 02:41:15 -0800</bug_when>
    <thetext>Comment on attachment 186579
Patch

Attachment 186579 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16367679</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825333</commentid>
    <comment_count>4</comment_count>
      <attachid>186590</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-05 03:05:47 -0800</bug_when>
    <thetext>Created attachment 186590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825635</commentid>
    <comment_count>5</comment_count>
      <attachid>186590</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-05 10:50:25 -0800</bug_when>
    <thetext>Comment on attachment 186590
Patch

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

&gt; Source/WebCore/dom/Range.h:61
&gt; +    bool collapsed() const { return m_start == m_end; }

Should this have an ASSERT(m_start)?

Otherwise, the two versions of collapsed have different semantics - one says yes for null range, and another does not say yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825646</commentid>
    <comment_count>6</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-05 10:59:19 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 186590 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=186590&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Range.h:61
&gt; &gt; +    bool collapsed() const { return m_start == m_end; }
&gt; 
&gt; Should this have an ASSERT(m_start)?
&gt; 
&gt; Otherwise, the two versions of collapsed have different semantics - one says yes for null range, and another does not say yes.

Hrm. You&apos;re right, I missed that detail.

Perhaps it would be more appropriate not to ASSERT, but to `return m_start.container() &amp;&amp; m_start == m_end;`. I think that would end up with the same semantics for the case I missed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826347</commentid>
    <comment_count>7</comment_count>
      <attachid>186831</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-06 04:52:04 -0800</bug_when>
    <thetext>Created attachment 186831
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826507</commentid>
    <comment_count>8</comment_count>
      <attachid>186831</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-06 09:34:06 -0800</bug_when>
    <thetext>Comment on attachment 186831
Patch

I like the idea of having a collapsed function. But I don’t like the idea of it returning false for detached ranges. I think true is a more useful value to return for both the value with the exception and without. In the bindings, the return value when there is an exception is undetectable, so there is no “public” repercussion of changing the sense of the boolean.

Further, I don’t think it’s so great to have our internal functions just be the same as the public DOM functions, only without exception codes. It’s better to put some thought into the design and naming of internal functions and have them be distinct. That’s why I suggest naming this isCollapsed instead of collapsed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826666</commentid>
    <comment_count>9</comment_count>
      <attachid>186831</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2013-02-06 12:47:08 -0800</bug_when>
    <thetext>Comment on attachment 186831
Patch

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

&gt; Source/WebCore/dom/Range.h:61
&gt; +    bool collapsed() const { return startContainer() &amp;&amp; m_start == m_end; }

So this will return &quot;false negatives&quot;?  In that we will count detached ranges as non-collapsed?  I guess that matches our previous behavior?  Or we could have a function which returns an enum instead?  Detached, Caret, Span?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828638</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-08 09:39:13 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; So this will return &quot;false negatives&quot;?  In that we will count detached ranges as non-collapsed?

That&apos;s right.

&gt; I guess that matches our previous behavior?

True, but I think it’s not convenient behavior to program with, and it has no effect on the JavaScript DOM bindings case, since the return value is ignored if there’s an exception. Generally speaking, what a DOM function returns when it raises an exception has no effect on the JavaScript DOM, but affects our internal WebKit code that uses that function and possibly some non-JavaScript bindings.

&gt; Or we could have a function which returns an enum instead? Detached, Caret, Span?

If we’re going to start really rethinking the Range interface I think we might just want to make a new class and thin out Range to make it only really used for the public DOM. More the pattern that Antti followed with the CSS DOM where we don’t build our internals on top of possibly-wonky DOM APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>828641</commentid>
    <comment_count>11</comment_count>
      <attachid>186831</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2013-02-08 09:41:29 -0800</bug_when>
    <thetext>Comment on attachment 186831
Patch

Since it&apos;s not entirely obvious what an exception-free version of collapsed should do, lets not add it right now.

I think for now a better idea would be to remove ASSERT_NO_EXCEPTION from the header, put IGNORE_EXCEPTION at call sites currently ignoring the exception, ASSERT_NO_EXCEPTION at call sites currently asserting no exception, table the question of a better design for later, perhaps looking at the bigger picture of the entire Range class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829015</commentid>
    <comment_count>12</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-09 06:58:32 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 186831 [details])
&gt; Since it&apos;s not entirely obvious what an exception-free version of collapsed should do, lets not add it right now.
&gt; 
&gt; I think for now a better idea would be to remove ASSERT_NO_EXCEPTION from the header, put IGNORE_EXCEPTION at call sites currently ignoring the exception, ASSERT_NO_EXCEPTION at call sites currently asserting no exception, table the question of a better design for later, perhaps looking at the bigger picture of the entire Range class.

Easy enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829017</commentid>
    <comment_count>13</comment_count>
      <attachid>187430</attachid>
    <who name="Mike West">mkwst</who>
    <bug_when>2013-02-09 07:02:54 -0800</bug_when>
    <thetext>Created attachment 187430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829170</commentid>
    <comment_count>14</comment_count>
      <attachid>187430</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-09 19:59:46 -0800</bug_when>
    <thetext>Comment on attachment 187430
Patch

Attachment 187430 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16467710

New failing tests:
compositing/checkerboard.html
accessibility/anchor-linked-anonymous-block-crash.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
animations/animation-css-rule-types.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829594</commentid>
    <comment_count>15</comment_count>
      <attachid>187430</attachid>
    <who name="">jochen</who>
    <bug_when>2013-02-11 05:15:24 -0800</bug_when>
    <thetext>Comment on attachment 187430
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829607</commentid>
    <comment_count>16</comment_count>
      <attachid>187430</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 05:56:56 -0800</bug_when>
    <thetext>Comment on attachment 187430
Patch

Clearing flags on attachment: 187430

Committed r142461: &lt;http://trac.webkit.org/changeset/142461&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829608</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-11 05:57:00 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186579</attachid>
            <date>2013-02-05 02:07:40 -0800</date>
            <delta_ts>2013-02-05 03:05:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108921-20130205110417.patch</filename>
            <type>text/plain</type>
            <size>10723</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTlmYWRjMTgyMmIzMjM1
NjEyMmE4ZjVkODNhM2U1YjliMDVkMWYyOS4uYWVjM2QxMWQzNWIwODdiNzRmMmEzMDExOWZkMjM2
MWQ3N2U5NTQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQyIEBACiAyMDEzLTAyLTA1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgQ3JlYXRlIGFuIGV4Y2VwdGlv
bmxlc3MgUmFuZ2U6OmNvbGxhcHNlZCBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNyZWF0ZXMgYW4gRXhjZXB0aW9uQ29k
ZS1sZXNzIHZhcmlhbnQgb2YgUmFuZ2U6OmNvbGxhcHNlZCB0bworICAgICAgICBtYXRjaCB0aGUg
ZXhpc3RpbmcgUmFuZ2U6OntzdGFydCxlbmR9e0NvbnRhaW5lcixPZmZzZXR9IG1ldGhvZHMuIFRo
ZQorICAgICAgICBleGlzdGluZyBjYWxsc2l0ZXMgYXJlIHVwZGF0ZWQgdG8gZWl0aGVyIGRyb3Ag
dGhlIGV4Y2VwdGlvbiBjb2RlCisgICAgICAgIHBhcmFtZXRlciBlbnRpcmVseSwgb3IgdG8gcmVw
bGFjZSBpdCB3aXRoIEFTU0VSVF9OT19FWENFUFRJT04uCisKKyAgICAgICAgKiBkb20vUmFuZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjb2xsYXBzZWQpOgorICAgICAgICAoUmFuZ2Up
OgorICAgICAgICAgICAgT3ZlcmxvYWQgUmFuZ2U6OmNvbGxhcHNlZCB0byBzdXBwb3J0IEV4Y2Vw
dGlvbkNvZGUtbGVzcyBjYWxsaW5nLCBhbmQKKyAgICAgICAgICAgIHVwZGF0ZSB0aGUgZXhpc3Rp
bmcgbWV0aG9kIHRvIGRyb3AgdGhlIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlLgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2FuRGVsZXRl
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzaG91bGREZWxldGVSYW5nZSk6Cisg
ICAgICAgICAgICBEcm9wIHRoZSBFeGNlcHRpb25Db2RlIGVudGlyZWx5LgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcpOgorICAgICAgICAgICAgRHJv
cCB0aGUgRXhjZXB0aW9uQ29kZSBmcm9tIHRoZSBjYWxsLgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpyYW5nZU9mU3RyaW5nKToKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIEV4Y2VwdGlvbkNv
ZGUtbGVzcyBjYWxsIHdpdGggQVNTRVJUX05PX0VYQ0VQVElPTi4KKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y291bnRNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6aXNVbmdyYW1tYXRpY2FsKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3Jh
bW1hdGljYWxSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlTWFya3VwKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgICAgIERyb3AgdGhlIEV4Y2VwdGlvbkNvZGUg
ZnJvbSB0aGUgY2FsbC4KKworMjAxMy0wMi0wNSAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0u
b3JnPgorCiAgICAgICAgIENsZWFudXA6IFVzZSBleGNlcHRpb25sZXNzIFJhbmdlOjoqIG1ldGhv
ZHMgcmF0aGVyIHRoYW4gaWdub3JpbmcgZXhjZXB0aW9ucy4KICAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODc3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGI2
YmY3NzExZDUxOGQ5ZTg5NTc4MjdhOWEwNzBlNjYyMjY1NjU3NGMuLmMzZjlhYzc2OGVhM2E0ZTE1
ZjNmMmJhZTJkNzU5MzU3YTI4Y2RlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9S
YW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC01OCwxMiArNTgsMTMg
QEAgcHVibGljOgogICAgIGludCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQu
b2Zmc2V0KCk7IH0KICAgICBOb2RlKiBlbmRDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX2Vu
ZC5jb250YWluZXIoKTsgfQogICAgIGludCBlbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2Vu
ZC5vZmZzZXQoKTsgfQorICAgIGJvb2wgY29sbGFwc2VkKCkgY29uc3QgeyByZXR1cm4gbV9zdGFy
dCA9PSBtX2VuZDsgfQogCiAgICAgTm9kZSogc3RhcnRDb250YWluZXIoRXhjZXB0aW9uQ29kZSYp
IGNvbnN0OwogICAgIGludCBzdGFydE9mZnNldChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAg
Tm9kZSogZW5kQ29udGFpbmVyKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBpbnQgZW5kT2Zm
c2V0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbGxhcHNlZChFeGNlcHRpb25D
b2RlJiA9IEFTU0VSVF9OT19FWENFUFRJT04pIGNvbnN0OworICAgIGJvb2wgY29sbGFwc2VkKEV4
Y2VwdGlvbkNvZGUmKSBjb25zdDsKIAogICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVy
KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBzdGF0aWMgTm9kZSogY29tbW9uQW5jZXN0b3JD
b250YWluZXIoTm9kZSogY29udGFpbmVyQSwgTm9kZSogY29udGFpbmVyQik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvci5jcHAKaW5kZXggNGQ2ZjcxZjEwZWU5NWRiZjEyMWIzM2U3N2I3ZTgxYjVkOTJm
ZTczMS4uNjRhZTVmM2U0MzFjZTE1NmZmOGMyZjYyYjQyYmE5MTg2ZTMyMWNhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMjYyLDggKzI2Miw3IEBAIGJvb2wgRWRpdG9yOjpjYW5E
ZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpIGNvbnN0CiAgICAgaWYgKCFzdGFydENvbnRhaW5lci0+
cmVuZGVyZXJJc0VkaXRhYmxlKCkgfHwgIWVuZENvbnRhaW5lci0+cmVuZGVyZXJJc0VkaXRhYmxl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAg
aWYgKHJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7CisgICAgaWYgKHJhbmdlLT5jb2xsYXBzZWQoKSkg
ewogICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3RhcnQocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwg
RE9XTlNUUkVBTSk7CiAgICAgICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91cyA9IHN0YXJ0LnBy
ZXZpb3VzKCk7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzb21ldGltZXMgYWxsb3cgZGVsZXRpb25z
IGF0IHRoZSBzdGFydCBvZiBlZGl0YWJsZSByb290cywgbGlrZSB3aGVuIHRoZSBjYXJldCBpcyBp
biBhbiBlbXB0eSBsaXN0IGl0ZW0uCkBAIC00MzgsOCArNDM3LDcgQEAgUGFzc1JlZlB0cjxSYW5n
ZT4gRWRpdG9yOjpzZWxlY3RlZFJhbmdlKCkKIAogYm9vbCBFZGl0b3I6OnNob3VsZERlbGV0ZVJh
bmdlKFJhbmdlKiByYW5nZSkgY29uc3QKIHsKLSAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgIGlm
ICghcmFuZ2UgfHwgcmFuZ2UtPmNvbGxhcHNlZChlYykpCisgICAgaWYgKCFyYW5nZSB8fCByYW5n
ZS0+Y29sbGFwc2VkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoIWNh
bkRlbGV0ZVJhbmdlKHJhbmdlKSkKQEAgLTE1ODUsNyArMTU4Myw3IEBAIHZvaWQgRWRpdG9yOjph
ZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKICAgICAg
ICAgLy8gZWxzZSB3ZSB3ZXJlIGFscmVhZHkgYXQgdGhlIHN0YXJ0IG9mIHRoZSBlZGl0YWJsZSBu
b2RlCiAgICAgfQogCi0gICAgaWYgKHNwZWxsaW5nU2VhcmNoUmFuZ2UtPmNvbGxhcHNlZChlYykp
CisgICAgaWYgKHNwZWxsaW5nU2VhcmNoUmFuZ2UtPmNvbGxhcHNlZCgpKQogICAgICAgICByZXR1
cm47IC8vIG5vdGhpbmcgdG8gc2VhcmNoIGluCiAgICAgCiAgICAgLy8gR2V0IHRoZSBzcGVsbCBj
aGVja2VyIGlmIGl0IGlzIGF2YWlsYWJsZQpAQCAtMjczNCw3ICsyNzMyLDcgQEAgUGFzc1JlZlB0
cjxSYW5nZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5n
ZSogcmVmZXJlbmNlUmEKICAgICB9CiAKICAgICAvLyBJZiBub3RoaW5nIHdhcyBmb3VuZCBpbiB0
aGUgc2hhZG93IHRyZWUsIHNlYXJjaCBpbiBtYWluIGNvbnRlbnQgZm9sbG93aW5nIHRoZSBzaGFk
b3cgdHJlZS4KLSAgICBpZiAocmVzdWx0UmFuZ2UtPmNvbGxhcHNlZCgpICYmIHNoYWRvd1RyZWVS
b290KSB7CisgICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoQVNTRVJUX05PX0VYQ0VQVElP
TikgJiYgc2hhZG93VHJlZVJvb3QpIHsKICAgICAgICAgc2VhcmNoUmFuZ2UgPSByYW5nZU9mQ29u
dGVudHMobV9mcmFtZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmIChmb3J3YXJkKQogICAgICAg
ICAgICAgc2VhcmNoUmFuZ2UtPnNldFN0YXJ0QWZ0ZXIoc2hhZG93VHJlZVJvb3QtPnNoYWRvd0hv
c3QoKSk7CkBAIC0yNzQ2LDcgKzI3NDQsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJh
bmdlT2ZTdHJpbmcoY29uc3QgU3RyaW5nJiB0YXJnZXQsIFJhbmdlKiByZWZlcmVuY2VSYQogCiAg
ICAgLy8gSWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcgYW5kIHdlJ3JlIHdyYXBwaW5nLCBzZWFy
Y2ggYWdhaW4gaW4gdGhlIGVudGlyZSBkb2N1bWVudCAodGhpcyB3aWxsCiAgICAgLy8gcmVkdW5k
YW50bHkgcmUtc2VhcmNoIHRoZSBhcmVhIGFscmVhZHkgc2VhcmNoZWQgaW4gc29tZSBjYXNlcyku
Ci0gICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoKSAmJiBvcHRpb25zICYgV3JhcEFyb3Vu
ZCkgeworICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJT04p
ICYmIG9wdGlvbnMgJiBXcmFwQXJvdW5kKSB7CiAgICAgICAgIHNlYXJjaFJhbmdlID0gcmFuZ2VP
ZkNvbnRlbnRzKG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICByZXN1bHRSYW5nZSA9IGZp
bmRQbGFpblRleHQoc2VhcmNoUmFuZ2UuZ2V0KCksIHRhcmdldCwgb3B0aW9ucyk7CiAgICAgICAg
IC8vIFdlIHVzZWQgdG8gcmV0dXJuIGZhbHNlIGhlcmUgaWYgd2UgZW5kZWQgdXAgd2l0aCB0aGUg
c2FtZSByYW5nZSB0aGF0IHdlIHN0YXJ0ZWQgd2l0aApAQCAtMjc1NCw3ICsyNzUyLDcgQEAgUGFz
c1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0
LCBSYW5nZSogcmVmZXJlbmNlUmEKICAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgYSBzdWNjZXNz
IGNhc2UgaW5zdGVhZCwgc28gd2UnbGwganVzdCBmYWxsIHRocm91Z2ggaW4gdGhhdCBjYXNlLgog
ICAgIH0KIAotICAgIHJldHVybiByZXN1bHRSYW5nZS0+Y29sbGFwc2VkKCkgPyAwIDogcmVzdWx0
UmFuZ2UucmVsZWFzZSgpOworICAgIHJldHVybiByZXN1bHRSYW5nZS0+Y29sbGFwc2VkKEFTU0VS
VF9OT19FWENFUFRJT04pID8gMCA6IHJlc3VsdFJhbmdlLnJlbGVhc2UoKTsKIH0KIAogc3RhdGlj
IGJvb2wgaXNGcmFtZUluUmFuZ2UoRnJhbWUqIGZyYW1lLCBSYW5nZSogcmFuZ2UpCkBAIC0yNzky
LDcgKzI3OTAsNyBAQCB1bnNpZ25lZCBFZGl0b3I6OmNvdW50TWF0Y2hlc0ZvclRleHQoY29uc3Qg
U3RyaW5nJiB0YXJnZXQsIFJhbmdlKiByYW5nZSwgRmluZE9wdAogICAgIHVuc2lnbmVkIG1hdGNo
Q291bnQgPSAwOwogICAgIGRvIHsKICAgICAgICAgUmVmUHRyPFJhbmdlPiByZXN1bHRSYW5nZShm
aW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJnZXQsIG9wdGlvbnMgJiB+QmFja3dh
cmRzKSk7Ci0gICAgICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKGV4Y2VwdGlvbikpIHsK
KyAgICAgICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoKSkgewogICAgICAgICAgICAgaWYg
KCFyZXN1bHRSYW5nZS0+c3RhcnRDb250YWluZXIoKS0+aXNJblNoYWRvd1RyZWUoKSkKICAgICAg
ICAgICAgICAgICBicmVhazsKIApAQCAtMjgxOSw3ICsyODE3LDcgQEAgdW5zaWduZWQgRWRpdG9y
Ojpjb3VudE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmFuZ2Us
IEZpbmRPcHQKICAgICAgICAgc2VhcmNoUmFuZ2UtPnNldFN0YXJ0KHJlc3VsdFJhbmdlLT5lbmRD
b250YWluZXIoZXhjZXB0aW9uKSwgcmVzdWx0UmFuZ2UtPmVuZE9mZnNldChleGNlcHRpb24pLCBl
eGNlcHRpb24pOwogCiAgICAgICAgIE5vZGUqIHNoYWRvd1RyZWVSb290ID0gc2VhcmNoUmFuZ2Ut
PnNoYWRvd1Jvb3QoKTsKLSAgICAgICAgaWYgKHNlYXJjaFJhbmdlLT5jb2xsYXBzZWQoZXhjZXB0
aW9uKSAmJiBzaGFkb3dUcmVlUm9vdCkKKyAgICAgICAgaWYgKHNlYXJjaFJhbmdlLT5jb2xsYXBz
ZWQoKSAmJiBzaGFkb3dUcmVlUm9vdCkKICAgICAgICAgICAgIHNlYXJjaFJhbmdlLT5zZXRFbmQo
c2hhZG93VHJlZVJvb3QsIHNoYWRvd1RyZWVSb290LT5jaGlsZE5vZGVDb3VudCgpLCBleGNlcHRp
b24pOwogICAgIH0gd2hpbGUgKHRydWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcAppbmRleCA0NzMzMjQ5M2FjOTliNWQxODU4ZDBmM2QxZmYyYjNiMzAxNGM4ZTdm
Li40ZjgyMjAwMDE3OWNhODkyNTMzMjQ0M2VjOTZmMjI3ZDc1NmIyZTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTIxMyw4ICsyMTMsNyBAQCBzdGF0aWMg
Ym9vbCBleHBhbmRTZWxlY3Rpb25Ub0dyYW51bGFyaXR5KEZyYW1lKiBmcmFtZSwgVGV4dEdyYW51
bGFyaXR5IGdyYW51bGFyaQogICAgIFJlZlB0cjxSYW5nZT4gbmV3UmFuZ2UgPSBzZWxlY3Rpb24u
dG9Ob3JtYWxpemVkUmFuZ2UoKTsKICAgICBpZiAoIW5ld1JhbmdlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKG5ld1JhbmdlLT5jb2xs
YXBzZWQoZWMpKQorICAgIGlmIChuZXdSYW5nZS0+Y29sbGFwc2VkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICBSZWZQdHI8UmFuZ2U+IG9sZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigp
LT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpOwogICAgIEVBZmZpbml0eSBhZmZpbml0
eSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+YWZmaW5pdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcAppbmRleCBjZDcyM2I5M2JhNWJmMTMyYjc1MWE1
NjAzNjZlODM3YWUxZGY1MDEyLi4xYjVlNTZlYWE0MzRlM2MwZThkMWQxODNiNTljMTZjZDRkNTBm
YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3Bw
CkBAIC01MjcsOCArNTI3LDcgQEAgYm9vbCBUZXh0Q2hlY2tpbmdIZWxwZXI6OmlzVW5ncmFtbWF0
aWNhbChWZWN0b3I8U3RyaW5nPiYgZ3Vlc3Nlc1ZlY3RvcikgY29uc3QKICAgICBpZiAoIW1fY2xp
ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjOwotICAg
IGlmICghbV9yYW5nZSB8fCBtX3JhbmdlLT5jb2xsYXBzZWQoZWMpKQorICAgIGlmICghbV9yYW5n
ZSB8fCBtX3JhbmdlLT5jb2xsYXBzZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBvbmx5IGlmIHRoZSBwYXNzZWQgcmFuZ2UgZXhhY3RseSBjb3Jy
ZXNwb25kcyB0byBhIGJhZCBncmFtbWFyIGRldGFpbCByYW5nZS4gVGhpcyBpcyBhbmFsb2dvdXMK
QEAgLTU3MywxMSArNTcyLDEwIEBAIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6
Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZShib29sCiAgICAgICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3NlczsKLSAg
ICBFeGNlcHRpb25Db2RlIGVjOwogICAgIG1pc3NwZWxsZWQgPSBmYWxzZTsKICAgICB1bmdyYW1t
YXRpY2FsID0gZmFsc2U7CiAgICAgCi0gICAgaWYgKCFtX2NsaWVudCB8fCAhbV9yYW5nZSB8fCBt
X3JhbmdlLT5jb2xsYXBzZWQoZWMpKQorICAgIGlmICghbV9jbGllbnQgfHwgIW1fcmFuZ2UgfHwg
bV9yYW5nZS0+Y29sbGFwc2VkKCkpCiAgICAgICAgIHJldHVybiBndWVzc2VzOwogCiAgICAgLy8g
RXhwYW5kIHRoZSByYW5nZSB0byBlbmNvbXBhc3MgZW50aXJlIHBhcmFncmFwaHMsIHNpbmNlIHRl
eHQgY2hlY2tpbmcgbmVlZHMgdGhhdCBtdWNoIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1
cC5jcHAKaW5kZXggMTJmYmNkYWI5ZjM1Nzc2MTBkMjY3ZmU0ZGE3MjI5MTkzYWY5MmNkZi4uZTg4
NmQ0N2JlNzkzZWQzOGM2MDFkZmFjMmU4YWE4NGY5Y2UyY2JjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
bWFya3VwLmNwcApAQCAtNTY0LDkgKzU2NCw3IEBAIFN0cmluZyBjcmVhdGVNYXJrdXAoY29uc3Qg
UmFuZ2UqIHJhbmdlLCBWZWN0b3I8Tm9kZSo+KiBub2RlcywgRUFubm90YXRlRm9ySW50ZXJjCiAg
ICAgaWYgKGRlbGV0ZUJ1dHRvbikKICAgICAgICAgZGVsZXRlQnV0dG9uLT5kaXNhYmxlKCk7CiAK
LSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBib29sIGNvbGxhcHNlZCA9IHVwZGF0ZWRS
YW5nZS0+Y29sbGFwc2VkKGVjKTsKLSAgICBBU1NFUlQoIWVjKTsKKyAgICBib29sIGNvbGxhcHNl
ZCA9IHVwZGF0ZWRSYW5nZS0+Y29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJT04pOwogICAgIGlm
IChjb2xsYXBzZWQpCiAgICAgICAgIHJldHVybiAiIjsKICAgICBOb2RlKiBjb21tb25BbmNlc3Rv
ciA9IHVwZGF0ZWRSYW5nZS0+Y29tbW9uQW5jZXN0b3JDb250YWluZXIoZWMpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDk1M2VlYzEwZTBk
YzAwYzkzNjVhNjQ0NmNmNzQ3OTUzNTBkZmI5ZDEuLmFiNzVjZWJkOTA0ODQwNDBiMTRhZjczYzA0
ZWI4MTFjYWE3YzYyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5jcHAKQEAgLTQwMCwxMSArNDAwLDExIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0ZW0pCiAgICAg
ICAgIC8vIHdoaWNoIG1heSBtYWtlIHRoaXMgZGlmZmljdWx0IHRvIGltcGxlbWVudC4gTWF5YmUg
YSBzcGVjaWFsIGNhc2Ugb2YgdGV4dC1zaGFkb3c/CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZzogewotICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBmcmFtZS0+c2VsZWN0
aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgIGlmICghc2VsZWN0ZWRSYW5nZSB8
fCBzZWxlY3RlZFJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7CisgICAgICAgIGlmICghc2VsZWN0ZWRS
YW5nZSB8fCBzZWxlY3RlZFJhbmdlLT5jb2xsYXBzZWQoKSkgewogICAgICAgICAgICAgRG9jdW1l
bnQqIGRvY3VtZW50ID0gbV9oaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpLT5kb2N1
bWVudCgpOwogICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZSA9IGRvY3VtZW50LT5jcmVhdGVSYW5n
ZSgpOworICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICAgICAgICAgIHNlbGVjdGVk
UmFuZ2UtPnNlbGVjdE5vZGUoZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLCBlYyk7CiAgICAg
ICAgIH0KICAgICAgICAgbV9jbGllbnQtPnNwZWFrKHBsYWluVGV4dChzZWxlY3RlZFJhbmdlLmdl
dCgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186590</attachid>
            <date>2013-02-05 03:05:47 -0800</date>
            <delta_ts>2013-02-06 04:51:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108921-20130205120225.patch</filename>
            <type>text/plain</type>
            <size>10812</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGQwNGQwMmIwYmQ3MzMy
ZmI0N2Q4NGMzZGNjN2RkMzcwMDAzNWFiOS4uMTM3ZTFlNWQ5MmQyMWIyNThkYzY2ZjMwMDQxM2Qw
Mjg0ZjJjZTM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAyLTA1ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ3JlYXRlIGFuIGV4Y2VwdGlv
bmxlc3MgUmFuZ2U6OmNvbGxhcHNlZCBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNyZWF0ZXMgYW4gRXhjZXB0aW9uQ29k
ZS1sZXNzIHZhcmlhbnQgb2YgUmFuZ2U6OmNvbGxhcHNlZCB0bworICAgICAgICBtYXRjaCB0aGUg
ZXhpc3RpbmcgUmFuZ2U6OntzdGFydCxlbmR9e0NvbnRhaW5lcixPZmZzZXR9IG1ldGhvZHMuIFRo
ZQorICAgICAgICBleGlzdGluZyBjYWxsc2l0ZXMgYXJlIHVwZGF0ZWQgdG8gZWl0aGVyIGRyb3Ag
dGhlIGV4Y2VwdGlvbiBjb2RlCisgICAgICAgIHBhcmFtZXRlciBlbnRpcmVseSwgb3IgdG8gcmVw
bGFjZSBpdCB3aXRoIEFTU0VSVF9OT19FWENFUFRJT04uCisKKyAgICAgICAgKiBkb20vUmFuZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjb2xsYXBzZWQpOgorICAgICAgICAoUmFuZ2Up
OgorICAgICAgICAgICAgT3ZlcmxvYWQgUmFuZ2U6OmNvbGxhcHNlZCB0byBzdXBwb3J0IEV4Y2Vw
dGlvbkNvZGUtbGVzcyBjYWxsaW5nLCBhbmQKKyAgICAgICAgICAgIHVwZGF0ZSB0aGUgZXhpc3Rp
bmcgbWV0aG9kIHRvIGRyb3AgdGhlIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlLgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2FuRGVsZXRl
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzaG91bGREZWxldGVSYW5nZSk6Cisg
ICAgICAgICAgICBEcm9wIHRoZSBFeGNlcHRpb25Db2RlIGVudGlyZWx5LgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcpOgorICAgICAgICAgICAgRHJv
cCB0aGUgRXhjZXB0aW9uQ29kZSBmcm9tIHRoZSBjYWxsLgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpyYW5nZU9mU3RyaW5nKToKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIEV4Y2VwdGlvbkNv
ZGUtbGVzcyBjYWxsIHdpdGggQVNTRVJUX05PX0VYQ0VQVElPTi4KKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y291bnRNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6aXNVbmdyYW1tYXRpY2FsKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3Jh
bW1hdGljYWxSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlTWFya3VwKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgICAgIERyb3AgdGhlIEV4Y2VwdGlvbkNvZGUg
ZnJvbSB0aGUgY2FsbC4KKwogMjAxMy0wMi0wNSAgSnVsaWVuIEJyaWFuY2VhdSAgPGpicmlhbmNl
YXVAbmRzLmNvbT4KIAogICAgICAgICBCdWlsZCBpcyBicm9rZW4gc2luY2UgcjE0MTU0MyBmb3Ig
cGxhdGZvcm1zIHdpdGhvdXQgT3BlbkdMCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
UmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCmluZGV4IGI2YmY3NzExZDUxOGQ5
ZTg5NTc4MjdhOWEwNzBlNjYyMjY1NjU3NGMuLmMzZjlhYzc2OGVhM2E0ZTE1ZjNmMmJhZTJkNzU5
MzU3YTI4Y2RlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC01OCwxMiArNTgsMTMgQEAgcHVibGljOgog
ICAgIGludCBzdGFydE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnQub2Zmc2V0KCk7IH0K
ICAgICBOb2RlKiBlbmRDb250YWluZXIoKSBjb25zdCB7IHJldHVybiBtX2VuZC5jb250YWluZXIo
KTsgfQogICAgIGludCBlbmRPZmZzZXQoKSBjb25zdCB7IHJldHVybiBtX2VuZC5vZmZzZXQoKTsg
fQorICAgIGJvb2wgY29sbGFwc2VkKCkgY29uc3QgeyByZXR1cm4gbV9zdGFydCA9PSBtX2VuZDsg
fQogCiAgICAgTm9kZSogc3RhcnRDb250YWluZXIoRXhjZXB0aW9uQ29kZSYpIGNvbnN0OwogICAg
IGludCBzdGFydE9mZnNldChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgTm9kZSogZW5kQ29u
dGFpbmVyKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBpbnQgZW5kT2Zmc2V0KEV4Y2VwdGlv
bkNvZGUmKSBjb25zdDsKLSAgICBib29sIGNvbGxhcHNlZChFeGNlcHRpb25Db2RlJiA9IEFTU0VS
VF9OT19FWENFUFRJT04pIGNvbnN0OworICAgIGJvb2wgY29sbGFwc2VkKEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKIAogICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKEV4Y2VwdGlvbkNv
ZGUmKSBjb25zdDsKICAgICBzdGF0aWMgTm9kZSogY29tbW9uQW5jZXN0b3JDb250YWluZXIoTm9k
ZSogY29udGFpbmVyQSwgTm9kZSogY29udGFpbmVyQik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAKaW5kZXggNGQ2ZjcxZjEwZWU5NWRiZjEyMWIzM2U3N2I3ZTgxYjVkOTJmZTczMS4uNjRhZTVm
M2U0MzFjZTE1NmZmOGMyZjYyYjQyYmE5MTg2ZTMyMWNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcApAQCAtMjYyLDggKzI2Miw3IEBAIGJvb2wgRWRpdG9yOjpjYW5EZWxldGVSYW5nZShS
YW5nZSogcmFuZ2UpIGNvbnN0CiAgICAgaWYgKCFzdGFydENvbnRhaW5lci0+cmVuZGVyZXJJc0Vk
aXRhYmxlKCkgfHwgIWVuZENvbnRhaW5lci0+cmVuZGVyZXJJc0VkaXRhYmxlKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIEV4Y2VwdGlvbkNvZGUgZWM7Ci0gICAgaWYgKHJhbmdlLT5j
b2xsYXBzZWQoZWMpKSB7CisgICAgaWYgKHJhbmdlLT5jb2xsYXBzZWQoKSkgewogICAgICAgICBW
aXNpYmxlUG9zaXRpb24gc3RhcnQocmFuZ2UtPnN0YXJ0UG9zaXRpb24oKSwgRE9XTlNUUkVBTSk7
CiAgICAgICAgIFZpc2libGVQb3NpdGlvbiBwcmV2aW91cyA9IHN0YXJ0LnByZXZpb3VzKCk7CiAg
ICAgICAgIC8vIEZJWE1FOiBXZSBzb21ldGltZXMgYWxsb3cgZGVsZXRpb25zIGF0IHRoZSBzdGFy
dCBvZiBlZGl0YWJsZSByb290cywgbGlrZSB3aGVuIHRoZSBjYXJldCBpcyBpbiBhbiBlbXB0eSBs
aXN0IGl0ZW0uCkBAIC00MzgsOCArNDM3LDcgQEAgUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9yOjpz
ZWxlY3RlZFJhbmdlKCkKIAogYm9vbCBFZGl0b3I6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKiBy
YW5nZSkgY29uc3QKIHsKLSAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgIGlmICghcmFuZ2UgfHwg
cmFuZ2UtPmNvbGxhcHNlZChlYykpCisgICAgaWYgKCFyYW5nZSB8fCByYW5nZS0+Y29sbGFwc2Vk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICBpZiAoIWNhbkRlbGV0ZVJhbmdl
KHJhbmdlKSkKQEAgLTE1ODUsNyArMTU4Myw3IEBAIHZvaWQgRWRpdG9yOjphZHZhbmNlVG9OZXh0
TWlzc3BlbGxpbmcoYm9vbCBzdGFydEJlZm9yZVNlbGVjdGlvbikKICAgICAgICAgLy8gZWxzZSB3
ZSB3ZXJlIGFscmVhZHkgYXQgdGhlIHN0YXJ0IG9mIHRoZSBlZGl0YWJsZSBub2RlCiAgICAgfQog
Ci0gICAgaWYgKHNwZWxsaW5nU2VhcmNoUmFuZ2UtPmNvbGxhcHNlZChlYykpCisgICAgaWYgKHNw
ZWxsaW5nU2VhcmNoUmFuZ2UtPmNvbGxhcHNlZCgpKQogICAgICAgICByZXR1cm47IC8vIG5vdGhp
bmcgdG8gc2VhcmNoIGluCiAgICAgCiAgICAgLy8gR2V0IHRoZSBzcGVsbCBjaGVja2VyIGlmIGl0
IGlzIGF2YWlsYWJsZQpAQCAtMjczNCw3ICsyNzMyLDcgQEAgUGFzc1JlZlB0cjxSYW5nZT4gRWRp
dG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmVmZXJlbmNl
UmEKICAgICB9CiAKICAgICAvLyBJZiBub3RoaW5nIHdhcyBmb3VuZCBpbiB0aGUgc2hhZG93IHRy
ZWUsIHNlYXJjaCBpbiBtYWluIGNvbnRlbnQgZm9sbG93aW5nIHRoZSBzaGFkb3cgdHJlZS4KLSAg
ICBpZiAocmVzdWx0UmFuZ2UtPmNvbGxhcHNlZCgpICYmIHNoYWRvd1RyZWVSb290KSB7CisgICAg
aWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoQVNTRVJUX05PX0VYQ0VQVElPTikgJiYgc2hhZG93
VHJlZVJvb3QpIHsKICAgICAgICAgc2VhcmNoUmFuZ2UgPSByYW5nZU9mQ29udGVudHMobV9mcmFt
ZS0+ZG9jdW1lbnQoKSk7CiAgICAgICAgIGlmIChmb3J3YXJkKQogICAgICAgICAgICAgc2VhcmNo
UmFuZ2UtPnNldFN0YXJ0QWZ0ZXIoc2hhZG93VHJlZVJvb3QtPnNoYWRvd0hvc3QoKSk7CkBAIC0y
NzQ2LDcgKzI3NDQsNyBAQCBQYXNzUmVmUHRyPFJhbmdlPiBFZGl0b3I6OnJhbmdlT2ZTdHJpbmco
Y29uc3QgU3RyaW5nJiB0YXJnZXQsIFJhbmdlKiByZWZlcmVuY2VSYQogCiAgICAgLy8gSWYgd2Ug
ZGlkbid0IGZpbmQgYW55dGhpbmcgYW5kIHdlJ3JlIHdyYXBwaW5nLCBzZWFyY2ggYWdhaW4gaW4g
dGhlIGVudGlyZSBkb2N1bWVudCAodGhpcyB3aWxsCiAgICAgLy8gcmVkdW5kYW50bHkgcmUtc2Vh
cmNoIHRoZSBhcmVhIGFscmVhZHkgc2VhcmNoZWQgaW4gc29tZSBjYXNlcykuCi0gICAgaWYgKHJl
c3VsdFJhbmdlLT5jb2xsYXBzZWQoKSAmJiBvcHRpb25zICYgV3JhcEFyb3VuZCkgeworICAgIGlm
IChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJT04pICYmIG9wdGlvbnMg
JiBXcmFwQXJvdW5kKSB7CiAgICAgICAgIHNlYXJjaFJhbmdlID0gcmFuZ2VPZkNvbnRlbnRzKG1f
ZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICByZXN1bHRSYW5nZSA9IGZpbmRQbGFpblRleHQo
c2VhcmNoUmFuZ2UuZ2V0KCksIHRhcmdldCwgb3B0aW9ucyk7CiAgICAgICAgIC8vIFdlIHVzZWQg
dG8gcmV0dXJuIGZhbHNlIGhlcmUgaWYgd2UgZW5kZWQgdXAgd2l0aCB0aGUgc2FtZSByYW5nZSB0
aGF0IHdlIHN0YXJ0ZWQgd2l0aApAQCAtMjc1NCw3ICsyNzUyLDcgQEAgUGFzc1JlZlB0cjxSYW5n
ZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmVm
ZXJlbmNlUmEKICAgICAgICAgLy8gdGhpcyBzaG91bGQgYmUgYSBzdWNjZXNzIGNhc2UgaW5zdGVh
ZCwgc28gd2UnbGwganVzdCBmYWxsIHRocm91Z2ggaW4gdGhhdCBjYXNlLgogICAgIH0KIAotICAg
IHJldHVybiByZXN1bHRSYW5nZS0+Y29sbGFwc2VkKCkgPyAwIDogcmVzdWx0UmFuZ2UucmVsZWFz
ZSgpOworICAgIHJldHVybiByZXN1bHRSYW5nZS0+Y29sbGFwc2VkKEFTU0VSVF9OT19FWENFUFRJ
T04pID8gMCA6IHJlc3VsdFJhbmdlLnJlbGVhc2UoKTsKIH0KIAogc3RhdGljIGJvb2wgaXNGcmFt
ZUluUmFuZ2UoRnJhbWUqIGZyYW1lLCBSYW5nZSogcmFuZ2UpCkBAIC0yNzkyLDcgKzI3OTAsNyBA
QCB1bnNpZ25lZCBFZGl0b3I6OmNvdW50TWF0Y2hlc0ZvclRleHQoY29uc3QgU3RyaW5nJiB0YXJn
ZXQsIFJhbmdlKiByYW5nZSwgRmluZE9wdAogICAgIHVuc2lnbmVkIG1hdGNoQ291bnQgPSAwOwog
ICAgIGRvIHsKICAgICAgICAgUmVmUHRyPFJhbmdlPiByZXN1bHRSYW5nZShmaW5kUGxhaW5UZXh0
KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJnZXQsIG9wdGlvbnMgJiB+QmFja3dhcmRzKSk7Ci0gICAg
ICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKGV4Y2VwdGlvbikpIHsKKyAgICAgICAgaWYg
KHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoKSkgewogICAgICAgICAgICAgaWYgKCFyZXN1bHRSYW5n
ZS0+c3RhcnRDb250YWluZXIoKS0+aXNJblNoYWRvd1RyZWUoKSkKICAgICAgICAgICAgICAgICBi
cmVhazsKIApAQCAtMjgxOSw3ICsyODE3LDcgQEAgdW5zaWduZWQgRWRpdG9yOjpjb3VudE1hdGNo
ZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmFuZ2UsIEZpbmRPcHQKICAg
ICAgICAgc2VhcmNoUmFuZ2UtPnNldFN0YXJ0KHJlc3VsdFJhbmdlLT5lbmRDb250YWluZXIoZXhj
ZXB0aW9uKSwgcmVzdWx0UmFuZ2UtPmVuZE9mZnNldChleGNlcHRpb24pLCBleGNlcHRpb24pOwog
CiAgICAgICAgIE5vZGUqIHNoYWRvd1RyZWVSb290ID0gc2VhcmNoUmFuZ2UtPnNoYWRvd1Jvb3Qo
KTsKLSAgICAgICAgaWYgKHNlYXJjaFJhbmdlLT5jb2xsYXBzZWQoZXhjZXB0aW9uKSAmJiBzaGFk
b3dUcmVlUm9vdCkKKyAgICAgICAgaWYgKHNlYXJjaFJhbmdlLT5jb2xsYXBzZWQoKSAmJiBzaGFk
b3dUcmVlUm9vdCkKICAgICAgICAgICAgIHNlYXJjaFJhbmdlLT5zZXRFbmQoc2hhZG93VHJlZVJv
b3QsIHNoYWRvd1RyZWVSb290LT5jaGlsZE5vZGVDb3VudCgpLCBleGNlcHRpb24pOwogICAgIH0g
d2hpbGUgKHRydWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApp
bmRleCA0NzMzMjQ5M2FjOTliNWQxODU4ZDBmM2QxZmYyYjNiMzAxNGM4ZTdmLi40ZjgyMjAwMDE3
OWNhODkyNTMzMjQ0M2VjOTZmMjI3ZDc1NmIyZTFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKQEAgLTIxMyw4ICsyMTMsNyBAQCBzdGF0aWMgYm9vbCBleHBhbmRT
ZWxlY3Rpb25Ub0dyYW51bGFyaXR5KEZyYW1lKiBmcmFtZSwgVGV4dEdyYW51bGFyaXR5IGdyYW51
bGFyaQogICAgIFJlZlB0cjxSYW5nZT4gbmV3UmFuZ2UgPSBzZWxlY3Rpb24udG9Ob3JtYWxpemVk
UmFuZ2UoKTsKICAgICBpZiAoIW5ld1JhbmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
RXhjZXB0aW9uQ29kZSBlYyA9IDA7Ci0gICAgaWYgKG5ld1JhbmdlLT5jb2xsYXBzZWQoZWMpKQor
ICAgIGlmIChuZXdSYW5nZS0+Y29sbGFwc2VkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICBSZWZQdHI8UmFuZ2U+IG9sZFJhbmdlID0gZnJhbWUtPnNlbGVjdGlvbigpLT5zZWxlY3Rpb24o
KS50b05vcm1hbGl6ZWRSYW5nZSgpOwogICAgIEVBZmZpbml0eSBhZmZpbml0eSA9IGZyYW1lLT5z
ZWxlY3Rpb24oKS0+YWZmaW5pdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvVGV4dENoZWNraW5nSGVscGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvVGV4dENo
ZWNraW5nSGVscGVyLmNwcAppbmRleCBjZDcyM2I5M2JhNWJmMTMyYjc1MWE1NjAzNjZlODM3YWUx
ZGY1MDEyLi4xYjVlNTZlYWE0MzRlM2MwZThkMWQxODNiNTljMTZjZDRkNTBmYzU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCkBAIC01MjcsOCAr
NTI3LDcgQEAgYm9vbCBUZXh0Q2hlY2tpbmdIZWxwZXI6OmlzVW5ncmFtbWF0aWNhbChWZWN0b3I8
U3RyaW5nPiYgZ3Vlc3Nlc1ZlY3RvcikgY29uc3QKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjOwotICAgIGlmICghbV9yYW5n
ZSB8fCBtX3JhbmdlLT5jb2xsYXBzZWQoZWMpKQorICAgIGlmICghbV9yYW5nZSB8fCBtX3Jhbmdl
LT5jb2xsYXBzZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8vIFJldHVy
bnMgdHJ1ZSBvbmx5IGlmIHRoZSBwYXNzZWQgcmFuZ2UgZXhhY3RseSBjb3JyZXNwb25kcyB0byBh
IGJhZCBncmFtbWFyIGRldGFpbCByYW5nZS4gVGhpcyBpcyBhbmFsb2dvdXMKQEAgLTU3MywxMSAr
NTcyLDEwIEBAIFZlY3RvcjxTdHJpbmc+IFRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1p
c3NwZWxsZWRPclVuZ3JhbW1hdGljYWxSYW5nZShib29sCiAgICAgICAgIHJldHVybiBWZWN0b3I8
U3RyaW5nPigpOwogCiAgICAgVmVjdG9yPFN0cmluZz4gZ3Vlc3NlczsKLSAgICBFeGNlcHRpb25D
b2RlIGVjOwogICAgIG1pc3NwZWxsZWQgPSBmYWxzZTsKICAgICB1bmdyYW1tYXRpY2FsID0gZmFs
c2U7CiAgICAgCi0gICAgaWYgKCFtX2NsaWVudCB8fCAhbV9yYW5nZSB8fCBtX3JhbmdlLT5jb2xs
YXBzZWQoZWMpKQorICAgIGlmICghbV9jbGllbnQgfHwgIW1fcmFuZ2UgfHwgbV9yYW5nZS0+Y29s
bGFwc2VkKCkpCiAgICAgICAgIHJldHVybiBndWVzc2VzOwogCiAgICAgLy8gRXhwYW5kIHRoZSBy
YW5nZSB0byBlbmNvbXBhc3MgZW50aXJlIHBhcmFncmFwaHMsIHNpbmNlIHRleHQgY2hlY2tpbmcg
bmVlZHMgdGhhdCBtdWNoIGNvbnRleHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL21hcmt1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKaW5kZXgg
MTJmYmNkYWI5ZjM1Nzc2MTBkMjY3ZmU0ZGE3MjI5MTkzYWY5MmNkZi4uYWNiMWI4MTZiYTUxNWUy
NWEwODdkYWY0YjFkODE0YjlmZjRiN2ZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9tYXJrdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcApA
QCAtNTY0LDEzICs1NjQsMTEgQEAgU3RyaW5nIGNyZWF0ZU1hcmt1cChjb25zdCBSYW5nZSogcmFu
Z2UsIFZlY3RvcjxOb2RlKj4qIG5vZGVzLCBFQW5ub3RhdGVGb3JJbnRlcmMKICAgICBpZiAoZGVs
ZXRlQnV0dG9uKQogICAgICAgICBkZWxldGVCdXR0b24tPmRpc2FibGUoKTsKIAotICAgIEV4Y2Vw
dGlvbkNvZGUgZWMgPSAwOwotICAgIGJvb2wgY29sbGFwc2VkID0gdXBkYXRlZFJhbmdlLT5jb2xs
YXBzZWQoZWMpOwotICAgIEFTU0VSVCghZWMpOworICAgIGJvb2wgY29sbGFwc2VkID0gdXBkYXRl
ZFJhbmdlLT5jb2xsYXBzZWQoQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgaWYgKGNvbGxhcHNl
ZCkKICAgICAgICAgcmV0dXJuICIiOwotICAgIE5vZGUqIGNvbW1vbkFuY2VzdG9yID0gdXBkYXRl
ZFJhbmdlLT5jb21tb25BbmNlc3RvckNvbnRhaW5lcihlYyk7Ci0gICAgQVNTRVJUKCFlYyk7CisK
KyAgICBOb2RlKiBjb21tb25BbmNlc3RvciA9IHVwZGF0ZWRSYW5nZS0+Y29tbW9uQW5jZXN0b3JD
b250YWluZXIoQVNTRVJUX05PX0VYQ0VQVElPTik7CiAgICAgaWYgKCFjb21tb25BbmNlc3RvcikK
ICAgICAgICAgcmV0dXJuICIiOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggOTUzZWVjMTBlMGRjMDBjOTM2NWE2NDQ2Y2Y3NDc5NTM1MGRm
YjlkMS4uYWI3NWNlYmQ5MDQ4NDA0MGIxNGFmNzNjMDRlYjgxMWNhYTdjNjI0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtNDAwLDExICs0
MDAsMTEgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51SXRlbSogaXRlbSkKICAgICAgICAgLy8gd2hpY2ggbWF5IG1ha2UgdGhp
cyBkaWZmaWN1bHQgdG8gaW1wbGVtZW50LiBNYXliZSBhIHNwZWNpYWwgY2FzZSBvZiB0ZXh0LXNo
YWRvdz8KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdTdGFydFNw
ZWFraW5nOiB7Ci0gICAgICAgIEV4Y2VwdGlvbkNvZGUgZWM7CiAgICAgICAgIFJlZlB0cjxSYW5n
ZT4gc2VsZWN0ZWRSYW5nZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+dG9Ob3JtYWxpemVkUmFuZ2Uo
KTsKLSAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8IHNlbGVjdGVkUmFuZ2UtPmNvbGxhcHNl
ZChlYykpIHsKKyAgICAgICAgaWYgKCFzZWxlY3RlZFJhbmdlIHx8IHNlbGVjdGVkUmFuZ2UtPmNv
bGxhcHNlZCgpKSB7CiAgICAgICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBtX2hpdFRlc3RS
ZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPmRvY3VtZW50KCk7CiAgICAgICAgICAgICBzZWxl
Y3RlZFJhbmdlID0gZG9jdW1lbnQtPmNyZWF0ZVJhbmdlKCk7CisgICAgICAgICAgICBFeGNlcHRp
b25Db2RlIGVjOwogICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZS0+c2VsZWN0Tm9kZShkb2N1bWVu
dC0+ZG9jdW1lbnRFbGVtZW50KCksIGVjKTsKICAgICAgICAgfQogICAgICAgICBtX2NsaWVudC0+
c3BlYWsocGxhaW5UZXh0KHNlbGVjdGVkUmFuZ2UuZ2V0KCkpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186831</attachid>
            <date>2013-02-06 04:52:04 -0800</date>
            <delta_ts>2013-02-09 07:02:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108921-20130206134840.patch</filename>
            <type>text/plain</type>
            <size>10846</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjRlNzMyNmRjNmRmZTQw
MzY3MWJjYzJlNmUxNzViZmEzM2ZlMTU3Mi4uM2ZlYzY3NjBjZjk4ZWQyZGU3ZTJmNzJjMzVlZTM5
MTU0MmQ5ODBjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDEzLTAyLTA2ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQ3JlYXRlIGFuIGV4Y2VwdGlv
bmxlc3MgUmFuZ2U6OmNvbGxhcHNlZCBtZXRob2QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGNyZWF0ZXMgYW4gRXhjZXB0aW9uQ29k
ZS1sZXNzIHZhcmlhbnQgb2YgUmFuZ2U6OmNvbGxhcHNlZCB0bworICAgICAgICBtYXRjaCB0aGUg
ZXhpc3RpbmcgUmFuZ2U6OntzdGFydCxlbmR9e0NvbnRhaW5lcixPZmZzZXR9IG1ldGhvZHMuIFRo
ZQorICAgICAgICBleGlzdGluZyBjYWxsc2l0ZXMgYXJlIHVwZGF0ZWQgdG8gZWl0aGVyIGRyb3Ag
dGhlIGV4Y2VwdGlvbiBjb2RlCisgICAgICAgIHBhcmFtZXRlciBlbnRpcmVseSwgb3IgdG8gcmVw
bGFjZSBpdCB3aXRoIEFTU0VSVF9OT19FWENFUFRJT04uCisKKyAgICAgICAgKiBkb20vUmFuZ2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJhbmdlOjpjb2xsYXBzZWQpOgorICAgICAgICAoUmFuZ2Up
OgorICAgICAgICAgICAgT3ZlcmxvYWQgUmFuZ2U6OmNvbGxhcHNlZCB0byBzdXBwb3J0IEV4Y2Vw
dGlvbkNvZGUtbGVzcyBjYWxsaW5nLCBhbmQKKyAgICAgICAgICAgIHVwZGF0ZSB0aGUgZXhpc3Rp
bmcgbWV0aG9kIHRvIGRyb3AgdGhlIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlLgorICAgICAgICAq
IGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6Y2FuRGVsZXRl
UmFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpzaG91bGREZWxldGVSYW5nZSk6Cisg
ICAgICAgICAgICBEcm9wIHRoZSBFeGNlcHRpb25Db2RlIGVudGlyZWx5LgorICAgICAgICAoV2Vi
Q29yZTo6RWRpdG9yOjphZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcpOgorICAgICAgICAgICAgRHJv
cCB0aGUgRXhjZXB0aW9uQ29kZSBmcm9tIHRoZSBjYWxsLgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yOjpyYW5nZU9mU3RyaW5nKToKKyAgICAgICAgICAgIFJlcGxhY2UgdGhlIEV4Y2VwdGlvbkNv
ZGUtbGVzcyBjYWxsIHdpdGggQVNTRVJUX05PX0VYQ0VQVElPTi4KKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvcjo6Y291bnRNYXRjaGVzRm9yVGV4dCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4cGFuZFNlbGVjdGlvblRvR3JhbnVsYXJp
dHkpOgorICAgICAgICAqIGVkaXRpbmcvVGV4dENoZWNraW5nSGVscGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6aXNVbmdyYW1tYXRpY2FsKToKKyAgICAgICAg
KFdlYkNvcmU6OlRleHRDaGVja2luZ0hlbHBlcjo6Z3Vlc3Nlc0Zvck1pc3NwZWxsZWRPclVuZ3Jh
bW1hdGljYWxSYW5nZSk6CisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y3JlYXRlTWFya3VwKToKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgICAgIERyb3AgdGhlIEV4Y2VwdGlvbkNvZGUg
ZnJvbSB0aGUgY2FsbC4KKwogMjAxMy0wMi0wNCAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW1Y4XSBSZW1vdmUgVjhHQ0NvbnRyb2xsZXI6Om1fZWRlbk5v
ZGVzIGFuZCBtYWtlIG1pbm9yIERPTSBHQyBtb3JlIHByZWNpc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9SYW5nZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKaW5kZXgg
YjZiZjc3MTFkNTE4ZDllODk1NzgyN2E5YTA3MGU2NjIyNjU2NTc0Yy4uOTI2NGMwYTFiMWMxOGU1
ODUzOTlkYmFjN2RhZDE3MDRhMjkxNzgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L1JhbmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1JhbmdlLmgKQEAgLTU4LDEyICs1OCwx
MyBAQCBwdWJsaWM6CiAgICAgaW50IHN0YXJ0T2Zmc2V0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFy
dC5vZmZzZXQoKTsgfQogICAgIE5vZGUqIGVuZENvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kLmNvbnRhaW5lcigpOyB9CiAgICAgaW50IGVuZE9mZnNldCgpIGNvbnN0IHsgcmV0dXJuIG1f
ZW5kLm9mZnNldCgpOyB9CisgICAgYm9vbCBjb2xsYXBzZWQoKSBjb25zdCB7IHJldHVybiBzdGFy
dENvbnRhaW5lcigpICYmIG1fc3RhcnQgPT0gbV9lbmQ7IH0KIAogICAgIE5vZGUqIHN0YXJ0Q29u
dGFpbmVyKEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBpbnQgc3RhcnRPZmZzZXQoRXhjZXB0
aW9uQ29kZSYpIGNvbnN0OwogICAgIE5vZGUqIGVuZENvbnRhaW5lcihFeGNlcHRpb25Db2RlJikg
Y29uc3Q7CiAgICAgaW50IGVuZE9mZnNldChFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgYm9v
bCBjb2xsYXBzZWQoRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKSBjb25zdDsK
KyAgICBib29sIGNvbGxhcHNlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICBOb2RlKiBj
b21tb25BbmNlc3RvckNvbnRhaW5lcihFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgc3RhdGlj
IE5vZGUqIGNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKE5vZGUqIGNvbnRhaW5lckEsIE5vZGUqIGNv
bnRhaW5lckIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGMyMWY0NTQxOTkwOGE5
YTUwNjU1YWQ4M2QyYmRmZjYxODllYmEyNjguLmZiYWFiZDk1MmQyZGYzNDk5MTdlYjdhZmMxZjhh
YTQ5NTY0Mzg3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI2Miw4ICsyNjIs
NyBAQCBib29sIEVkaXRvcjo6Y2FuRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKSBjb25zdAogICAg
IGlmICghc3RhcnRDb250YWluZXItPnJlbmRlcmVySXNFZGl0YWJsZSgpIHx8ICFlbmRDb250YWlu
ZXItPnJlbmRlcmVySXNFZGl0YWJsZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBF
eGNlcHRpb25Db2RlIGVjOwotICAgIGlmIChyYW5nZS0+Y29sbGFwc2VkKGVjKSkgeworICAgIGlm
IChyYW5nZS0+Y29sbGFwc2VkKCkpIHsKICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0KHJh
bmdlLT5zdGFydFBvc2l0aW9uKCksIERPV05TVFJFQU0pOwogICAgICAgICBWaXNpYmxlUG9zaXRp
b24gcHJldmlvdXMgPSBzdGFydC5wcmV2aW91cygpOwogICAgICAgICAvLyBGSVhNRTogV2Ugc29t
ZXRpbWVzIGFsbG93IGRlbGV0aW9ucyBhdCB0aGUgc3RhcnQgb2YgZWRpdGFibGUgcm9vdHMsIGxp
a2Ugd2hlbiB0aGUgY2FyZXQgaXMgaW4gYW4gZW1wdHkgbGlzdCBpdGVtLgpAQCAtNDM4LDggKzQz
Nyw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6c2VsZWN0ZWRSYW5nZSgpCiAKIGJvb2wg
RWRpdG9yOjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpIGNvbnN0CiB7Ci0gICAgRXhj
ZXB0aW9uQ29kZSBlYzsKLSAgICBpZiAoIXJhbmdlIHx8IHJhbmdlLT5jb2xsYXBzZWQoZWMpKQor
ICAgIGlmICghcmFuZ2UgfHwgcmFuZ2UtPmNvbGxhcHNlZCgpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCiAgICAgaWYgKCFjYW5EZWxldGVSYW5nZShyYW5nZSkpCkBAIC0xNjE4LDcgKzE2
MTYsNyBAQCB2b2lkIEVkaXRvcjo6YWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGJvb2wgc3RhcnRC
ZWZvcmVTZWxlY3Rpb24pCiAgICAgICAgIC8vIGVsc2Ugd2Ugd2VyZSBhbHJlYWR5IGF0IHRoZSBz
dGFydCBvZiB0aGUgZWRpdGFibGUgbm9kZQogICAgIH0KIAotICAgIGlmIChzcGVsbGluZ1NlYXJj
aFJhbmdlLT5jb2xsYXBzZWQoZWMpKQorICAgIGlmIChzcGVsbGluZ1NlYXJjaFJhbmdlLT5jb2xs
YXBzZWQoKSkKICAgICAgICAgcmV0dXJuOyAvLyBub3RoaW5nIHRvIHNlYXJjaCBpbgogICAgIAog
ICAgIC8vIEdldCB0aGUgc3BlbGwgY2hlY2tlciBpZiBpdCBpcyBhdmFpbGFibGUKQEAgLTI3Njcs
NyArMjc2NSw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25z
dCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgfQogCiAgICAgLy8gSWYg
bm90aGluZyB3YXMgZm91bmQgaW4gdGhlIHNoYWRvdyB0cmVlLCBzZWFyY2ggaW4gbWFpbiBjb250
ZW50IGZvbGxvd2luZyB0aGUgc2hhZG93IHRyZWUuCi0gICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xs
YXBzZWQoKSAmJiBzaGFkb3dUcmVlUm9vdCkgeworICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFw
c2VkKEFTU0VSVF9OT19FWENFUFRJT04pICYmIHNoYWRvd1RyZWVSb290KSB7CiAgICAgICAgIHNl
YXJjaFJhbmdlID0gcmFuZ2VPZkNvbnRlbnRzKG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAg
ICBpZiAoZm9yd2FyZCkKICAgICAgICAgICAgIHNlYXJjaFJhbmdlLT5zZXRTdGFydEFmdGVyKHNo
YWRvd1RyZWVSb290LT5zaGFkb3dIb3N0KCkpOwpAQCAtMjc3OSw3ICsyNzc3LDcgQEAgUGFzc1Jl
ZlB0cjxSYW5nZT4gRWRpdG9yOjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBS
YW5nZSogcmVmZXJlbmNlUmEKIAogICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nIGFu
ZCB3ZSdyZSB3cmFwcGluZywgc2VhcmNoIGFnYWluIGluIHRoZSBlbnRpcmUgZG9jdW1lbnQgKHRo
aXMgd2lsbAogICAgIC8vIHJlZHVuZGFudGx5IHJlLXNlYXJjaCB0aGUgYXJlYSBhbHJlYWR5IHNl
YXJjaGVkIGluIHNvbWUgY2FzZXMpLgotICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKCkg
JiYgb3B0aW9ucyAmIFdyYXBBcm91bmQpIHsKKyAgICBpZiAocmVzdWx0UmFuZ2UtPmNvbGxhcHNl
ZChBU1NFUlRfTk9fRVhDRVBUSU9OKSAmJiBvcHRpb25zICYgV3JhcEFyb3VuZCkgewogICAgICAg
ICBzZWFyY2hSYW5nZSA9IHJhbmdlT2ZDb250ZW50cyhtX2ZyYW1lLT5kb2N1bWVudCgpKTsKICAg
ICAgICAgcmVzdWx0UmFuZ2UgPSBmaW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJn
ZXQsIG9wdGlvbnMpOwogICAgICAgICAvLyBXZSB1c2VkIHRvIHJldHVybiBmYWxzZSBoZXJlIGlm
IHdlIGVuZGVkIHVwIHdpdGggdGhlIHNhbWUgcmFuZ2UgdGhhdCB3ZSBzdGFydGVkIHdpdGgKQEAg
LTI3ODcsNyArMjc4NSw3IEBAIFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmlu
Zyhjb25zdCBTdHJpbmcmIHRhcmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgICAgIC8vIHRo
aXMgc2hvdWxkIGJlIGEgc3VjY2VzcyBjYXNlIGluc3RlYWQsIHNvIHdlJ2xsIGp1c3QgZmFsbCB0
aHJvdWdoIGluIHRoYXQgY2FzZS4KICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0UmFuZ2UtPmNv
bGxhcHNlZCgpID8gMCA6IHJlc3VsdFJhbmdlLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVzdWx0
UmFuZ2UtPmNvbGxhcHNlZChBU1NFUlRfTk9fRVhDRVBUSU9OKSA/IDAgOiByZXN1bHRSYW5nZS5y
ZWxlYXNlKCk7CiB9CiAKIHN0YXRpYyBib29sIGlzRnJhbWVJblJhbmdlKEZyYW1lKiBmcmFtZSwg
UmFuZ2UqIHJhbmdlKQpAQCAtMjgyNSw3ICsyODIzLDcgQEAgdW5zaWduZWQgRWRpdG9yOjpjb3Vu
dE1hdGNoZXNGb3JUZXh0KGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmFuZ2UsIEZpbmRP
cHQKICAgICB1bnNpZ25lZCBtYXRjaENvdW50ID0gMDsKICAgICBkbyB7CiAgICAgICAgIFJlZlB0
cjxSYW5nZT4gcmVzdWx0UmFuZ2UoZmluZFBsYWluVGV4dChzZWFyY2hSYW5nZS5nZXQoKSwgdGFy
Z2V0LCBvcHRpb25zICYgfkJhY2t3YXJkcykpOwotICAgICAgICBpZiAocmVzdWx0UmFuZ2UtPmNv
bGxhcHNlZChleGNlcHRpb24pKSB7CisgICAgICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2Vk
KCkpIHsKICAgICAgICAgICAgIGlmICghcmVzdWx0UmFuZ2UtPnN0YXJ0Q29udGFpbmVyKCktPmlz
SW5TaGFkb3dUcmVlKCkpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTI4NTIsNyArMjg1
MCw3IEBAIHVuc2lnbmVkIEVkaXRvcjo6Y291bnRNYXRjaGVzRm9yVGV4dChjb25zdCBTdHJpbmcm
IHRhcmdldCwgUmFuZ2UqIHJhbmdlLCBGaW5kT3B0CiAgICAgICAgIHNlYXJjaFJhbmdlLT5zZXRT
dGFydChyZXN1bHRSYW5nZS0+ZW5kQ29udGFpbmVyKGV4Y2VwdGlvbiksIHJlc3VsdFJhbmdlLT5l
bmRPZmZzZXQoZXhjZXB0aW9uKSwgZXhjZXB0aW9uKTsKIAogICAgICAgICBOb2RlKiBzaGFkb3dU
cmVlUm9vdCA9IHNlYXJjaFJhbmdlLT5zaGFkb3dSb290KCk7Ci0gICAgICAgIGlmIChzZWFyY2hS
YW5nZS0+Y29sbGFwc2VkKGV4Y2VwdGlvbikgJiYgc2hhZG93VHJlZVJvb3QpCisgICAgICAgIGlm
IChzZWFyY2hSYW5nZS0+Y29sbGFwc2VkKCkgJiYgc2hhZG93VHJlZVJvb3QpCiAgICAgICAgICAg
ICBzZWFyY2hSYW5nZS0+c2V0RW5kKHNoYWRvd1RyZWVSb290LCBzaGFkb3dUcmVlUm9vdC0+Y2hp
bGROb2RlQ291bnQoKSwgZXhjZXB0aW9uKTsKICAgICB9IHdoaWxlICh0cnVlKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggNDczMzI0OTNhYzk5YjVkMTg1
OGQwZjNkMWZmMmIzYjMwMTRjOGU3Zi4uNGY4MjIwMDAxNzljYTg5MjUzMzI0NDNlYzk2ZjIyN2Q3
NTZiMmUxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC0y
MTMsOCArMjEzLDcgQEAgc3RhdGljIGJvb2wgZXhwYW5kU2VsZWN0aW9uVG9HcmFudWxhcml0eShG
cmFtZSogZnJhbWUsIFRleHRHcmFudWxhcml0eSBncmFudWxhcmkKICAgICBSZWZQdHI8UmFuZ2U+
IG5ld1JhbmdlID0gc2VsZWN0aW9uLnRvTm9ybWFsaXplZFJhbmdlKCk7CiAgICAgaWYgKCFuZXdS
YW5nZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwot
ICAgIGlmIChuZXdSYW5nZS0+Y29sbGFwc2VkKGVjKSkKKyAgICBpZiAobmV3UmFuZ2UtPmNvbGxh
cHNlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgUmVmUHRyPFJhbmdlPiBvbGRSYW5n
ZSA9IGZyYW1lLT5zZWxlY3Rpb24oKS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKTsK
ICAgICBFQWZmaW5pdHkgYWZmaW5pdHkgPSBmcmFtZS0+c2VsZWN0aW9uKCktPmFmZmluaXR5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL1RleHRDaGVja2luZ0hlbHBlci5jcHAKaW5kZXgg
Y2Q3MjNiOTNiYTViZjEzMmI3NTFhNTYwMzY2ZTgzN2FlMWRmNTAxMi4uMWI1ZTU2ZWFhNDM0ZTNj
MGU4ZDFkMTgzYjU5YzE2Y2Q0ZDUwZmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9UZXh0Q2hlY2tpbmdIZWxwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
VGV4dENoZWNraW5nSGVscGVyLmNwcApAQCAtNTI3LDggKzUyNyw3IEBAIGJvb2wgVGV4dENoZWNr
aW5nSGVscGVyOjppc1VuZ3JhbW1hdGljYWwoVmVjdG9yPFN0cmluZz4mIGd1ZXNzZXNWZWN0b3Ip
IGNvbnN0CiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
RXhjZXB0aW9uQ29kZSBlYzsKLSAgICBpZiAoIW1fcmFuZ2UgfHwgbV9yYW5nZS0+Y29sbGFwc2Vk
KGVjKSkKKyAgICBpZiAoIW1fcmFuZ2UgfHwgbV9yYW5nZS0+Y29sbGFwc2VkKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAKICAgICAvLyBSZXR1cm5zIHRydWUgb25seSBpZiB0aGUgcGFz
c2VkIHJhbmdlIGV4YWN0bHkgY29ycmVzcG9uZHMgdG8gYSBiYWQgZ3JhbW1hciBkZXRhaWwgcmFu
Z2UuIFRoaXMgaXMgYW5hbG9nb3VzCkBAIC01NzMsMTEgKzU3MiwxMCBAQCBWZWN0b3I8U3RyaW5n
PiBUZXh0Q2hlY2tpbmdIZWxwZXI6Omd1ZXNzZXNGb3JNaXNzcGVsbGVkT3JVbmdyYW1tYXRpY2Fs
UmFuZ2UoYm9vbAogICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKIAogICAgIFZlY3Rv
cjxTdHJpbmc+IGd1ZXNzZXM7Ci0gICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICBtaXNzcGVsbGVk
ID0gZmFsc2U7CiAgICAgdW5ncmFtbWF0aWNhbCA9IGZhbHNlOwogICAgIAotICAgIGlmICghbV9j
bGllbnQgfHwgIW1fcmFuZ2UgfHwgbV9yYW5nZS0+Y29sbGFwc2VkKGVjKSkKKyAgICBpZiAoIW1f
Y2xpZW50IHx8ICFtX3JhbmdlIHx8IG1fcmFuZ2UtPmNvbGxhcHNlZCgpKQogICAgICAgICByZXR1
cm4gZ3Vlc3NlczsKIAogICAgIC8vIEV4cGFuZCB0aGUgcmFuZ2UgdG8gZW5jb21wYXNzIGVudGly
ZSBwYXJhZ3JhcGhzLCBzaW5jZSB0ZXh0IGNoZWNraW5nIG5lZWRzIHRoYXQgbXVjaCBjb250ZXh0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwIGIvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCmluZGV4IDEyZmJjZGFiOWYzNTc3NjEwZDI2N2Zl
NGRhNzIyOTE5M2FmOTJjZGYuLmFjYjFiODE2YmE1MTVlMjVhMDg3ZGFmNGIxZDgxNGI5ZmY0Yjdm
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvbWFya3VwLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL21hcmt1cC5jcHAKQEAgLTU2NCwxMyArNTY0LDExIEBAIFN0
cmluZyBjcmVhdGVNYXJrdXAoY29uc3QgUmFuZ2UqIHJhbmdlLCBWZWN0b3I8Tm9kZSo+KiBub2Rl
cywgRUFubm90YXRlRm9ySW50ZXJjCiAgICAgaWYgKGRlbGV0ZUJ1dHRvbikKICAgICAgICAgZGVs
ZXRlQnV0dG9uLT5kaXNhYmxlKCk7CiAKLSAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKLSAgICBi
b29sIGNvbGxhcHNlZCA9IHVwZGF0ZWRSYW5nZS0+Y29sbGFwc2VkKGVjKTsKLSAgICBBU1NFUlQo
IWVjKTsKKyAgICBib29sIGNvbGxhcHNlZCA9IHVwZGF0ZWRSYW5nZS0+Y29sbGFwc2VkKEFTU0VS
VF9OT19FWENFUFRJT04pOwogICAgIGlmIChjb2xsYXBzZWQpCiAgICAgICAgIHJldHVybiAiIjsK
LSAgICBOb2RlKiBjb21tb25BbmNlc3RvciA9IHVwZGF0ZWRSYW5nZS0+Y29tbW9uQW5jZXN0b3JD
b250YWluZXIoZWMpOwotICAgIEFTU0VSVCghZWMpOworCisgICAgTm9kZSogY29tbW9uQW5jZXN0
b3IgPSB1cGRhdGVkUmFuZ2UtPmNvbW1vbkFuY2VzdG9yQ29udGFpbmVyKEFTU0VSVF9OT19FWENF
UFRJT04pOwogICAgIGlmICghY29tbW9uQW5jZXN0b3IpCiAgICAgICAgIHJldHVybiAiIjsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDk1
M2VlYzEwZTBkYzAwYzkzNjVhNjQ0NmNmNzQ3OTUzNTBkZmI5ZDEuLmFiNzVjZWJkOTA0ODQwNDBi
MTRhZjczYzA0ZWI4MTFjYWE3YzYyNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
eHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTQwMCwxMSArNDAwLDExIEBAIHZvaWQgQ29udGV4dE1l
bnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUl0ZW0qIGl0
ZW0pCiAgICAgICAgIC8vIHdoaWNoIG1heSBtYWtlIHRoaXMgZGlmZmljdWx0IHRvIGltcGxlbWVu
dC4gTWF5YmUgYSBzcGVjaWFsIGNhc2Ugb2YgdGV4dC1zaGFkb3c/CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnU3RhcnRTcGVha2luZzogewotICAgICAgICBFeGNl
cHRpb25Db2RlIGVjOwogICAgICAgICBSZWZQdHI8UmFuZ2U+IHNlbGVjdGVkUmFuZ2UgPSBmcmFt
ZS0+c2VsZWN0aW9uKCktPnRvTm9ybWFsaXplZFJhbmdlKCk7Ci0gICAgICAgIGlmICghc2VsZWN0
ZWRSYW5nZSB8fCBzZWxlY3RlZFJhbmdlLT5jb2xsYXBzZWQoZWMpKSB7CisgICAgICAgIGlmICgh
c2VsZWN0ZWRSYW5nZSB8fCBzZWxlY3RlZFJhbmdlLT5jb2xsYXBzZWQoKSkgewogICAgICAgICAg
ICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9oaXRUZXN0UmVzdWx0LmlubmVyTm9uU2hhcmVkTm9k
ZSgpLT5kb2N1bWVudCgpOwogICAgICAgICAgICAgc2VsZWN0ZWRSYW5nZSA9IGRvY3VtZW50LT5j
cmVhdGVSYW5nZSgpOworICAgICAgICAgICAgRXhjZXB0aW9uQ29kZSBlYzsKICAgICAgICAgICAg
IHNlbGVjdGVkUmFuZ2UtPnNlbGVjdE5vZGUoZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLCBl
Yyk7CiAgICAgICAgIH0KICAgICAgICAgbV9jbGllbnQtPnNwZWFrKHBsYWluVGV4dChzZWxlY3Rl
ZFJhbmdlLmdldCgpKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187430</attachid>
            <date>2013-02-09 07:02:54 -0800</date>
            <delta_ts>2013-02-11 05:56:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108921-20130209155929.patch</filename>
            <type>text/plain</type>
            <size>3473</size>
            <attacher name="Mike West">mkwst</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMzUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGNiMzY0YzNmNjNmYWFl
Mjk0N2E4NzM4MTNjODdmODc5MjBhNmM3NC4uNzZlYjAyMDczMDdkNTYwNDY0MTRmYWVhYThjOTFi
YTRmODEzMGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAyLTA5ICBNaWtl
IFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmFuZ2U6OmNvbGxhcHNlZCBj
YWxsZXJzIHNob3VsZCBleHBsaWNpdGx5IEFTU0VSVF9OT19FWENFUFRJT04uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDg5MjEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGb3IgY2xhcml0eSBhbmQgY29u
c2lzdGVuY3ksIHRoaXMgcGF0Y2ggYWRqdXN0cyBSYW5nZTo6Y29sbGFwc2VkKCkgdG8KKyAgICAg
ICAgZHJvcCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgRXhjZXB0aW9uQ29kZSBwYXJhbWV0ZXIg
aXQgYWNjZXB0cy4gVGhlCisgICAgICAgIHRocmVlIGNhbGwgc2l0ZXMgdGhhdCBjYWxsZWQgdGhl
IG1ldGhvZCB3aXRoIG5vIGFyZ3VtZW50cyAoYWxsIHBhcnQgb2YKKyAgICAgICAgRWRpdG9yOjpy
YW5nZU9mU3RyaW5nKSB3aWxsIG5vdyBleHBsaWNpdGx5IEFTU0VSVF9OT19FWENFUFRJT04uCisK
KyAgICAgICAgKiBkb20vUmFuZ2UuaDoKKyAgICAgICAgKFJhbmdlKToKKyAgICAgICAgKiBlZGl0
aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnJhbmdlT2ZTdHJpbmcp
OgorCiAyMDEzLTAyLTA4ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNYWNdIHJlc3BlY3QgaW4tYmFuZCBjYXB0aW9uIGNvbG9yCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vUmFuZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5o
CmluZGV4IGI2YmY3NzExZDUxOGQ5ZTg5NTc4MjdhOWEwNzBlNjYyMjY1NjU3NGMuLjIzMjZjZWVj
MTc1YzVkOGYwODNlOTZmOTEyNzM3MWExYWQ5MjAxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9SYW5nZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9SYW5nZS5oCkBAIC02Myw3
ICs2Myw3IEBAIHB1YmxpYzoKICAgICBpbnQgc3RhcnRPZmZzZXQoRXhjZXB0aW9uQ29kZSYpIGNv
bnN0OwogICAgIE5vZGUqIGVuZENvbnRhaW5lcihFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAg
aW50IGVuZE9mZnNldChFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgYm9vbCBjb2xsYXBzZWQo
RXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKSBjb25zdDsKKyAgICBib29sIGNv
bGxhcHNlZChFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICBOb2RlKiBjb21tb25BbmNlc3Rv
ckNvbnRhaW5lcihFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAgICAgc3RhdGljIE5vZGUqIGNvbW1v
bkFuY2VzdG9yQ29udGFpbmVyKE5vZGUqIGNvbnRhaW5lckEsIE5vZGUqIGNvbnRhaW5lckIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4IGJkMTQ1YjZlMzIwYjFkZGI1ZTczMGQ1Y2Vh
NmJjZWE0ZjU2ZWEzY2IuLmNiMDA1YjY4YWRmOTMwYzU2NTA4YjE1MTJlYzBiNmFjZjE5MjU3MTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKQEAgLTI3NjYsNyArMjc2Niw3IEBAIFBhc3NS
ZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25zdCBTdHJpbmcmIHRhcmdldCwg
UmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgfQogCiAgICAgLy8gSWYgbm90aGluZyB3YXMgZm91bmQg
aW4gdGhlIHNoYWRvdyB0cmVlLCBzZWFyY2ggaW4gbWFpbiBjb250ZW50IGZvbGxvd2luZyB0aGUg
c2hhZG93IHRyZWUuCi0gICAgaWYgKHJlc3VsdFJhbmdlLT5jb2xsYXBzZWQoKSAmJiBzaGFkb3dU
cmVlUm9vdCkgeworICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKEFTU0VSVF9OT19FWENF
UFRJT04pICYmIHNoYWRvd1RyZWVSb290KSB7CiAgICAgICAgIHNlYXJjaFJhbmdlID0gcmFuZ2VP
ZkNvbnRlbnRzKG1fZnJhbWUtPmRvY3VtZW50KCkpOwogICAgICAgICBpZiAoZm9yd2FyZCkKICAg
ICAgICAgICAgIHNlYXJjaFJhbmdlLT5zZXRTdGFydEFmdGVyKHNoYWRvd1RyZWVSb290LT5zaGFk
b3dIb3N0KCkpOwpAQCAtMjc3OCw3ICsyNzc4LDcgQEAgUGFzc1JlZlB0cjxSYW5nZT4gRWRpdG9y
OjpyYW5nZU9mU3RyaW5nKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBSYW5nZSogcmVmZXJlbmNlUmEK
IAogICAgIC8vIElmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nIGFuZCB3ZSdyZSB3cmFwcGluZywg
c2VhcmNoIGFnYWluIGluIHRoZSBlbnRpcmUgZG9jdW1lbnQgKHRoaXMgd2lsbAogICAgIC8vIHJl
ZHVuZGFudGx5IHJlLXNlYXJjaCB0aGUgYXJlYSBhbHJlYWR5IHNlYXJjaGVkIGluIHNvbWUgY2Fz
ZXMpLgotICAgIGlmIChyZXN1bHRSYW5nZS0+Y29sbGFwc2VkKCkgJiYgb3B0aW9ucyAmIFdyYXBB
cm91bmQpIHsKKyAgICBpZiAocmVzdWx0UmFuZ2UtPmNvbGxhcHNlZChBU1NFUlRfTk9fRVhDRVBU
SU9OKSAmJiBvcHRpb25zICYgV3JhcEFyb3VuZCkgewogICAgICAgICBzZWFyY2hSYW5nZSA9IHJh
bmdlT2ZDb250ZW50cyhtX2ZyYW1lLT5kb2N1bWVudCgpKTsKICAgICAgICAgcmVzdWx0UmFuZ2Ug
PSBmaW5kUGxhaW5UZXh0KHNlYXJjaFJhbmdlLmdldCgpLCB0YXJnZXQsIG9wdGlvbnMpOwogICAg
ICAgICAvLyBXZSB1c2VkIHRvIHJldHVybiBmYWxzZSBoZXJlIGlmIHdlIGVuZGVkIHVwIHdpdGgg
dGhlIHNhbWUgcmFuZ2UgdGhhdCB3ZSBzdGFydGVkIHdpdGgKQEAgLTI3ODYsNyArMjc4Niw3IEBA
IFBhc3NSZWZQdHI8UmFuZ2U+IEVkaXRvcjo6cmFuZ2VPZlN0cmluZyhjb25zdCBTdHJpbmcmIHRh
cmdldCwgUmFuZ2UqIHJlZmVyZW5jZVJhCiAgICAgICAgIC8vIHRoaXMgc2hvdWxkIGJlIGEgc3Vj
Y2VzcyBjYXNlIGluc3RlYWQsIHNvIHdlJ2xsIGp1c3QgZmFsbCB0aHJvdWdoIGluIHRoYXQgY2Fz
ZS4KICAgICB9CiAKLSAgICByZXR1cm4gcmVzdWx0UmFuZ2UtPmNvbGxhcHNlZCgpID8gMCA6IHJl
c3VsdFJhbmdlLnJlbGVhc2UoKTsKKyAgICByZXR1cm4gcmVzdWx0UmFuZ2UtPmNvbGxhcHNlZChB
U1NFUlRfTk9fRVhDRVBUSU9OKSA/IDAgOiByZXN1bHRSYW5nZS5yZWxlYXNlKCk7CiB9CiAKIHN0
YXRpYyBib29sIGlzRnJhbWVJblJhbmdlKEZyYW1lKiBmcmFtZSwgUmFuZ2UqIHJhbmdlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>