<?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>103212</bug_id>
          
          <creation_ts>2012-11-25 20:11:29 -0800</creation_ts>
          <short_desc>[Shadow] ShadowRoot should cache InsertionPoint list</short_desc>
          <delta_ts>2012-11-28 22:24:52 -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>DOM</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>103016</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>morrita</cc>
    
    <cc>ojan</cc>
    
    <cc>philn</cc>
    
    <cc>webcomponents-bugzilla</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775104</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-25 20:11:29 -0800</bug_when>
    <thetext>When distributing, we&apos;re currently traversing all descendant nodes in ShadowDOM.
If we cache InsertionPoint List, we can skip a lot of traversal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775125</commentid>
    <comment_count>1</comment_count>
      <attachid>175920</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-25 21:29:18 -0800</bug_when>
    <thetext>Created attachment 175920
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775223</commentid>
    <comment_count>2</comment_count>
      <attachid>175920</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-26 00:44:30 -0800</bug_when>
    <thetext>Comment on attachment 175920
Patch

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

&gt; Source/WebCore/dom/ShadowRoot.h:106
&gt; +    bool hasValidDescendentInsertionPointList() const;

s/descendent/descendant/
I think it can be simply called insertionPoints or insertionPointList.

&gt; Source/WebCore/dom/ShadowRoot.h:191
&gt; +    ASSERT(hasValidDescendentInsertionPointList());

We can ensure() the list here considering that all call sites calls ensure() before calling this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775298</commentid>
    <comment_count>3</comment_count>
      <attachid>175952</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-26 02:50:58 -0800</bug_when>
    <thetext>Created attachment 175952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775336</commentid>
    <comment_count>4</comment_count>
      <attachid>175964</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-26 04:02:44 -0800</bug_when>
    <thetext>Created attachment 175964
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777604</commentid>
    <comment_count>5</comment_count>
      <attachid>175964</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-28 00:49:24 -0800</bug_when>
    <thetext>Comment on attachment 175964
Patch

This patch cannot be applied to ToT. We have to resolve Bug 103481 at first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777958</commentid>
    <comment_count>6</comment_count>
      <attachid>175964</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-28 09:01:15 -0800</bug_when>
    <thetext>Comment on attachment 175964
Patch

This is great!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778621</commentid>
    <comment_count>7</comment_count>
      <attachid>176630</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-28 19:56:42 -0800</bug_when>
    <thetext>Created attachment 176630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778627</commentid>
    <comment_count>8</comment_count>
      <attachid>176630</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-28 20:25:08 -0800</bug_when>
    <thetext>Comment on attachment 176630
Patch

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

If you have a microbenchmark for this change, let&apos;s commit them first and mention its improvement on the ChangeLog.
It would be good for the record.

&gt; Source/WebCore/dom/ShadowRoot.cpp:320
&gt; +    distributionData()-&gt;setInsertionPointListValidity(true);

Let&apos;s move the implementation to  DistributionData.

&gt; Source/WebCore/dom/ShadowRoot.cpp:350
&gt; +    distributionData()-&gt;clearInsertionPointList();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778648</commentid>
    <comment_count>9</comment_count>
      <attachid>176637</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-28 21:10:29 -0800</bug_when>
    <thetext>Created attachment 176637
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778650</commentid>
    <comment_count>10</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-28 21:10:50 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 176630 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176630&amp;action=review
&gt; 
&gt; If you have a microbenchmark for this change, let&apos;s commit them first and mention its improvement on the ChangeLog.
&gt; It would be good for the record.
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.cpp:320
&gt; &gt; +    distributionData()-&gt;setInsertionPointListValidity(true);
&gt; 
&gt; Let&apos;s move the implementation to  DistributionData.
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.cpp:350
&gt; &gt; +    distributionData()-&gt;clearInsertionPointList();
&gt; 
&gt; Ditto.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778653</commentid>
    <comment_count>11</comment_count>
      <attachid>176637</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-11-28 21:14:46 -0800</bug_when>
    <thetext>Comment on attachment 176637
Patch

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

&gt; Source/WebCore/dom/ShadowRoot.cpp:354
&gt; +    invalidateInsertionPointList();

These invalidateInsretionPointList() calls also can be in DistributionData

&gt; Source/WebCore/dom/ShadowRoot.h:133
&gt; +    void ensureValidInsertionPointList();

Then we can kill this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778654</commentid>
    <comment_count>12</comment_count>
      <attachid>176637</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 21:15:22 -0800</bug_when>
    <thetext>Comment on attachment 176637
Patch

Attachment 176637 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/15018708</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778659</commentid>
    <comment_count>13</comment_count>
      <attachid>176637</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 21:16:41 -0800</bug_when>
    <thetext>Comment on attachment 176637
Patch

Attachment 176637 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15015715</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778660</commentid>
    <comment_count>14</comment_count>
      <attachid>176637</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-28 21:18:09 -0800</bug_when>
    <thetext>Comment on attachment 176637
Patch

Attachment 176637 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15027676</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778663</commentid>
    <comment_count>15</comment_count>
      <attachid>176637</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-28 21:20:38 -0800</bug_when>
    <thetext>Comment on attachment 176637
Patch

Attachment 176637 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15015719</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778678</commentid>
    <comment_count>16</comment_count>
      <attachid>176645</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-11-28 21:43:50 -0800</bug_when>
    <thetext>Created attachment 176645
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778699</commentid>
    <comment_count>17</comment_count>
      <attachid>176645</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 22:24:48 -0800</bug_when>
    <thetext>Comment on attachment 176645
Patch for landing

Clearing flags on attachment: 176645

Committed r136098: &lt;http://trac.webkit.org/changeset/136098&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778700</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 22:24:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175920</attachid>
            <date>2012-11-25 21:29:18 -0800</date>
            <delta_ts>2012-11-26 02:50:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103212-20121126142657.patch</filename>
            <type>text/plain</type>
            <size>8991</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4NTc1MjIwZWQwNzc2
ZGMyZWIzNThkZjY2MWJlMGMzY2I2N2Q5MC4uMzllYmU1ZmViMTJjNzE2MGY1ZjgzNzJlNWZkYzE0
OTUyODZkOGJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTI1ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRpc3RyaWJ1dGluZyBvciBp
bnZhbGlkYXRpbmcgZGlzdHJpYnV0aW9uLCB3ZSB1c2VkIHRvIHRyYXZlcnNlIGFsbCBkZXNjZW5k
ZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAgICAgIElmIFNoYWRvd1Jvb3QgaGFzIGEgSW5z
ZXJ0aW9uUG9pbnQgbGlzdCwgd2UgY2FuIGp1c3QgdHJhdmVyc2UgdGhlIGxpc3QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBzaG91bGQgYmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6ZW5zdXJlRGVz
Y2VuZGVudEluc2VydGlvblBvaW50TGlzdCk6IENyZWF0ZXMgSW5zZXJ0aW9uUG9pbnQgbGlzdCBp
ZiBpdCdzIG5vdCBjcmVhdGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3QuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlZ2lzdGVyU2hhZG93
RWxlbWVudCk6IEludmFsaWRhdGUgSW5zZXJ0aW9uUG9pbnRMaXN0IGNhY2hlLgorICAgICAgICAo
V2ViQ29yZTo6U2hhZG93Um9vdDo6dW5yZWdpc3RlclNoYWRvd0VsZW1lbnQpOiBkaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlZ2lzdGVyQ29udGVudEVsZW1lbnQpOiBkaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJDb250ZW50RWxlbWVu
dCk6IGRpdHRvLgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290OjpoYXNWYWxpZERlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjppbnZhbGlkYXRlRGVzY2Vu
ZGVudEluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojpk
ZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRzKToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9Db250ZW50
RGlzdHJpYnV0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERpc3RyaWJ1dG9yOjpk
aXN0cmlidXRlKTogVHJhdmVyc2UgSW5zZXJ0aW9uUG9pbnRMaXN0IGluc3RlYWQgb2YgYWxsIGRl
c2NlbmRlbnQgbm9kZXMgaW4gU2hhZG93IERPTS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRE
aXN0cmlidXRvcjo6aW52YWxpZGF0ZSk6IGRpdHRvLgorCiAyMDEyLTExLTI1ICBLZW50IFRhbXVy
YSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWZhY3RvcmluZzogTW92ZSB0aGUg
Y29udGVudCBvZiBIVE1MSW5wdXRFbGVtZW50OjpzdWJ0cmVlSGFzQ2hhbmdlZCB0byBUZXh0Rmll
bGRJbnB1dFR5cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBmM2MwNjQ2ZDA4ODJk
ZGFkYzJiYTAyNjMwOWVkNjcwNGJlMjExNzMyLi44NTdlZTBjNDNiZDRhNDI2ZDMyMjU1YjA4NzY0
YTE2NzEyMDZhNjU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC02Myw2ICs2Myw3
IEBAIFNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9h
cHBseUF1dGhvclN0eWxlcyhmYWxzZSkKICAgICAsIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlKGZh
bHNlKQogICAgICwgbV9yZWdpc3RlcmVkV2l0aFBhcmVudFNoYWRvd1Jvb3QoZmFsc2UpCisgICAg
LCBtX2hhc1ZhbGlkRGVzY2VuZGVudEluc2VydGlvblBvaW50TGlzdChmYWxzZSkKICAgICAsIG1f
aW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvKDApCiAgICAgLCBtX251bWJlck9mU2hhZG93RWxlbWVu
dENoaWxkcmVuKDApCiAgICAgLCBtX251bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigwKQpA
QCAtMjk0LDYgKzI5NSwyNCBAQCB2b2lkIFNoYWRvd1Jvb3Q6OmNoaWxkcmVuQ2hhbmdlZChib29s
IGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2RlKgogICAgIG93bmVyKCkt
PmludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKIH0KIAordm9pZCBTaGFkb3dSb290OjplbnN1cmVE
ZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICBpZiAoaGFzVmFsaWREZXNjZW5k
ZW50SW5zZXJ0aW9uUG9pbnRMaXN0KCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1faGFzVmFs
aWREZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0ID0gdHJ1ZTsKKworICAgIGlmICghaGFzSW5z
ZXJ0aW9uUG9pbnQoKSkgeworICAgICAgICBBU1NFUlQobV9kZXNjZW5kZW50SW5zZXJ0aW9uUG9p
bnRMaXN0LmlzRW1wdHkoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKE5v
ZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlz
KSkgeworICAgICAgICBpZiAobm9kZS0+aXNJbnNlcnRpb25Qb2ludCgpKQorICAgICAgICAgICAg
bV9kZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0LmFwcGVuZCh0b0luc2VydGlvblBvaW50KG5v
ZGUpKTsKKyAgICB9Cit9CisKIHZvaWQgU2hhZG93Um9vdDo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5
bGVDaGlsZCgpCiB7CiAgICAgKyttX251bWJlck9mU3R5bGVzOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKaW5kZXggMDY3NTQyN2VjNGMwOTJjYzYzZTVhODJlYzhkNWMzZjg5MGI2ZDhmOC4uNTVmM2Ri
Zjc4N2Y3NGY5YjVjYWE0MWMwNWEzNmNmZjM0MzZhYTY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9v
dC5oCkBAIC05MCwxMiArOTAsMTIgQEAgcHVibGljOgogICAgIEluc2VydGlvblBvaW50KiBhc3Np
Z25lZFRvKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRBc3NpZ25lZFRvKEluc2VydGlvblBvaW50Kik7
CiAKLSAgICB2b2lkIHJlZ2lzdGVyU2hhZG93RWxlbWVudCgpIHsgKyttX251bWJlck9mU2hhZG93
RWxlbWVudENoaWxkcmVuOyB9Ci0gICAgdm9pZCB1bnJlZ2lzdGVyU2hhZG93RWxlbWVudCgpIHsg
LS1tX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuOyB9CisgICAgdm9pZCByZWdpc3RlclNo
YWRvd0VsZW1lbnQoKSB7ICsrbV9udW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsgaW52YWxp
ZGF0ZURlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QoKTsgfQorICAgIHZvaWQgdW5yZWdpc3Rl
clNoYWRvd0VsZW1lbnQoKSB7IC0tbV9udW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsgaW52
YWxpZGF0ZURlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QoKTsgfQogICAgIGJvb2wgaGFzU2hh
ZG93SW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mU2hhZG93RWxlbWVu
dENoaWxkcmVuID4gMDsgfQogCi0gICAgdm9pZCByZWdpc3RlckNvbnRlbnRFbGVtZW50KCkgeyAr
K21fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOyB9Ci0gICAgdm9pZCB1bnJlZ2lzdGVy
Q29udGVudEVsZW1lbnQoKSB7IC0tbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW47IH0K
KyAgICB2b2lkIHJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKSB7ICsrbV9udW1iZXJPZkNvbnRlbnRF
bGVtZW50Q2hpbGRyZW47IGludmFsaWRhdGVEZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0KCk7
IH0KKyAgICB2b2lkIHVucmVnaXN0ZXJDb250ZW50RWxlbWVudCgpIHsgLS1tX251bWJlck9mQ29u
dGVudEVsZW1lbnRDaGlsZHJlbjsgaW52YWxpZGF0ZURlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExp
c3QoKTsgfQogICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdCB7IHJldHVybiBtX251
bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbiA+IDA7IH0KIAogICAgIHZvaWQgcmVnaXN0ZXJF
bGVtZW50U2hhZG93KCkgeyArK21fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hpbGRyZW47IH0KQEAg
LTEwMyw2ICsxMDMsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRWxlbWVudFNoYWRvdygpIGNv
bnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hpbGRyZW4gPiAwOyB9CiAgICAg
c2l6ZV90IGNvdW50RWxlbWVudFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVt
ZW50U2hhZG93Q2hpbGRyZW47IH0KIAorICAgIGJvb2wgaGFzVmFsaWREZXNjZW5kZW50SW5zZXJ0
aW9uUG9pbnRMaXN0KCkgY29uc3Q7CisgICAgdm9pZCBpbnZhbGlkYXRlRGVzY2VuZGVudEluc2Vy
dGlvblBvaW50TGlzdCgpOworICAgIHZvaWQgZW5zdXJlRGVzY2VuZGVudEluc2VydGlvblBvaW50
TGlzdCgpOworICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBkZXNjZW5kZW50SW5z
ZXJ0aW9uUG9pbnRzKCkgY29uc3Q7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTY29wZWRI
VE1MU3R5bGVDaGlsZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Nv
cGVkSFRNTFN0eWxlQ2hpbGQoKSBPVkVSUklERTsKIApAQCAtMTI4LDExICsxMzMsMTMgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIDogMTsKICAgICBib29sIG1f
aXNBdXRob3JTaGFkb3dSb290IDogMTsKICAgICBib29sIG1fcmVnaXN0ZXJlZFdpdGhQYXJlbnRT
aGFkb3dSb290IDogMTsKKyAgICBib29sIG1faGFzVmFsaWREZXNjZW5kZW50SW5zZXJ0aW9uUG9p
bnRMaXN0OiAxOwogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRU
bzsKICAgICBzaXplX3QgbV9udW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsKICAgICBzaXpl
X3QgbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW47CiAgICAgc2l6ZV90IG1fbnVtYmVy
T2ZFbGVtZW50U2hhZG93Q2hpbGRyZW47CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZTdHlsZXM7Cisg
ICAgVmVjdG9yPEluc2VydGlvblBvaW50Kj4gbV9kZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0
OwogfTsKIAogaW5saW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3Q6Omhvc3QoKSBjb25zdApAQCAtMTY4
LDYgKzE3NSwyMyBAQCBpbmxpbmUgRWxlbWVudCogU2hhZG93Um9vdDo6YWN0aXZlRWxlbWVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2lubGluZSBib29sIFNoYWRvd1Jvb3Q6Omhhc1Zh
bGlkRGVzY2VuZGVudEluc2VydGlvblBvaW50TGlzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
aGFzVmFsaWREZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0OworfQorCitpbmxpbmUgdm9pZCBT
aGFkb3dSb290OjppbnZhbGlkYXRlRGVzY2VuZGVudEluc2VydGlvblBvaW50TGlzdCgpCit7Cisg
ICAgbV9oYXNWYWxpZERlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QgPSBmYWxzZTsKKyAgICBt
X2Rlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QuY2xlYXIoKTsKK30KKworaW5saW5lIGNvbnN0
IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBTaGFkb3dSb290OjpkZXNjZW5kZW50SW5zZXJ0aW9u
UG9pbnRzKCkgY29uc3QKK3sKKyAgICBBU1NFUlQoaGFzVmFsaWREZXNjZW5kZW50SW5zZXJ0aW9u
UG9pbnRMaXN0KCkpOworICAgIHJldHVybiBtX2Rlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3Q7
Cit9CisKIGlubGluZSBjb25zdCBTaGFkb3dSb290KiB0b1NoYWRvd1Jvb3QoY29uc3QgTm9kZSog
bm9kZSkKIHsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNTaGFkb3dSb290KCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAKaW5k
ZXggOTU0ZGRjZjkwODQ3MTk5YWYwOWQ0Njc4MTA5ZjNjODlmOGNjZTNjMy4uMDdjYTUzNzgzM2Fm
MTE1MTM1NmYwNmQ3YTU2N2Y1MzgzMzJjZGVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCkBAIC04NSwxNyArODUsMTkgQEAgdm9p
ZCBDb250ZW50RGlzdHJpYnV0b3I6OmRpc3RyaWJ1dGUoRWxlbWVudCogaG9zdCkKICAgICBmb3Ig
KFNoYWRvd1Jvb3QqIHJvb3QgPSBob3N0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9v
dCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgpKSB7CiAgICAgICAgIEhUTUxTaGFkb3dFbGVtZW50
KiBmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50ID0gMDsKIAotICAgICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290
KSkgewotICAgICAgICAgICAgaWYgKCFpc0FjdGl2ZUluc2VydGlvblBvaW50KG5vZGUpKQorICAg
ICAgICByb290LT5lbnN1cmVEZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisgICAgICAg
IGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludHMgPSByb290LT5k
ZXNjZW5kZW50SW5zZXJ0aW9uUG9pbnRzKCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBp
IDwgaW5zZXJ0aW9uUG9pbnRzLnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBJbnNlcnRpb25Q
b2ludCogcG9pbnQgPSBpbnNlcnRpb25Qb2ludHNbaV07CisgICAgICAgICAgICBpZiAoIXBvaW50
LT5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgSW5z
ZXJ0aW9uUG9pbnQqIHBvaW50ID0gdG9JbnNlcnRpb25Qb2ludChub2RlKTsKIAotICAgICAgICAg
ICAgaWYgKGlzSFRNTFNoYWRvd0VsZW1lbnQobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChpc0hU
TUxTaGFkb3dFbGVtZW50KHBvaW50KSkgewogICAgICAgICAgICAgICAgIGlmICghZmlyc3RBY3Rp
dmVTaGFkb3dJbnNlcnRpb25Qb2ludCkKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RBY3RpdmVT
aGFkb3dJbnNlcnRpb25Qb2ludCA9IHRvSFRNTFNoYWRvd0VsZW1lbnQobm9kZSk7CisgICAgICAg
ICAgICAgICAgICAgIGZpcnN0QWN0aXZlU2hhZG93SW5zZXJ0aW9uUG9pbnQgPSB0b0hUTUxTaGFk
b3dFbGVtZW50KHBvaW50KTsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAg
ZGlzdHJpYnV0ZVNlbGVjdGlvbnNUbyhwb2ludCwgcG9vbCwgZGlzdHJpYnV0ZWQpOwotICAgICAg
ICAgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBzaGFkb3cgPSBub2RlLT5wYXJlbnROb2RlKCkt
PmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChub2RlLT5wYXJlbnROb2RlKCkpLT5zaGFkb3co
KSA6IDApCisgICAgICAgICAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHBvaW50
LT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChwb2ludC0+cGFyZW50
Tm9kZSgpKS0+c2hhZG93KCkgOiAwKQogICAgICAgICAgICAgICAgICAgICBzaGFkb3ctPmludmFs
aWRhdGVEaXN0cmlidXRpb24oKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTI2LDEz
ICsxMjgsMTEgQEAgYm9vbCBDb250ZW50RGlzdHJpYnV0b3I6OmludmFsaWRhdGUoRWxlbWVudCog
aG9zdCkKIAogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IGhvc3QtPnlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAg
cm9vdC0+c2V0QXNzaWduZWRUbygwKTsKLQotICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290
OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewotICAgICAgICAg
ICAgaWYgKCFub2RlLT5pc0luc2VydGlvblBvaW50KCkpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIHJvb3QtPmVuc3VyZURlc2NlbmRlbnRJbnNlcnRpb25Qb2ludExpc3QoKTsK
KyAgICAgICAgY29uc3QgVmVjdG9yPEluc2VydGlvblBvaW50Kj4mIGluc2VydGlvblBvaW50cyA9
IHJvb3QtPmRlc2NlbmRlbnRJbnNlcnRpb25Qb2ludHMoKTsKKyAgICAgICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBpbnNlcnRpb25Qb2ludHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIG5l
ZWRzUmVhdHRhY2ggPSBuZWVkc1JlYXR0YWNoIHx8IHRydWU7Ci0gICAgICAgICAgICBJbnNlcnRp
b25Qb2ludCogcG9pbnQgPSB0b0luc2VydGlvblBvaW50KG5vZGUpOwotICAgICAgICAgICAgcG9p
bnQtPmNsZWFyRGlzdHJpYnV0aW9uKCk7CisgICAgICAgICAgICBpbnNlcnRpb25Qb2ludHNbaV0t
PmNsZWFyRGlzdHJpYnV0aW9uKCk7CiAgICAgICAgIH0KICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175952</attachid>
            <date>2012-11-26 02:50:58 -0800</date>
            <delta_ts>2012-11-26 04:02:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103212-20121126194836.patch</filename>
            <type>text/plain</type>
            <size>8567</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4NTc1MjIwZWQwNzc2
ZGMyZWIzNThkZjY2MWJlMGMzY2I2N2Q5MC4uYzU2ZjJjOTE5MjM3NzkzYmNhOTI0YjU0NDNmZWFm
NDQyZmFiNjMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTI2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRpc3RyaWJ1dGluZyBvciBp
bnZhbGlkYXRpbmcgZGlzdHJpYnV0aW9uLCB3ZSB1c2VkIHRvIHRyYXZlcnNlIGFsbCBkZXNjZW5k
ZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAgICAgIElmIFNoYWRvd1Jvb3QgaGFzIGEgSW5z
ZXJ0aW9uUG9pbnQgbGlzdCwgd2UgY2FuIGp1c3QgdHJhdmVyc2UgdGhlIGxpc3QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBzaG91bGQgYmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6ZW5zdXJlVmFs
aWRJbnNlcnRpb25Qb2ludExpc3QpOiBDcmVhdGVzIEluc2VydGlvblBvaW50IGxpc3QgaWYgaXQn
cyBub3QgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9TaGFkb3dS
b290Lmg6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWdpc3RlclNoYWRvd0VsZW1l
bnQpOiBJbnZhbGlkYXRlIEluc2VydGlvblBvaW50TGlzdCBjYWNoZS4KKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJTaGFkb3dFbGVtZW50KTogZGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWdpc3RlckNvbnRlbnRFbGVtZW50KTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp1bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQpOiBk
aXR0by4KKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6Omluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnREaXN0cmlidXRvcjo6ZGlzdHJpYnV0ZSk6IFRyYXZlcnNlIEluc2VydGlvblBvaW50
TGlzdCBpbnN0ZWFkIG9mIGFsbCBkZXNjZW5kZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RGlzdHJpYnV0b3I6OmludmFsaWRhdGUpOiBkaXR0by4KKwog
MjAxMi0xMS0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmVmYWN0b3Jpbmc6IE1vdmUgdGhlIGNvbnRlbnQgb2YgSFRNTElucHV0RWxlbWVudDo6c3VidHJl
ZUhhc0NoYW5nZWQgdG8gVGV4dEZpZWxkSW5wdXRUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKaW5kZXggZjNjMDY0NmQwODgyZGRhZGMyYmEwMjYzMDllZDY3MDRiZTIxMTczMi4uYTBmM2M3
NWI3N2U2NTQwYzhlYjZhOGIzNGIxOTdjNGY2ZDBmZjMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcApAQCAtNjMsNiArNjMsNyBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50
KiBkb2N1bWVudCkKICAgICAsIG1fYXBwbHlBdXRob3JTdHlsZXMoZmFsc2UpCiAgICAgLCBtX3Jl
c2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fcmVnaXN0ZXJlZFdpdGhQYXJlbnRT
aGFkb3dSb290KGZhbHNlKQorICAgICwgbV9pbnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkKGZhbHNl
KQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKICAgICAsIG1fbnVtYmVyT2ZT
aGFkb3dFbGVtZW50Q2hpbGRyZW4oMCkKICAgICAsIG1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENo
aWxkcmVuKDApCkBAIC0yOTQsNiArMjk1LDI0IEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqCiAg
ICAgb3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwogfQogCit2b2lkIFNoYWRvd1Jv
b3Q6OmVuc3VyZVZhbGlkSW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICBpZiAobV9pbnNlcnRp
b25Qb2ludExpc3RJc1ZhbGlkKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc2VydGlvblBv
aW50TGlzdElzVmFsaWQgPSB0cnVlOworCisgICAgaWYgKCFoYXNJbnNlcnRpb25Qb2ludCgpKSB7
ICAgICAgICAKKyAgICAgICAgQVNTRVJUKG1faW5zZXJ0aW9uUG9pbnRMaXN0LmlzRW1wdHkoKSk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBu
b2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgeworICAgICAgICBpZiAo
bm9kZS0+aXNJbnNlcnRpb25Qb2ludCgpKQorICAgICAgICAgICAgbV9pbnNlcnRpb25Qb2ludExp
c3QuYXBwZW5kKHRvSW5zZXJ0aW9uUG9pbnQobm9kZSkpOworICAgIH0KK30KKwogdm9pZCBTaGFk
b3dSb290OjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkKIHsKICAgICArK21fbnVtYmVy
T2ZTdHlsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIv
U291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCAwNjc1NDI3ZWM0YzA5MmNjNjNl
NWE4MmVjOGQ1YzNmODkwYjZkOGY4Li43MjJjMTEyMDMwNTQ0OGJlNjExNTU4ZGQ4MjhjNjVjMjQx
ZGRjZWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTkwLDEyICs5MCwxMiBAQCBwdWJs
aWM6CiAgICAgSW5zZXJ0aW9uUG9pbnQqIGFzc2lnbmVkVG8oKSBjb25zdDsKICAgICB2b2lkIHNl
dEFzc2lnbmVkVG8oSW5zZXJ0aW9uUG9pbnQqKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJTaGFkb3dF
bGVtZW50KCkgeyArK21fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47IH0KLSAgICB2b2lk
IHVucmVnaXN0ZXJTaGFkb3dFbGVtZW50KCkgeyAtLW1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hp
bGRyZW47IH0KKyAgICB2b2lkIHJlZ2lzdGVyU2hhZG93RWxlbWVudCgpIHsgKyttX251bWJlck9m
U2hhZG93RWxlbWVudENoaWxkcmVuOyBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0K
KyAgICB2b2lkIHVucmVnaXN0ZXJTaGFkb3dFbGVtZW50KCkgeyAtLW1fbnVtYmVyT2ZTaGFkb3dF
bGVtZW50Q2hpbGRyZW47IGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsgfQogICAgIGJv
b2wgaGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mU2hh
ZG93RWxlbWVudENoaWxkcmVuID4gMDsgfQogCi0gICAgdm9pZCByZWdpc3RlckNvbnRlbnRFbGVt
ZW50KCkgeyArK21fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOyB9Ci0gICAgdm9pZCB1
bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKSB7IC0tbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hp
bGRyZW47IH0KKyAgICB2b2lkIHJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKSB7ICsrbV9udW1iZXJP
ZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW47IGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsg
fQorICAgIHZvaWQgdW5yZWdpc3RlckNvbnRlbnRFbGVtZW50KCkgeyAtLW1fbnVtYmVyT2ZDb250
ZW50RWxlbWVudENoaWxkcmVuOyBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0KICAg
ICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZkNvbnRl
bnRFbGVtZW50Q2hpbGRyZW4gPiAwOyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRWxlbWVudFNoYWRv
dygpIHsgKyttX251bWJlck9mRWxlbWVudFNoYWRvd0NoaWxkcmVuOyB9CkBAIC0xMDMsNiArMTAz
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRWxlbWVudFNoYWRvdygpIGNvbnN0IHsgcmV0dXJu
IG1fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hpbGRyZW4gPiAwOyB9CiAgICAgc2l6ZV90IGNvdW50
RWxlbWVudFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hp
bGRyZW47IH0KIAorICAgIHZvaWQgaW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOworICAg
IGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludExpc3QoKTsKKwog
ICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkgT1ZFUlJJREU7
CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpIE9WRVJS
SURFOwogCkBAIC0xMjIsMTcgKzEyNSwyMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRUeXBl
KFNoYWRvd1Jvb3RUeXBlIHR5cGUpIHsgbV9pc0F1dGhvclNoYWRvd1Jvb3QgPSB0eXBlID09IEF1
dGhvclNoYWRvd1Jvb3Q7IH0KIAorICAgIHZvaWQgZW5zdXJlVmFsaWRJbnNlcnRpb25Qb2ludExp
c3QoKTsKKwogICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25leHQ7
CiAgICAgYm9vbCBtX2FwcGx5QXV0aG9yU3R5bGVzIDogMTsKICAgICBib29sIG1fcmVzZXRTdHls
ZUluaGVyaXRhbmNlIDogMTsKICAgICBib29sIG1faXNBdXRob3JTaGFkb3dSb290IDogMTsKICAg
ICBib29sIG1fcmVnaXN0ZXJlZFdpdGhQYXJlbnRTaGFkb3dSb290IDogMTsKKyAgICBib29sIG1f
aW5zZXJ0aW9uUG9pbnRMaXN0SXNWYWxpZDogMTsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNl
cnRpb25Qb2ludEFzc2lnbmVkVG87CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50
Q2hpbGRyZW47CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOwog
ICAgIHNpemVfdCBtX251bWJlck9mRWxlbWVudFNoYWRvd0NoaWxkcmVuOwogICAgIHNpemVfdCBt
X251bWJlck9mU3R5bGVzOworICAgIFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+IG1faW5zZXJ0aW9u
UG9pbnRMaXN0OwogfTsKIAogaW5saW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3Q6Omhvc3QoKSBjb25z
dApAQCAtMTY4LDYgKzE3NSwxOCBAQCBpbmxpbmUgRWxlbWVudCogU2hhZG93Um9vdDo6YWN0aXZl
RWxlbWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKK2lubGluZSB2b2lkIFNoYWRvd1Jv
b3Q6OmludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKQoreworICAgIG1faW5zZXJ0aW9uUG9p
bnRMaXN0SXNWYWxpZCA9IGZhbHNlOworICAgIG1faW5zZXJ0aW9uUG9pbnRMaXN0LmNsZWFyKCk7
Cit9CisKK2lubGluZSBjb25zdCBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYgU2hhZG93Um9vdDo6
aW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICBlbnN1cmVWYWxpZEluc2VydGlvblBvaW50TGlz
dCgpOworICAgIHJldHVybiBtX2luc2VydGlvblBvaW50TGlzdDsKK30KKwogaW5saW5lIGNvbnN0
IFNoYWRvd1Jvb3QqIHRvU2hhZG93Um9vdChjb25zdCBOb2RlKiBub2RlKQogewogICAgIEFTU0VS
VCghbm9kZSB8fCBub2RlLT5pc1NoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAppbmRleCA5NTRkZGNmOTA4NDcxOTlh
ZjA5ZDQ2NzgxMDlmM2M4OWY4Y2NlM2MzLi41Y2EyOWIxZDYwYTBkNzhlYjhkMjVmYjI0OGIwOTA4
YWEzMDVmM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50
RGlzdHJpYnV0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRE
aXN0cmlidXRvci5jcHAKQEAgLTg1LDE3ICs4NSwxOCBAQCB2b2lkIENvbnRlbnREaXN0cmlidXRv
cjo6ZGlzdHJpYnV0ZShFbGVtZW50KiBob3N0KQogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9
IGhvc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFk
b3dSb290KCkpIHsKICAgICAgICAgSFRNTFNoYWRvd0VsZW1lbnQqIGZpcnN0QWN0aXZlU2hhZG93
SW5zZXJ0aW9uUG9pbnQgPSAwOwogCi0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5v
ZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHJvb3QpKSB7Ci0gICAgICAgICAgICBp
ZiAoIWlzQWN0aXZlSW5zZXJ0aW9uUG9pbnQobm9kZSkpCisgICAgICAgIGNvbnN0IFZlY3RvcjxJ
bnNlcnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludHMgPSByb290LT5pbnNlcnRpb25Qb2ludExp
c3QoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnNlcnRpb25Qb2ludHMuc2l6
ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IGluc2VydGlv
blBvaW50c1tpXTsKKyAgICAgICAgICAgIGlmICghcG9pbnQtPmlzQWN0aXZlKCkpCiAgICAgICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSB0
b0luc2VydGlvblBvaW50KG5vZGUpOwogCi0gICAgICAgICAgICBpZiAoaXNIVE1MU2hhZG93RWxl
bWVudChub2RlKSkgeworICAgICAgICAgICAgaWYgKGlzSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQp
KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50
KQotICAgICAgICAgICAgICAgICAgICBmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50ID0g
dG9IVE1MU2hhZG93RWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RBY3Rp
dmVTaGFkb3dJbnNlcnRpb25Qb2ludCA9IHRvSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBkaXN0cmlidXRlU2VsZWN0aW9uc1Rv
KHBvaW50LCBwb29sLCBkaXN0cmlidXRlZCk7Ci0gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnRT
aGFkb3cqIHNoYWRvdyA9IG5vZGUtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpID8gdG9F
bGVtZW50KG5vZGUtPnBhcmVudE5vZGUoKSktPnNoYWRvdygpIDogMCkKKyAgICAgICAgICAgICAg
ICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gcG9pbnQtPnBhcmVudE5vZGUoKS0+aXNFbGVt
ZW50Tm9kZSgpID8gdG9FbGVtZW50KHBvaW50LT5wYXJlbnROb2RlKCkpLT5zaGFkb3coKSA6IDAp
CiAgICAgICAgICAgICAgICAgICAgIHNoYWRvdy0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMjYsMTMgKzEyNywxMCBAQCBib29sIENvbnRl
bnREaXN0cmlidXRvcjo6aW52YWxpZGF0ZShFbGVtZW50KiBob3N0KQogCiAgICAgZm9yIChTaGFk
b3dSb290KiByb290ID0gaG9zdC0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSBy
b290LT5vbGRlclNoYWRvd1Jvb3QoKSkgewogICAgICAgICByb290LT5zZXRBc3NpZ25lZFRvKDAp
OwotCi0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50
cmF2ZXJzZU5leHROb2RlKHJvb3QpKSB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUtPmlzSW5zZXJ0
aW9uUG9pbnQoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29uc3QgVmVj
dG9yPEluc2VydGlvblBvaW50Kj4mIGluc2VydGlvblBvaW50cyA9IHJvb3QtPmluc2VydGlvblBv
aW50TGlzdCgpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluc2VydGlvblBvaW50
cy5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgbmVlZHNSZWF0dGFjaCA9IG5lZWRzUmVhdHRh
Y2ggfHwgdHJ1ZTsKLSAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IHRvSW5zZXJ0
aW9uUG9pbnQobm9kZSk7Ci0gICAgICAgICAgICBwb2ludC0+Y2xlYXJEaXN0cmlidXRpb24oKTsK
KyAgICAgICAgICAgIGluc2VydGlvblBvaW50c1tpXS0+Y2xlYXJEaXN0cmlidXRpb24oKTsKICAg
ICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175964</attachid>
            <date>2012-11-26 04:02:44 -0800</date>
            <delta_ts>2012-11-28 19:56:38 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103212-20121126210023.patch</filename>
            <type>text/plain</type>
            <size>8546</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1Njc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM4NTc1MjIwZWQwNzc2
ZGMyZWIzNThkZjY2MWJlMGMzY2I2N2Q5MC4uYzU2ZjJjOTE5MjM3NzkzYmNhOTI0YjU0NDNmZWFm
NDQyZmFiNjMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTExLTI2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRpc3RyaWJ1dGluZyBvciBp
bnZhbGlkYXRpbmcgZGlzdHJpYnV0aW9uLCB3ZSB1c2VkIHRvIHRyYXZlcnNlIGFsbCBkZXNjZW5k
ZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAgICAgIElmIFNoYWRvd1Jvb3QgaGFzIGEgSW5z
ZXJ0aW9uUG9pbnQgbGlzdCwgd2UgY2FuIGp1c3QgdHJhdmVyc2UgdGhlIGxpc3QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBzaG91bGQgYmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6ZW5zdXJlVmFs
aWRJbnNlcnRpb25Qb2ludExpc3QpOiBDcmVhdGVzIEluc2VydGlvblBvaW50IGxpc3QgaWYgaXQn
cyBub3QgY3JlYXRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRvbS9TaGFkb3dS
b290Lmg6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWdpc3RlclNoYWRvd0VsZW1l
bnQpOiBJbnZhbGlkYXRlIEluc2VydGlvblBvaW50TGlzdCBjYWNoZS4KKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJTaGFkb3dFbGVtZW50KTogZGl0dG8uCisgICAgICAg
IChXZWJDb3JlOjpTaGFkb3dSb290OjpyZWdpc3RlckNvbnRlbnRFbGVtZW50KTogZGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Ojp1bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQpOiBk
aXR0by4KKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6Omluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAg
ICogaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnREaXN0cmlidXRvcjo6ZGlzdHJpYnV0ZSk6IFRyYXZlcnNlIEluc2VydGlvblBvaW50
TGlzdCBpbnN0ZWFkIG9mIGFsbCBkZXNjZW5kZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RGlzdHJpYnV0b3I6OmludmFsaWRhdGUpOiBkaXR0by4KKwog
MjAxMi0xMS0yNSAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmVmYWN0b3Jpbmc6IE1vdmUgdGhlIGNvbnRlbnQgb2YgSFRNTElucHV0RWxlbWVudDo6c3VidHJl
ZUhhc0NoYW5nZWQgdG8gVGV4dEZpZWxkSW5wdXRUeXBlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKaW5kZXggZjNjMDY0NmQwODgyZGRhZGMyYmEwMjYzMDllZDY3MDRiZTIxMTczMi4uNDdjYjQ2
NWJkYTZiYzIwNjdmYjc3MmFlZmRiNmZhMjA1NjhhMTM3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcApAQCAtNjMsNiArNjMsNyBAQCBTaGFkb3dSb290OjpTaGFkb3dSb290KERvY3VtZW50
KiBkb2N1bWVudCkKICAgICAsIG1fYXBwbHlBdXRob3JTdHlsZXMoZmFsc2UpCiAgICAgLCBtX3Jl
c2V0U3R5bGVJbmhlcml0YW5jZShmYWxzZSkKICAgICAsIG1fcmVnaXN0ZXJlZFdpdGhQYXJlbnRT
aGFkb3dSb290KGZhbHNlKQorICAgICwgbV9pbnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkKGZhbHNl
KQogICAgICwgbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oMCkKICAgICAsIG1fbnVtYmVyT2ZT
aGFkb3dFbGVtZW50Q2hpbGRyZW4oMCkKICAgICAsIG1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENo
aWxkcmVuKDApCkBAIC0yOTQsNiArMjk1LDIzIEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRyZW5D
aGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqCiAg
ICAgb3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwogfQogCit2b2lkIFNoYWRvd1Jv
b3Q6OmVuc3VyZVZhbGlkSW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICBpZiAobV9pbnNlcnRp
b25Qb2ludExpc3RJc1ZhbGlkKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9pbnNl
cnRpb25Qb2ludExpc3QuaXNFbXB0eSgpKTsKKyAgICBtX2luc2VydGlvblBvaW50TGlzdElzVmFs
aWQgPSB0cnVlOworCisgICAgaWYgKCFoYXNJbnNlcnRpb25Qb2ludCgpKQorICAgICAgICByZXR1
cm47CisKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0gbm9kZS0+dHJh
dmVyc2VOZXh0Tm9kZSh0aGlzKSkgeworICAgICAgICBpZiAobm9kZS0+aXNJbnNlcnRpb25Qb2lu
dCgpKQorICAgICAgICAgICAgbV9pbnNlcnRpb25Qb2ludExpc3QuYXBwZW5kKHRvSW5zZXJ0aW9u
UG9pbnQobm9kZSkpOworICAgIH0KK30KKwogdm9pZCBTaGFkb3dSb290OjpyZWdpc3RlclNjb3Bl
ZEhUTUxTdHlsZUNoaWxkKCkKIHsKICAgICArK21fbnVtYmVyT2ZTdHlsZXM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaAppbmRleCAwNjc1NDI3ZWM0YzA5MmNjNjNlNWE4MmVjOGQ1YzNmODkwYjZkOGY4
Li43MjJjMTEyMDMwNTQ0OGJlNjExNTU4ZGQ4MjhjNjVjMjQxZGRjZWU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290LmgKQEAgLTkwLDEyICs5MCwxMiBAQCBwdWJsaWM6CiAgICAgSW5zZXJ0aW9uUG9p
bnQqIGFzc2lnbmVkVG8oKSBjb25zdDsKICAgICB2b2lkIHNldEFzc2lnbmVkVG8oSW5zZXJ0aW9u
UG9pbnQqKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJTaGFkb3dFbGVtZW50KCkgeyArK21fbnVtYmVy
T2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47IH0KLSAgICB2b2lkIHVucmVnaXN0ZXJTaGFkb3dFbGVt
ZW50KCkgeyAtLW1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47IH0KKyAgICB2b2lkIHJl
Z2lzdGVyU2hhZG93RWxlbWVudCgpIHsgKyttX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVu
OyBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0KKyAgICB2b2lkIHVucmVnaXN0ZXJT
aGFkb3dFbGVtZW50KCkgeyAtLW1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47IGludmFs
aWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsgfQogICAgIGJvb2wgaGFzU2hhZG93SW5zZXJ0aW9u
UG9pbnQoKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuID4g
MDsgfQogCi0gICAgdm9pZCByZWdpc3RlckNvbnRlbnRFbGVtZW50KCkgeyArK21fbnVtYmVyT2ZD
b250ZW50RWxlbWVudENoaWxkcmVuOyB9Ci0gICAgdm9pZCB1bnJlZ2lzdGVyQ29udGVudEVsZW1l
bnQoKSB7IC0tbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW47IH0KKyAgICB2b2lkIHJl
Z2lzdGVyQ29udGVudEVsZW1lbnQoKSB7ICsrbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRy
ZW47IGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsgfQorICAgIHZvaWQgdW5yZWdpc3Rl
ckNvbnRlbnRFbGVtZW50KCkgeyAtLW1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOyBp
bnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0KICAgICBib29sIGhhc0NvbnRlbnRFbGVt
ZW50KCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW4gPiAw
OyB9CiAKICAgICB2b2lkIHJlZ2lzdGVyRWxlbWVudFNoYWRvdygpIHsgKyttX251bWJlck9mRWxl
bWVudFNoYWRvd0NoaWxkcmVuOyB9CkBAIC0xMDMsNiArMTAzLDkgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzRWxlbWVudFNoYWRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVtZW50U2hh
ZG93Q2hpbGRyZW4gPiAwOyB9CiAgICAgc2l6ZV90IGNvdW50RWxlbWVudFNoYWRvdygpIGNvbnN0
IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hpbGRyZW47IH0KIAorICAgIHZvaWQg
aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOworICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRp
b25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludExpc3QoKTsKKwogICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHVu
cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpIE9WRVJSSURFOwogCkBAIC0xMjIsMTcgKzEy
NSwyMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRUeXBlKFNoYWRvd1Jvb3RUeXBlIHR5cGUp
IHsgbV9pc0F1dGhvclNoYWRvd1Jvb3QgPSB0eXBlID09IEF1dGhvclNoYWRvd1Jvb3Q7IH0KIAor
ICAgIHZvaWQgZW5zdXJlVmFsaWRJbnNlcnRpb25Qb2ludExpc3QoKTsKKwogICAgIFNoYWRvd1Jv
b3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9vbCBtX2FwcGx5QXV0
aG9yU3R5bGVzIDogMTsKICAgICBib29sIG1fcmVzZXRTdHlsZUluaGVyaXRhbmNlIDogMTsKICAg
ICBib29sIG1faXNBdXRob3JTaGFkb3dSb290IDogMTsKICAgICBib29sIG1fcmVnaXN0ZXJlZFdp
dGhQYXJlbnRTaGFkb3dSb290IDogMTsKKyAgICBib29sIG1faW5zZXJ0aW9uUG9pbnRMaXN0SXNW
YWxpZDogMTsKICAgICBJbnNlcnRpb25Qb2ludCogbV9pbnNlcnRpb25Qb2ludEFzc2lnbmVkVG87
CiAgICAgc2l6ZV90IG1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47CiAgICAgc2l6ZV90
IG1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOwogICAgIHNpemVfdCBtX251bWJlck9m
RWxlbWVudFNoYWRvd0NoaWxkcmVuOwogICAgIHNpemVfdCBtX251bWJlck9mU3R5bGVzOworICAg
IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+IG1faW5zZXJ0aW9uUG9pbnRMaXN0OwogfTsKIAogaW5s
aW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3Q6Omhvc3QoKSBjb25zdApAQCAtMTY4LDYgKzE3NSwxOCBA
QCBpbmxpbmUgRWxlbWVudCogU2hhZG93Um9vdDo6YWN0aXZlRWxlbWVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIDA7CiB9CiAKK2lubGluZSB2b2lkIFNoYWRvd1Jvb3Q6OmludmFsaWRhdGVJbnNlcnRp
b25Qb2ludExpc3QoKQoreworICAgIG1faW5zZXJ0aW9uUG9pbnRMaXN0SXNWYWxpZCA9IGZhbHNl
OworICAgIG1faW5zZXJ0aW9uUG9pbnRMaXN0LmNsZWFyKCk7Cit9CisKK2lubGluZSBjb25zdCBW
ZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYgU2hhZG93Um9vdDo6aW5zZXJ0aW9uUG9pbnRMaXN0KCkK
K3sKKyAgICBlbnN1cmVWYWxpZEluc2VydGlvblBvaW50TGlzdCgpOworICAgIHJldHVybiBtX2lu
c2VydGlvblBvaW50TGlzdDsKK30KKwogaW5saW5lIGNvbnN0IFNoYWRvd1Jvb3QqIHRvU2hhZG93
Um9vdChjb25zdCBOb2RlKiBub2RlKQogewogICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc1No
YWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250
ZW50RGlzdHJpYnV0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERp
c3RyaWJ1dG9yLmNwcAppbmRleCA5NTRkZGNmOTA4NDcxOTlhZjA5ZDQ2NzgxMDlmM2M4OWY4Y2Nl
M2MzLi41Y2EyOWIxZDYwYTBkNzhlYjhkMjVmYjI0OGIwOTA4YWEzMDVmM2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAKQEAgLTg1
LDE3ICs4NSwxOCBAQCB2b2lkIENvbnRlbnREaXN0cmlidXRvcjo6ZGlzdHJpYnV0ZShFbGVtZW50
KiBob3N0KQogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IGhvc3QtPnlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAg
SFRNTFNoYWRvd0VsZW1lbnQqIGZpcnN0QWN0aXZlU2hhZG93SW5zZXJ0aW9uUG9pbnQgPSAwOwog
Ci0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2
ZXJzZU5leHROb2RlKHJvb3QpKSB7Ci0gICAgICAgICAgICBpZiAoIWlzQWN0aXZlSW5zZXJ0aW9u
UG9pbnQobm9kZSkpCisgICAgICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBpbnNl
cnRpb25Qb2ludHMgPSByb290LT5pbnNlcnRpb25Qb2ludExpc3QoKTsKKyAgICAgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBpbnNlcnRpb25Qb2ludHMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAg
ICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IGluc2VydGlvblBvaW50c1tpXTsKKyAgICAgICAg
ICAgIGlmICghcG9pbnQtPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7Ci0g
ICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSB0b0luc2VydGlvblBvaW50KG5vZGUp
OwogCi0gICAgICAgICAgICBpZiAoaXNIVE1MU2hhZG93RWxlbWVudChub2RlKSkgeworICAgICAg
ICAgICAgaWYgKGlzSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCFmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50KQotICAgICAgICAgICAgICAgICAg
ICBmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50ID0gdG9IVE1MU2hhZG93RWxlbWVudChu
b2RlKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RBY3RpdmVTaGFkb3dJbnNlcnRpb25Qb2lu
dCA9IHRvSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgICAgICBkaXN0cmlidXRlU2VsZWN0aW9uc1RvKHBvaW50LCBwb29sLCBkaXN0cmli
dXRlZCk7Ci0gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IG5vZGUt
PnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5vZGUtPnBhcmVudE5v
ZGUoKSktPnNoYWRvdygpIDogMCkKKyAgICAgICAgICAgICAgICBpZiAoRWxlbWVudFNoYWRvdyog
c2hhZG93ID0gcG9pbnQtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50
KHBvaW50LT5wYXJlbnROb2RlKCkpLT5zaGFkb3coKSA6IDApCiAgICAgICAgICAgICAgICAgICAg
IHNoYWRvdy0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CkBAIC0xMjYsMTMgKzEyNywxMCBAQCBib29sIENvbnRlbnREaXN0cmlidXRvcjo6aW52YWxp
ZGF0ZShFbGVtZW50KiBob3N0KQogCiAgICAgZm9yIChTaGFkb3dSb290KiByb290ID0gaG9zdC0+
eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3Qo
KSkgewogICAgICAgICByb290LT5zZXRBc3NpZ25lZFRvKDApOwotCi0gICAgICAgIGZvciAoTm9k
ZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHJvb3Qp
KSB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUtPmlzSW5zZXJ0aW9uUG9pbnQoKSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29uc3QgVmVjdG9yPEluc2VydGlvblBvaW50Kj4m
IGluc2VydGlvblBvaW50cyA9IHJvb3QtPmluc2VydGlvblBvaW50TGlzdCgpOworICAgICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IGluc2VydGlvblBvaW50cy5zaXplKCk7ICsraSkgewogICAg
ICAgICAgICAgbmVlZHNSZWF0dGFjaCA9IG5lZWRzUmVhdHRhY2ggfHwgdHJ1ZTsKLSAgICAgICAg
ICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IHRvSW5zZXJ0aW9uUG9pbnQobm9kZSk7Ci0gICAg
ICAgICAgICBwb2ludC0+Y2xlYXJEaXN0cmlidXRpb24oKTsKKyAgICAgICAgICAgIGluc2VydGlv
blBvaW50c1tpXS0+Y2xlYXJEaXN0cmlidXRpb24oKTsKICAgICAgICAgfQogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176630</attachid>
            <date>2012-11-28 19:56:42 -0800</date>
            <delta_ts>2012-11-28 21:10:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103212-20121129125416.patch</filename>
            <type>text/plain</type>
            <size>9830</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmMTMzM2UxNTI2ZDBl
MDNjNzA5ZTc0Y2M3M2Q2ZjUyYWJhOWEwZi4uYjNlNGFiYmFkNTY3MjE2MDhlOTJkYzYwMzUyNTI5
MTk1YThmOTcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTExLTI4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRpc3RyaWJ1dGluZyBvciBp
bnZhbGlkYXRpbmcgZGlzdHJpYnV0aW9uLCB3ZSB1c2VkIHRvIHRyYXZlcnNlIGFsbCBkZXNjZW5k
ZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAgICAgIElmIFNoYWRvd1Jvb3QgaGFzIGEgSW5z
ZXJ0aW9uUG9pbnQgbGlzdCwgd2UgY2FuIGp1c3QgdHJhdmVyc2UgdGhlIGxpc3QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBzaG91bGQgYmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6OmVuc3VyZVZhbGlkSW5zZXJ0aW9uUG9pbnRMaXN0KTogQ3JlYXRlcyBJbnNlcnRpb25Qb2lu
dCBsaXN0IGlmIGl0J3Mgbm90IGNyZWF0ZWQuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3Q6Omluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290OjppbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OnJlZ2lzdGVyU2hhZG93RWxlbWVudCk6IEludmFsaWRhdGUg
SW5zZXJ0aW9uUG9pbnRMaXN0IGNhY2hlLgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6
dW5yZWdpc3RlclNoYWRvd0VsZW1lbnQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3Q6OnJlZ2lzdGVyQ29udGVudEVsZW1lbnQpOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJDb250ZW50RWxlbWVudCk6IGRpdHRvLgorICAgICAgICAq
IGRvbS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgKiBodG1s
L3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhOjpTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlv
bkRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudERpc3RyaWJ1dG9yOjpkaXN0cmlidXRl
KTogVHJhdmVyc2UgSW5zZXJ0aW9uUG9pbnRMaXN0IGluc3RlYWQgb2YgYWxsIGRlc2NlbmRlbnQg
bm9kZXMgaW4gU2hhZG93IERPTS4KKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnREaXN0cmlidXRv
cjo6aW52YWxpZGF0ZSk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0
cmlidXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRp
b25EYXRhOjppbnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkKToKKyAgICAgICAgKFdlYkNvcmU6OlNo
YWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YTo6c2V0SW5zZXJ0aW9uUG9pbnRMaXN0VmFs
aWRpdHkpOgorICAgICAgICAoU2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YTo6YXBwZW5k
SW5zZXJ0aW9uUG9pbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0
cmlidXRpb25EYXRhOjpjbGVhckluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGE6Omluc2VydGlvblBvaW50TGlzdCk6
CisKIDIwMTItMTEtMjggIEhheWF0byBJdG8gIDxoYXlhdG9AY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIE5vZGU6OmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uIHJldHVybnMgd3JvbmcgdmFsdWUgZm9y
IGEgbm9kZSBpbiB0aGUgZGlmZmVyZW50IHNoYWRvdyB0cmVlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jv
b3QuY3BwCmluZGV4IDZjMjRhZDg5N2Y4MWMwZTVmMzVmZjJjZjM4NTE4MWEzMGMzZThlMWMuLjM5
ZThkNTZmOGUyZDczNTA1Yjc3YmRkNmJlZDVmM2JmYTk4MmQ2MTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5jcHAKQEAgLTMxMiw2ICszMTIsNDQgQEAgdm9pZCBTaGFkb3dSb290OjpjaGlsZHJl
bkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSoK
ICAgICBvd25lcigpLT5pbnZhbGlkYXRlRGlzdHJpYnV0aW9uKCk7CiB9CiAKK3ZvaWQgU2hhZG93
Um9vdDo6ZW5zdXJlVmFsaWRJbnNlcnRpb25Qb2ludExpc3QoKQoreworICAgIGlmICghZGlzdHJp
YnV0aW9uRGF0YSgpIHx8IGRpc3RyaWJ1dGlvbkRhdGEoKS0+aW5zZXJ0aW9uUG9pbnRMaXN0SXNW
YWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkaXN0cmlidXRpb25EYXRhKCktPnNldElu
c2VydGlvblBvaW50TGlzdFZhbGlkaXR5KHRydWUpOworICAgIEFTU0VSVChpbnNlcnRpb25Qb2lu
dExpc3QoKS5pc0VtcHR5KCkpOworCisgICAgaWYgKCFoYXNJbnNlcnRpb25Qb2ludCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBmb3IgKE5vZGUqIG5vZGUgPSB0aGlzOyBub2RlOyBub2RlID0g
bm9kZS0+dHJhdmVyc2VOZXh0Tm9kZSh0aGlzKSkgeworICAgICAgICBpZiAobm9kZS0+aXNJbnNl
cnRpb25Qb2ludCgpKQorICAgICAgICAgICAgZGlzdHJpYnV0aW9uRGF0YSgpLT5hcHBlbmRJbnNl
cnRpb25Qb2ludCh0b0luc2VydGlvblBvaW50KG5vZGUpKTsKKyAgICB9Cit9CisKK2NvbnN0IFZl
Y3RvcjxJbnNlcnRpb25Qb2ludCo+JiBTaGFkb3dSb290OjppbnNlcnRpb25Qb2ludExpc3QoKQor
eworICAgIHR5cGVkZWYgVmVjdG9yPEluc2VydGlvblBvaW50Kj4gSW5zZXJ0aW9uUG9pbnRWZWN0
b3I7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChJbnNlcnRpb25Qb2ludFZlY3RvciwgZW1wdHlW
ZWN0b3IsICgpKTsKKworICAgIGVuc3VyZVZhbGlkSW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisgICAg
aWYgKCFkaXN0cmlidXRpb25EYXRhKCkpCisgICAgICAgIHJldHVybiBlbXB0eVZlY3RvcjsKKwor
ICAgIHJldHVybiBkaXN0cmlidXRpb25EYXRhKCktPmluc2VydGlvblBvaW50TGlzdCgpOworfQor
Cit2b2lkIFNoYWRvd1Jvb3Q6OmludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKQoreworICAg
IGlmICghZGlzdHJpYnV0aW9uRGF0YSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBkaXN0cmli
dXRpb25EYXRhKCktPnNldEluc2VydGlvblBvaW50TGlzdFZhbGlkaXR5KGZhbHNlKTsKKyAgICBk
aXN0cmlidXRpb25EYXRhKCktPmNsZWFySW5zZXJ0aW9uUG9pbnRMaXN0KCk7Cit9CisKIHZvaWQg
U2hhZG93Um9vdDo6cmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpCiB7CiAgICAgKyttX251
bWJlck9mU3R5bGVzOwpAQCAtMzM3LDExICszNzUsMTMgQEAgaW5saW5lIFNoYWRvd1Jvb3RDb250
ZW50RGlzdHJpYnV0aW9uRGF0YSogU2hhZG93Um9vdDo6ZW5zdXJlRGlzdHJpYnV0aW9uRGF0YSgp
CiB2b2lkIFNoYWRvd1Jvb3Q6OnJlZ2lzdGVyU2hhZG93RWxlbWVudCgpCiB7CiAgICAgZW5zdXJl
RGlzdHJpYnV0aW9uRGF0YSgpLT5pbmNyZW1lbnROdW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJl
bigpOworICAgIGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsKIH0KIAogdm9pZCBTaGFk
b3dSb290Ojp1bnJlZ2lzdGVyU2hhZG93RWxlbWVudCgpCiB7CiAgICAgZGlzdHJpYnV0aW9uRGF0
YSgpLT5kZWNyZW1lbnROdW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbigpOworICAgIGludmFs
aWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpoYXNTaGFk
b3dJbnNlcnRpb25Qb2ludCgpIGNvbnN0CkBAIC0zNTUsMTEgKzM5NSwxMyBAQCBib29sIFNoYWRv
d1Jvb3Q6Omhhc1NoYWRvd0luc2VydGlvblBvaW50KCkgY29uc3QKIHZvaWQgU2hhZG93Um9vdDo6
cmVnaXN0ZXJDb250ZW50RWxlbWVudCgpCiB7CiAgICAgZW5zdXJlRGlzdHJpYnV0aW9uRGF0YSgp
LT5pbmNyZW1lbnROdW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW4oKTsKKyAgICBpbnZhbGlk
YXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7CiB9CiAKIHZvaWQgU2hhZG93Um9vdDo6dW5yZWdpc3Rl
ckNvbnRlbnRFbGVtZW50KCkKIHsKICAgICBkaXN0cmlidXRpb25EYXRhKCktPmRlY3JlbWVudE51
bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigpOworICAgIGludmFsaWRhdGVJbnNlcnRpb25Q
b2ludExpc3QoKTsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVudCgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBkZTk1OGQyM2M4YWM2ZGE5NDg5ZDQ1NWFk
Y2Q5YmZhYzhmMTUxMDBjLi4zMmMyZDhjNjk5OTQ0MjAxZTRmY2UyYWM1MzBiMzQ0MzhmMTZlYzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTEwNCw2ICsxMDQsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBoYXNFbGVtZW50U2hhZG93KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgY291bnRFbGVt
ZW50U2hhZG93KCkgY29uc3Q7CiAKKyAgICBjb25zdCBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYg
aW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTY29wZWRI
VE1MU3R5bGVDaGlsZCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2Nv
cGVkSFRNTFN0eWxlQ2hpbGQoKSBPVkVSUklERTsKIApAQCAtMTI4LDYgKzEzMCw5IEBAIHByaXZh
dGU6CiAgICAgY29uc3QgU2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhKiBkaXN0cmli
dXRpb25EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9kaXN0cmlidXRpb25EYXRhLmdldCgpOyB9CiAg
ICAgU2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhKiBlbnN1cmVEaXN0cmlidXRpb25E
YXRhKCk7CiAKKyAgICB2b2lkIGVuc3VyZVZhbGlkSW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisgICAg
dm9pZCBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisKICAgICBTaGFkb3dSb290KiBt
X3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIE93blB0cjxTaGFkb3dSb290Q29u
dGVudERpc3RyaWJ1dGlvbkRhdGE+IG1fZGlzdHJpYnV0aW9uRGF0YTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCmluZGV4IGJjNjc2MTFh
ODFhYWZlMGNmMTQyY2E1MjI2N2Q5NWI1ZTc1MGYwYzMuLjM3M2I2NDYwYzFmOWI4NmJhMjhhMmE1
OTM1NmExNTBiY2VmZTVmNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0NvbnRlbnREaXN0cmlidXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cv
Q29udGVudERpc3RyaWJ1dG9yLmNwcApAQCAtNjMsNiArNjMsNyBAQCBTaGFkb3dSb290Q29udGVu
dERpc3RyaWJ1dGlvbkRhdGE6OlNoYWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YSgpCiAg
ICAgLCBtX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuKDApCiAgICAgLCBtX251bWJlck9m
Q29udGVudEVsZW1lbnRDaGlsZHJlbigwKQogICAgICwgbV9udW1iZXJPZkVsZW1lbnRTaGFkb3dD
aGlsZHJlbigwKQorICAgICwgbV9pbnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkKGZhbHNlKQogewog
fQogCkBAIC0xMTYsMTcgKzExNywxOCBAQCB2b2lkIENvbnRlbnREaXN0cmlidXRvcjo6ZGlzdHJp
YnV0ZShFbGVtZW50KiBob3N0KQogICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IGhvc3QtPnlv
dW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkp
IHsKICAgICAgICAgSFRNTFNoYWRvd0VsZW1lbnQqIGZpcnN0QWN0aXZlU2hhZG93SW5zZXJ0aW9u
UG9pbnQgPSAwOwogCi0gICAgICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUg
PSBub2RlLT50cmF2ZXJzZU5leHROb2RlKHJvb3QpKSB7Ci0gICAgICAgICAgICBpZiAoIWlzQWN0
aXZlSW5zZXJ0aW9uUG9pbnQobm9kZSkpCisgICAgICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Q
b2ludCo+JiBpbnNlcnRpb25Qb2ludHMgPSByb290LT5pbnNlcnRpb25Qb2ludExpc3QoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnNlcnRpb25Qb2ludHMuc2l6ZSgpOyArK2kp
IHsKKyAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IGluc2VydGlvblBvaW50c1tp
XTsKKyAgICAgICAgICAgIGlmICghcG9pbnQtPmlzQWN0aXZlKCkpCiAgICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSB0b0luc2VydGlv
blBvaW50KG5vZGUpOwogCi0gICAgICAgICAgICBpZiAoaXNIVE1MU2hhZG93RWxlbWVudChub2Rl
KSkgeworICAgICAgICAgICAgaWYgKGlzSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQpKSB7CiAgICAg
ICAgICAgICAgICAgaWYgKCFmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50KQotICAgICAg
ICAgICAgICAgICAgICBmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlvblBvaW50ID0gdG9IVE1MU2hh
ZG93RWxlbWVudChub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgZmlyc3RBY3RpdmVTaGFkb3dJ
bnNlcnRpb25Qb2ludCA9IHRvSFRNTFNoYWRvd0VsZW1lbnQocG9pbnQpOwogICAgICAgICAgICAg
fSBlbHNlIHsKICAgICAgICAgICAgICAgICBkaXN0cmlidXRlU2VsZWN0aW9uc1RvKHBvaW50LCBw
b29sLCBkaXN0cmlidXRlZCk7Ci0gICAgICAgICAgICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNo
YWRvdyA9IG5vZGUtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgpID8gdG9FbGVtZW50KG5v
ZGUtPnBhcmVudE5vZGUoKSktPnNoYWRvdygpIDogMCkKKyAgICAgICAgICAgICAgICBpZiAoRWxl
bWVudFNoYWRvdyogc2hhZG93ID0gcG9pbnQtPnBhcmVudE5vZGUoKS0+aXNFbGVtZW50Tm9kZSgp
ID8gdG9FbGVtZW50KHBvaW50LT5wYXJlbnROb2RlKCkpLT5zaGFkb3coKSA6IDApCiAgICAgICAg
ICAgICAgICAgICAgIHNoYWRvdy0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CkBAIC0xNTcsMTMgKzE1OSwxMCBAQCBib29sIENvbnRlbnREaXN0cmli
dXRvcjo6aW52YWxpZGF0ZShFbGVtZW50KiBob3N0KQogCiAgICAgZm9yIChTaGFkb3dSb290KiBy
b290ID0gaG9zdC0+eW91bmdlc3RTaGFkb3dSb290KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRl
clNoYWRvd1Jvb3QoKSkgewogICAgICAgICByb290LT5zZXRBc3NpZ25lZFRvKDApOwotCi0gICAg
ICAgIGZvciAoTm9kZSogbm9kZSA9IHJvb3Q7IG5vZGU7IG5vZGUgPSBub2RlLT50cmF2ZXJzZU5l
eHROb2RlKHJvb3QpKSB7Ci0gICAgICAgICAgICBpZiAoIW5vZGUtPmlzSW5zZXJ0aW9uUG9pbnQo
KSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgY29uc3QgVmVjdG9yPEluc2Vy
dGlvblBvaW50Kj4mIGluc2VydGlvblBvaW50cyA9IHJvb3QtPmluc2VydGlvblBvaW50TGlzdCgp
OworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGluc2VydGlvblBvaW50cy5zaXplKCk7
ICsraSkgewogICAgICAgICAgICAgbmVlZHNSZWF0dGFjaCA9IG5lZWRzUmVhdHRhY2ggfHwgdHJ1
ZTsKLSAgICAgICAgICAgIEluc2VydGlvblBvaW50KiBwb2ludCA9IHRvSW5zZXJ0aW9uUG9pbnQo
bm9kZSk7Ci0gICAgICAgICAgICBwb2ludC0+Y2xlYXJEaXN0cmlidXRpb24oKTsKKyAgICAgICAg
ICAgIGluc2VydGlvblBvaW50c1tpXS0+Y2xlYXJEaXN0cmlidXRpb24oKTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERp
c3RyaWJ1dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0
b3IuaAppbmRleCBjYjUyODAyMGRiYWQ0NTRjNzcxOGFlY2JhMzI5OTdhYzNkYWU3YWI0Li4xNTFh
ZThkM2RkNDQxYWNhZWRjYmYyMzk1ZDk5ZDRkYmRiMTJkMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuaApAQCAtODgsMTEgKzg4LDIwIEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBudW1iZXJPZkVsZW1lbnRTaGFkb3dDaGlsZHJlbigpIGNv
bnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVtZW50U2hhZG93Q2hpbGRyZW47IH0KICAgICBib29s
IGhhc0VsZW1lbnRTaGFkb3dDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZFbGVt
ZW50U2hhZG93Q2hpbGRyZW4gPiAwOyB9CiAKKyAgICBib29sIGluc2VydGlvblBvaW50TGlzdElz
VmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2luc2VydGlvblBvaW50TGlzdElzVmFsaWQ7IH0KKyAg
ICB2b2lkIHNldEluc2VydGlvblBvaW50TGlzdFZhbGlkaXR5KGJvb2wgdmFsaWRpdHkpIHsgbV9p
bnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkID0gdmFsaWRpdHk7IH0KKworICAgIHZvaWQgYXBwZW5k
SW5zZXJ0aW9uUG9pbnQoSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50KSB7IG1faW5zZXJ0
aW9uUG9pbnRMaXN0LmFwcGVuZChpbnNlcnRpb25Qb2ludCk7IH0KKyAgICB2b2lkIGNsZWFySW5z
ZXJ0aW9uUG9pbnRMaXN0KCkgeyByZXR1cm4gbV9pbnNlcnRpb25Qb2ludExpc3QuY2xlYXIoKTsg
fQorICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludExpc3Qo
KSBjb25zdCB7IHJldHVybiBtX2luc2VydGlvblBvaW50TGlzdDsgfQorCiBwcml2YXRlOgogICAg
IEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKICAgICB1bnNpZ25l
ZCBtX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZDb250ZW50RWxlbWVudENoaWxkcmVuOwogICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZFbGVtZW50
U2hhZG93Q2hpbGRyZW47CisgICAgYm9vbCBtX2luc2VydGlvblBvaW50TGlzdElzVmFsaWQ7Cisg
ICAgVmVjdG9yPEluc2VydGlvblBvaW50Kj4gbV9pbnNlcnRpb25Qb2ludExpc3Q7CiB9OwogCiBj
bGFzcyBDb250ZW50RGlzdHJpYnV0b3Igewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176637</attachid>
            <date>2012-11-28 21:10:29 -0800</date>
            <delta_ts>2012-11-28 21:43:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103212-20121129140803.patch</filename>
            <type>text/plain</type>
            <size>9376</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmMTMzM2UxNTI2ZDBl
MDNjNzA5ZTc0Y2M3M2Q2ZjUyYWJhOWEwZi4uMGQxYThhNjIxYzllOGExMTk1ZjhjMzNhOTdmNTc3
ZTI1ZmIxZTVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTExLTI4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGRpc3RyaWJ1dGluZyBvciBp
bnZhbGlkYXRpbmcgZGlzdHJpYnV0aW9uLCB3ZSB1c2VkIHRvIHRyYXZlcnNlIGFsbCBkZXNjZW5k
ZW50IG5vZGVzIGluIFNoYWRvdyBET00uCisgICAgICAgIElmIFNoYWRvd1Jvb3QgaGFzIGEgSW5z
ZXJ0aW9uUG9pbnQgbGlzdCwgd2UgY2FuIGp1c3QgdHJhdmVyc2UgdGhlIGxpc3QuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLCBzaG91bGQgYmUgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKwor
ICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jv
b3Q6Omluc2VydGlvblBvaW50TGlzdCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OlNoYWRvd1Jvb3Q6OmludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Um9vdDo6cmVnaXN0ZXJTaGFkb3dFbGVtZW50KTogSW52YWxpZGF0
ZSBJbnNlcnRpb25Qb2ludExpc3QgY2FjaGUuCisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290
Ojp1bnJlZ2lzdGVyU2hhZG93RWxlbWVudCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2hh
ZG93Um9vdDo6cmVnaXN0ZXJDb250ZW50RWxlbWVudCk6IGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdDo6dW5yZWdpc3RlckNvbnRlbnRFbGVtZW50KTogZGl0dG8uCisgICAgICAg
ICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAgICAgICAgKFNoYWRvd1Jvb3QpOgorICAgICAgICAqIGh0
bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFk
b3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGE6OlNoYWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0
aW9uRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlv
bkRhdGE6OmludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGE6OmVu
c3VyZUluc2VydGlvblBvaW50TGlzdCk6IENyZWF0ZXMgSW5zZXJ0aW9uUG9pbnQgbGlzdCBpZiBp
dCdzIG5vdCBjcmVhdGVkCisgICAgICAgIGFuZCByZXR1cm4gaXQuCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50RGlzdHJpYnV0b3I6OmRpc3RyaWJ1dGUpOiBUcmF2ZXJzZSBJbnNlcnRpb25Qb2lu
dExpc3QgaW5zdGVhZCBvZiBhbGwgZGVzY2VuZGVudCBub2RlcyBpbiBTaGFkb3cgRE9NLgorICAg
ICAgICAoV2ViQ29yZTo6Q29udGVudERpc3RyaWJ1dG9yOjppbnZhbGlkYXRlKTogZGl0dG8uCisg
ICAgICAgICogaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmg6CisgICAgICAgIChTaGFk
b3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGEpOgorCiAyMDEyLTExLTI4ICBIYXlhdG8gSXRv
ICA8aGF5YXRvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBOb2RlOjpjb21wYXJlRG9jdW1lbnRQ
b3NpdGlvbiByZXR1cm5zIHdyb25nIHZhbHVlIGZvciBhIG5vZGUgaW4gdGhlIGRpZmZlcmVudCBz
aGFkb3cgdHJlZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCA2YzI0YWQ4OTdmODFj
MGU1ZjM1ZmYyY2YzODUxODFhMzBjM2U4ZTFjLi4xZjk2NTA2ZTllZDJjM2JiMTQ2OGE5NGU1NjBm
OGQ4YmI0MTU1NzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zMTIsNiArMzEy
LDIwIEBAIHZvaWQgU2hhZG93Um9vdDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFy
c2VyLCBOb2RlKiBiZWZvcmVDaGFuZ2UsIE5vZGUqCiAgICAgb3duZXIoKS0+aW52YWxpZGF0ZURp
c3RyaWJ1dGlvbigpOwogfQogCitjb25zdCBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYgU2hhZG93
Um9vdDo6aW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICB0eXBlZGVmIFZlY3RvcjxJbnNlcnRp
b25Qb2ludCo+IEluc2VydGlvblBvaW50VmVjdG9yOworICAgIERFRklORV9TVEFUSUNfTE9DQUwo
SW5zZXJ0aW9uUG9pbnRWZWN0b3IsIGVtcHR5VmVjdG9yLCAoKSk7CisKKyAgICByZXR1cm4gZGlz
dHJpYnV0aW9uRGF0YSgpID8gZGlzdHJpYnV0aW9uRGF0YSgpLT5lbnN1cmVJbnNlcnRpb25Qb2lu
dExpc3QodGhpcykgOiBlbXB0eVZlY3RvcjsKK30KKwordm9pZCBTaGFkb3dSb290OjppbnZhbGlk
YXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCkKK3sKKyAgICBpZiAoZGlzdHJpYnV0aW9uRGF0YSgpKQor
ICAgICAgICBkaXN0cmlidXRpb25EYXRhKCktPmludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3Qo
KTsKK30KKwogdm9pZCBTaGFkb3dSb290OjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkK
IHsKICAgICArK21fbnVtYmVyT2ZTdHlsZXM7CkBAIC0zMzcsMTEgKzM1MSwxMyBAQCBpbmxpbmUg
U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhKiBTaGFkb3dSb290OjplbnN1cmVEaXN0
cmlidXRpb25EYXRhKCkKIHZvaWQgU2hhZG93Um9vdDo6cmVnaXN0ZXJTaGFkb3dFbGVtZW50KCkK
IHsKICAgICBlbnN1cmVEaXN0cmlidXRpb25EYXRhKCktPmluY3JlbWVudE51bWJlck9mU2hhZG93
RWxlbWVudENoaWxkcmVuKCk7CisgICAgaW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOwog
fQogCiB2b2lkIFNoYWRvd1Jvb3Q6OnVucmVnaXN0ZXJTaGFkb3dFbGVtZW50KCkKIHsKICAgICBk
aXN0cmlidXRpb25EYXRhKCktPmRlY3JlbWVudE51bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVu
KCk7CisgICAgaW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOwogfQogCiBib29sIFNoYWRv
d1Jvb3Q6Omhhc1NoYWRvd0luc2VydGlvblBvaW50KCkgY29uc3QKQEAgLTM1NSwxMSArMzcxLDEz
IEBAIGJvb2wgU2hhZG93Um9vdDo6aGFzU2hhZG93SW5zZXJ0aW9uUG9pbnQoKSBjb25zdAogdm9p
ZCBTaGFkb3dSb290OjpyZWdpc3RlckNvbnRlbnRFbGVtZW50KCkKIHsKICAgICBlbnN1cmVEaXN0
cmlidXRpb25EYXRhKCktPmluY3JlbWVudE51bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigp
OworICAgIGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsKIH0KIAogdm9pZCBTaGFkb3dS
b290Ojp1bnJlZ2lzdGVyQ29udGVudEVsZW1lbnQoKQogewogICAgIGRpc3RyaWJ1dGlvbkRhdGEo
KS0+ZGVjcmVtZW50TnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuKCk7CisgICAgaW52YWxp
ZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOwogfQogCiBib29sIFNoYWRvd1Jvb3Q6Omhhc0NvbnRl
bnRFbGVtZW50KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCmluZGV4IGRlOTU4ZDIzYzhh
YzZkYTk0ODlkNDU1YWRjZDliZmFjOGYxNTEwMGMuLjQ2Yjg4MTA4YjMzODc3NWQ1NGIzM2M0YjAx
MGNmZThmNTM5Y2EwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaApAQCAtMTA0LDYgKzEwNCw4
IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0VsZW1lbnRTaGFkb3coKSBjb25zdDsKICAgICB1bnNp
Z25lZCBjb3VudEVsZW1lbnRTaGFkb3coKSBjb25zdDsKIAorICAgIGNvbnN0IFZlY3RvcjxJbnNl
cnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludExpc3QoKTsKKwogICAgIHZpcnR1YWwgdm9pZCBy
ZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxkKCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lk
IHVucmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpIE9WRVJSSURFOwogCkBAIC0xMjgsNiAr
MTMwLDggQEAgcHJpdmF0ZToKICAgICBjb25zdCBTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlv
bkRhdGEqIGRpc3RyaWJ1dGlvbkRhdGEoKSBjb25zdCB7IHJldHVybiBtX2Rpc3RyaWJ1dGlvbkRh
dGEuZ2V0KCk7IH0KICAgICBTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGEqIGVuc3Vy
ZURpc3RyaWJ1dGlvbkRhdGEoKTsKIAorICAgIHZvaWQgZW5zdXJlVmFsaWRJbnNlcnRpb25Qb2lu
dExpc3QoKTsKKwogICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25l
eHQ7CiAgICAgT3duUHRyPFNoYWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YT4gbV9kaXN0
cmlidXRpb25EYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudERpc3RyaWJ1dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRE
aXN0cmlidXRvci5jcHAKaW5kZXggYmM2NzYxMWE4MWFhZmUwY2YxNDJjYTUyMjY3ZDk1YjVlNzUw
ZjBjMy4uMGMwOTVlNDM3MzYyYzYzMTlkZDFiNmUxNTRjZDViN2RkNWFmNTEzYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCkBAIC02
Myw5ICs2MywzNCBAQCBTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGE6OlNoYWRvd1Jv
b3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YSgpCiAgICAgLCBtX251bWJlck9mU2hhZG93RWxlbWVu
dENoaWxkcmVuKDApCiAgICAgLCBtX251bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigwKQog
ICAgICwgbV9udW1iZXJPZkVsZW1lbnRTaGFkb3dDaGlsZHJlbigwKQorICAgICwgbV9pbnNlcnRp
b25Qb2ludExpc3RJc1ZhbGlkKGZhbHNlKQogewogfQogCit2b2lkIFNoYWRvd1Jvb3RDb250ZW50
RGlzdHJpYnV0aW9uRGF0YTo6aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpCit7CisgICAg
bV9pbnNlcnRpb25Qb2ludExpc3RJc1ZhbGlkID0gZmFsc2U7CisgICAgbV9pbnNlcnRpb25Qb2lu
dExpc3QuY2xlYXIoKTsKK30KKworY29uc3QgVmVjdG9yPEluc2VydGlvblBvaW50Kj4mIFNoYWRv
d1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YTo6ZW5zdXJlSW5zZXJ0aW9uUG9pbnRMaXN0KFNo
YWRvd1Jvb3QqIHNoYWRvd1Jvb3QpCit7CisgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnRMaXN0SXNW
YWxpZCkKKyAgICAgICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnRMaXN0OworCisgICAgbV9pbnNl
cnRpb25Qb2ludExpc3RJc1ZhbGlkID0gdHJ1ZTsKKyAgICBBU1NFUlQobV9pbnNlcnRpb25Qb2lu
dExpc3QuaXNFbXB0eSgpKTsKKworICAgIGlmICghc2hhZG93Um9vdC0+aGFzSW5zZXJ0aW9uUG9p
bnQoKSkKKyAgICAgICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnRMaXN0OworCisgICAgZm9yIChO
b2RlKiBub2RlID0gc2hhZG93Um9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5v
ZGUoc2hhZG93Um9vdCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmlzSW5zZXJ0aW9uUG9pbnQoKSkK
KyAgICAgICAgICAgIG1faW5zZXJ0aW9uUG9pbnRMaXN0LmFwcGVuZCh0b0luc2VydGlvblBvaW50
KG5vZGUpKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9pbnNlcnRpb25Qb2ludExpc3Q7Cit9CiAK
IENvbnRlbnREaXN0cmlidXRvcjo6Q29udGVudERpc3RyaWJ1dG9yKCkKICAgICA6IG1fdmFsaWRp
dHkoVW5kZXRlcm1pbmVkKQpAQCAtMTE2LDE3ICsxNDEsMTggQEAgdm9pZCBDb250ZW50RGlzdHJp
YnV0b3I6OmRpc3RyaWJ1dGUoRWxlbWVudCogaG9zdCkKICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJv
b3QgPSBob3N0LT55b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVy
U2hhZG93Um9vdCgpKSB7CiAgICAgICAgIEhUTUxTaGFkb3dFbGVtZW50KiBmaXJzdEFjdGl2ZVNo
YWRvd0luc2VydGlvblBvaW50ID0gMDsKIAotICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290
OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewotICAgICAgICAg
ICAgaWYgKCFpc0FjdGl2ZUluc2VydGlvblBvaW50KG5vZGUpKQorICAgICAgICBjb25zdCBWZWN0
b3I8SW5zZXJ0aW9uUG9pbnQqPiYgaW5zZXJ0aW9uUG9pbnRzID0gcm9vdC0+aW5zZXJ0aW9uUG9p
bnRMaXN0KCk7CisgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5zZXJ0aW9uUG9pbnRz
LnNpemUoKTsgKytpKSB7CisgICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSBpbnNl
cnRpb25Qb2ludHNbaV07CisgICAgICAgICAgICBpZiAoIXBvaW50LT5pc0FjdGl2ZSgpKQogICAg
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgSW5zZXJ0aW9uUG9pbnQqIHBvaW50
ID0gdG9JbnNlcnRpb25Qb2ludChub2RlKTsKIAotICAgICAgICAgICAgaWYgKGlzSFRNTFNoYWRv
d0VsZW1lbnQobm9kZSkpIHsKKyAgICAgICAgICAgIGlmIChpc0hUTUxTaGFkb3dFbGVtZW50KHBv
aW50KSkgewogICAgICAgICAgICAgICAgIGlmICghZmlyc3RBY3RpdmVTaGFkb3dJbnNlcnRpb25Q
b2ludCkKLSAgICAgICAgICAgICAgICAgICAgZmlyc3RBY3RpdmVTaGFkb3dJbnNlcnRpb25Qb2lu
dCA9IHRvSFRNTFNoYWRvd0VsZW1lbnQobm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0
QWN0aXZlU2hhZG93SW5zZXJ0aW9uUG9pbnQgPSB0b0hUTUxTaGFkb3dFbGVtZW50KHBvaW50KTsK
ICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZGlzdHJpYnV0ZVNlbGVjdGlv
bnNUbyhwb2ludCwgcG9vbCwgZGlzdHJpYnV0ZWQpOwotICAgICAgICAgICAgICAgIGlmIChFbGVt
ZW50U2hhZG93KiBzaGFkb3cgPSBub2RlLT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSA/
IHRvRWxlbWVudChub2RlLT5wYXJlbnROb2RlKCkpLT5zaGFkb3coKSA6IDApCisgICAgICAgICAg
ICAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHBvaW50LT5wYXJlbnROb2RlKCktPmlz
RWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChwb2ludC0+cGFyZW50Tm9kZSgpKS0+c2hhZG93KCkg
OiAwKQogICAgICAgICAgICAgICAgICAgICBzaGFkb3ctPmludmFsaWRhdGVEaXN0cmlidXRpb24o
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTU3LDEzICsxODMsMTAgQEAgYm9vbCBD
b250ZW50RGlzdHJpYnV0b3I6OmludmFsaWRhdGUoRWxlbWVudCogaG9zdCkKIAogICAgIGZvciAo
U2hhZG93Um9vdCogcm9vdCA9IGhvc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAgcm9vdC0+c2V0QXNzaWduZWRU
bygwKTsKLQotICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9k
ZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewotICAgICAgICAgICAgaWYgKCFub2RlLT5pc0lu
c2VydGlvblBvaW50KCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnN0
IFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludHMgPSByb290LT5pbnNlcnRp
b25Qb2ludExpc3QoKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnNlcnRpb25Q
b2ludHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgICAgIG5lZWRzUmVhdHRhY2ggPSBuZWVkc1Jl
YXR0YWNoIHx8IHRydWU7Ci0gICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSB0b0lu
c2VydGlvblBvaW50KG5vZGUpOwotICAgICAgICAgICAgcG9pbnQtPmNsZWFyRGlzdHJpYnV0aW9u
KCk7CisgICAgICAgICAgICBpbnNlcnRpb25Qb2ludHNbaV0tPmNsZWFyRGlzdHJpYnV0aW9uKCk7
CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L0NvbnRlbnREaXN0cmlidXRvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29u
dGVudERpc3RyaWJ1dG9yLmgKaW5kZXggY2I1MjgwMjBkYmFkNDU0Yzc3MThhZWNiYTMyOTk3YWMz
ZGFlN2FiNC4uNzVlMTUxODYxZmY4NTdhMzk0OWE5NWZlZDVhMTQyOTFhZjUwYzkwMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmgKQEAgLTg4
LDExICs4OCwxNiBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbnVtYmVyT2ZFbGVtZW50U2hhZG93
Q2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX251bWJlck9mRWxlbWVudFNoYWRvd0NoaWxkcmVu
OyB9CiAgICAgYm9vbCBoYXNFbGVtZW50U2hhZG93Q2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBt
X251bWJlck9mRWxlbWVudFNoYWRvd0NoaWxkcmVuID4gMDsgfQogCisgICAgdm9pZCBpbnZhbGlk
YXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisgICAgY29uc3QgVmVjdG9yPEluc2VydGlvblBvaW50
Kj4mIGVuc3VyZUluc2VydGlvblBvaW50TGlzdChTaGFkb3dSb290Kik7CisKIHByaXZhdGU6CiAg
ICAgSW5zZXJ0aW9uUG9pbnQqIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvOwogICAgIHVuc2ln
bmVkIG1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW47CiAgICAgdW5zaWduZWQgbV9udW1i
ZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW47CiAgICAgdW5zaWduZWQgbV9udW1iZXJPZkVsZW1l
bnRTaGFkb3dDaGlsZHJlbjsKKyAgICBib29sIG1faW5zZXJ0aW9uUG9pbnRMaXN0SXNWYWxpZDsK
KyAgICBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiBtX2luc2VydGlvblBvaW50TGlzdDsKIH07CiAK
IGNsYXNzIENvbnRlbnREaXN0cmlidXRvciB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176645</attachid>
            <date>2012-11-28 21:43:50 -0800</date>
            <delta_ts>2012-11-28 22:24:48 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-103212-20121129144124.patch</filename>
            <type>text/plain</type>
            <size>9611</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM2MDg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVmMTMzM2UxNTI2ZDBl
MDNjNzA5ZTc0Y2M3M2Q2ZjUyYWJhOWEwZi4uN2I5MWFmMWVkYjcyZGQ4ZmE0NDA5NTI2MmRlZDgy
NDUwYWJkZTg0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTExLTI4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBbU2hhZG93XSBT
aGFkb3dSb290IHNob3VsZCBjYWNoZSBJbnNlcnRpb25Qb2ludExpc3QuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDMyMTIKKworICAgICAgICBSZXZp
ZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIFdoZW4gZGlzdHJpYnV0aW5nIG9yIGlu
dmFsaWRhdGluZyBkaXN0cmlidXRpb24sIHdlIHVzZWQgdG8gdHJhdmVyc2UgYWxsIGRlc2NlbmRl
bnQgbm9kZXMgaW4gU2hhZG93IERPTS4KKyAgICAgICAgSWYgU2hhZG93Um9vdCBoYXMgYSBJbnNl
cnRpb25Qb2ludCBsaXN0LCB3ZSBjYW4ganVzdCB0cmF2ZXJzZSB0aGUgbGlzdC4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIHNob3VsZCBiZSBjb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisg
ICAgICAgICogZG9tL1NoYWRvd1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dDo6aW5zZXJ0aW9uUG9pbnRMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290Lmg6CisgICAgICAgIChTaGFkb3dSb290KToKKyAgICAgICAgKiBodG1sL3No
YWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9v
dENvbnRlbnREaXN0cmlidXRpb25EYXRhOjpTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRh
dGEpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRh
OjppbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhOjplbnN1cmVJ
bnNlcnRpb25Qb2ludExpc3QpOiBDcmVhdGVzIEluc2VydGlvblBvaW50IGxpc3QKKyAgICAgICAg
aWYgaXQncyBub3QgY3JlYXRlZCBhbmQgcmV0dXJuIGl0LgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudERpc3RyaWJ1dG9yOjpkaXN0cmlidXRlKTogVHJhdmVyc2UgSW5zZXJ0aW9uUG9pbnRMaXN0
IGluc3RlYWQgb2YgYWxsIGRlc2NlbmRlbnQgbm9kZXMgaW4gU2hhZG93IERPTS4KKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnREaXN0cmlidXRvcjo6aW52YWxpZGF0ZSk6IGRpdHRvLgorICAgICAg
ICAqIGh0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhOjppbmNyZW1lbnROdW1iZXJPZlNoYWRv
d0VsZW1lbnRDaGlsZHJlbik6IEludmFsaWRhdGUgSW5zZXJ0aW9uUG9pbnRMaXN0IGNhY2hlLgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhOjpkZWNy
ZW1lbnROdW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbik6IGRpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdENvbnRlbnREaXN0cmlidXRpb25EYXRhOjppbmNyZW1lbnROdW1iZXJP
ZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW4pOiBkaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNoYWRv
d1Jvb3RDb250ZW50RGlzdHJpYnV0aW9uRGF0YTo6ZGVjcmVtZW50TnVtYmVyT2ZDb250ZW50RWxl
bWVudENoaWxkcmVuKTogZGl0dG8uCisgICAgICAgIChTaGFkb3dSb290Q29udGVudERpc3RyaWJ1
dGlvbkRhdGEpOgorCiAyMDEyLTExLTI4ICBIYXlhdG8gSXRvICA8aGF5YXRvQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBOb2RlOjpjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiByZXR1cm5zIHdyb25n
IHZhbHVlIGZvciBhIG5vZGUgaW4gdGhlIGRpZmZlcmVudCBzaGFkb3cgdHJlZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9TaGFkb3dSb290LmNwcAppbmRleCA2YzI0YWQ4OTdmODFjMGU1ZjM1ZmYyY2YzODUxODFhMzBj
M2U4ZTFjLi41NWViMjhmNTAzNjkyODBmMjQwNjJmZGUxOGY3YzVjYjI1Mzk5OGE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zMTIsNiArMzEyLDE0IEBAIHZvaWQgU2hhZG93Um9v
dDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFu
Z2UsIE5vZGUqCiAgICAgb3duZXIoKS0+aW52YWxpZGF0ZURpc3RyaWJ1dGlvbigpOwogfQogCitj
b25zdCBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYgU2hhZG93Um9vdDo6aW5zZXJ0aW9uUG9pbnRM
aXN0KCkKK3sKKyAgICB0eXBlZGVmIFZlY3RvcjxJbnNlcnRpb25Qb2ludCo+IEluc2VydGlvblBv
aW50VmVjdG9yOworICAgIERFRklORV9TVEFUSUNfTE9DQUwoSW5zZXJ0aW9uUG9pbnRWZWN0b3Is
IGVtcHR5VmVjdG9yLCAoKSk7CisKKyAgICByZXR1cm4gZGlzdHJpYnV0aW9uRGF0YSgpID8gZGlz
dHJpYnV0aW9uRGF0YSgpLT5lbnN1cmVJbnNlcnRpb25Qb2ludExpc3QodGhpcykgOiBlbXB0eVZl
Y3RvcjsKK30KKwogdm9pZCBTaGFkb3dSb290OjpyZWdpc3RlclNjb3BlZEhUTUxTdHlsZUNoaWxk
KCkKIHsKICAgICArK21fbnVtYmVyT2ZTdHlsZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRl
eCBkZTk1OGQyM2M4YWM2ZGE5NDg5ZDQ1NWFkY2Q5YmZhYzhmMTUxMDBjLi4wNDM0ZjI1M2Y1NDRl
YTk4ZmI2MzA0YjI1MzFlZjQxNzA2NmQzN2Q4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAg
LTEwNCw2ICsxMDQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFbGVtZW50U2hhZG93KCkgY29u
c3Q7CiAgICAgdW5zaWduZWQgY291bnRFbGVtZW50U2hhZG93KCkgY29uc3Q7CiAKKyAgICBjb25z
dCBWZWN0b3I8SW5zZXJ0aW9uUG9pbnQqPiYgaW5zZXJ0aW9uUG9pbnRMaXN0KCk7CisKICAgICB2
aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTY29wZWRIVE1MU3R5bGVDaGlsZCgpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgdm9pZCB1bnJlZ2lzdGVyU2NvcGVkSFRNTFN0eWxlQ2hpbGQoKSBPVkVSUklERTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnREaXN0cmlidXRvci5j
cHAKaW5kZXggYmM2NzYxMWE4MWFhZmUwY2YxNDJjYTUyMjY3ZDk1YjVlNzUwZjBjMy4uMGMwOTVl
NDM3MzYyYzYzMTlkZDFiNmUxNTRjZDViN2RkNWFmNTEzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9Db250ZW50RGlzdHJpYnV0b3IuY3BwCkBAIC02Myw5ICs2MywzNCBA
QCBTaGFkb3dSb290Q29udGVudERpc3RyaWJ1dGlvbkRhdGE6OlNoYWRvd1Jvb3RDb250ZW50RGlz
dHJpYnV0aW9uRGF0YSgpCiAgICAgLCBtX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuKDAp
CiAgICAgLCBtX251bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigwKQogICAgICwgbV9udW1i
ZXJPZkVsZW1lbnRTaGFkb3dDaGlsZHJlbigwKQorICAgICwgbV9pbnNlcnRpb25Qb2ludExpc3RJ
c1ZhbGlkKGZhbHNlKQogewogfQogCit2b2lkIFNoYWRvd1Jvb3RDb250ZW50RGlzdHJpYnV0aW9u
RGF0YTo6aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpCit7CisgICAgbV9pbnNlcnRpb25Q
b2ludExpc3RJc1ZhbGlkID0gZmFsc2U7CisgICAgbV9pbnNlcnRpb25Qb2ludExpc3QuY2xlYXIo
KTsKK30KKworY29uc3QgVmVjdG9yPEluc2VydGlvblBvaW50Kj4mIFNoYWRvd1Jvb3RDb250ZW50
RGlzdHJpYnV0aW9uRGF0YTo6ZW5zdXJlSW5zZXJ0aW9uUG9pbnRMaXN0KFNoYWRvd1Jvb3QqIHNo
YWRvd1Jvb3QpCit7CisgICAgaWYgKG1faW5zZXJ0aW9uUG9pbnRMaXN0SXNWYWxpZCkKKyAgICAg
ICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnRMaXN0OworCisgICAgbV9pbnNlcnRpb25Qb2ludExp
c3RJc1ZhbGlkID0gdHJ1ZTsKKyAgICBBU1NFUlQobV9pbnNlcnRpb25Qb2ludExpc3QuaXNFbXB0
eSgpKTsKKworICAgIGlmICghc2hhZG93Um9vdC0+aGFzSW5zZXJ0aW9uUG9pbnQoKSkKKyAgICAg
ICAgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnRMaXN0OworCisgICAgZm9yIChOb2RlKiBub2RlID0g
c2hhZG93Um9vdDsgbm9kZTsgbm9kZSA9IG5vZGUtPnRyYXZlcnNlTmV4dE5vZGUoc2hhZG93Um9v
dCkpIHsKKyAgICAgICAgaWYgKG5vZGUtPmlzSW5zZXJ0aW9uUG9pbnQoKSkKKyAgICAgICAgICAg
IG1faW5zZXJ0aW9uUG9pbnRMaXN0LmFwcGVuZCh0b0luc2VydGlvblBvaW50KG5vZGUpKTsKKyAg
ICB9CisKKyAgICByZXR1cm4gbV9pbnNlcnRpb25Qb2ludExpc3Q7Cit9CiAKIENvbnRlbnREaXN0
cmlidXRvcjo6Q29udGVudERpc3RyaWJ1dG9yKCkKICAgICA6IG1fdmFsaWRpdHkoVW5kZXRlcm1p
bmVkKQpAQCAtMTE2LDE3ICsxNDEsMTggQEAgdm9pZCBDb250ZW50RGlzdHJpYnV0b3I6OmRpc3Ry
aWJ1dGUoRWxlbWVudCogaG9zdCkKICAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSBob3N0LT55
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KSB7CiAgICAgICAgIEhUTUxTaGFkb3dFbGVtZW50KiBmaXJzdEFjdGl2ZVNoYWRvd0luc2VydGlv
blBvaW50ID0gMDsKIAotICAgICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2Rl
ID0gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShyb290KSkgewotICAgICAgICAgICAgaWYgKCFpc0Fj
dGl2ZUluc2VydGlvblBvaW50KG5vZGUpKQorICAgICAgICBjb25zdCBWZWN0b3I8SW5zZXJ0aW9u
UG9pbnQqPiYgaW5zZXJ0aW9uUG9pbnRzID0gcm9vdC0+aW5zZXJ0aW9uUG9pbnRMaXN0KCk7Cisg
ICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgaW5zZXJ0aW9uUG9pbnRzLnNpemUoKTsgKytp
KSB7CisgICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSBpbnNlcnRpb25Qb2ludHNb
aV07CisgICAgICAgICAgICBpZiAoIXBvaW50LT5pc0FjdGl2ZSgpKQogICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgSW5zZXJ0aW9uUG9pbnQqIHBvaW50ID0gdG9JbnNlcnRp
b25Qb2ludChub2RlKTsKIAotICAgICAgICAgICAgaWYgKGlzSFRNTFNoYWRvd0VsZW1lbnQobm9k
ZSkpIHsKKyAgICAgICAgICAgIGlmIChpc0hUTUxTaGFkb3dFbGVtZW50KHBvaW50KSkgewogICAg
ICAgICAgICAgICAgIGlmICghZmlyc3RBY3RpdmVTaGFkb3dJbnNlcnRpb25Qb2ludCkKLSAgICAg
ICAgICAgICAgICAgICAgZmlyc3RBY3RpdmVTaGFkb3dJbnNlcnRpb25Qb2ludCA9IHRvSFRNTFNo
YWRvd0VsZW1lbnQobm9kZSk7CisgICAgICAgICAgICAgICAgICAgIGZpcnN0QWN0aXZlU2hhZG93
SW5zZXJ0aW9uUG9pbnQgPSB0b0hUTUxTaGFkb3dFbGVtZW50KHBvaW50KTsKICAgICAgICAgICAg
IH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgZGlzdHJpYnV0ZVNlbGVjdGlvbnNUbyhwb2ludCwg
cG9vbCwgZGlzdHJpYnV0ZWQpOwotICAgICAgICAgICAgICAgIGlmIChFbGVtZW50U2hhZG93KiBz
aGFkb3cgPSBub2RlLT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUoKSA/IHRvRWxlbWVudChu
b2RlLT5wYXJlbnROb2RlKCkpLT5zaGFkb3coKSA6IDApCisgICAgICAgICAgICAgICAgaWYgKEVs
ZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHBvaW50LT5wYXJlbnROb2RlKCktPmlzRWxlbWVudE5vZGUo
KSA/IHRvRWxlbWVudChwb2ludC0+cGFyZW50Tm9kZSgpKS0+c2hhZG93KCkgOiAwKQogICAgICAg
ICAgICAgICAgICAgICBzaGFkb3ctPmludmFsaWRhdGVEaXN0cmlidXRpb24oKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMTU3LDEzICsxODMsMTAgQEAgYm9vbCBDb250ZW50RGlzdHJp
YnV0b3I6OmludmFsaWRhdGUoRWxlbWVudCogaG9zdCkKIAogICAgIGZvciAoU2hhZG93Um9vdCog
cm9vdCA9IGhvc3QtPnlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xk
ZXJTaGFkb3dSb290KCkpIHsKICAgICAgICAgcm9vdC0+c2V0QXNzaWduZWRUbygwKTsKLQotICAg
ICAgICBmb3IgKE5vZGUqIG5vZGUgPSByb290OyBub2RlOyBub2RlID0gbm9kZS0+dHJhdmVyc2VO
ZXh0Tm9kZShyb290KSkgewotICAgICAgICAgICAgaWYgKCFub2RlLT5pc0luc2VydGlvblBvaW50
KCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGNvbnN0IFZlY3RvcjxJbnNl
cnRpb25Qb2ludCo+JiBpbnNlcnRpb25Qb2ludHMgPSByb290LT5pbnNlcnRpb25Qb2ludExpc3Qo
KTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBpbnNlcnRpb25Qb2ludHMuc2l6ZSgp
OyArK2kpIHsKICAgICAgICAgICAgIG5lZWRzUmVhdHRhY2ggPSBuZWVkc1JlYXR0YWNoIHx8IHRy
dWU7Ci0gICAgICAgICAgICBJbnNlcnRpb25Qb2ludCogcG9pbnQgPSB0b0luc2VydGlvblBvaW50
KG5vZGUpOwotICAgICAgICAgICAgcG9pbnQtPmNsZWFyRGlzdHJpYnV0aW9uKCk7CisgICAgICAg
ICAgICBpbnNlcnRpb25Qb2ludHNbaV0tPmNsZWFyRGlzdHJpYnV0aW9uKCk7CiAgICAgICAgIH0K
ICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0NvbnRlbnRE
aXN0cmlidXRvci5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1
dG9yLmgKaW5kZXggY2I1MjgwMjBkYmFkNDU0Yzc3MThhZWNiYTMyOTk3YWMzZGFlN2FiNC4uY2My
ZmMyMzJlZTIxMmRjOThhZGRmOTNhZjJhMTk1NGNmNGRhMTUwZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvQ29udGVudERpc3RyaWJ1dG9yLmgKQEAgLTc1LDEyICs3NSwxMiBA
QCBwdWJsaWM6CiAgICAgSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50QXNzaWduZWRUbygp
IGNvbnN0IHsgcmV0dXJuIG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvOyB9CiAgICAgdm9pZCBz
ZXRJbnNlcnRpb25Qb2ludEFzc2lnbmVkVG8oSW5zZXJ0aW9uUG9pbnQqIGluc2VydGlvblBvaW50
KSB7IG1faW5zZXJ0aW9uUG9pbnRBc3NpZ25lZFRvID0gaW5zZXJ0aW9uUG9pbnQ7IH0KIAotICAg
IHZvaWQgaW5jcmVtZW50TnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW4oKSB7ICsrbV9udW1i
ZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsgfQotICAgIHZvaWQgZGVjcmVtZW50TnVtYmVyT2ZT
aGFkb3dFbGVtZW50Q2hpbGRyZW4oKSB7IEFTU0VSVChtX251bWJlck9mU2hhZG93RWxlbWVudENo
aWxkcmVuID4gMCk7IC0tbV9udW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsgfQorICAgIHZv
aWQgaW5jcmVtZW50TnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW4oKSB7ICsrbV9udW1iZXJP
ZlNoYWRvd0VsZW1lbnRDaGlsZHJlbjsgaW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOyB9
CisgICAgdm9pZCBkZWNyZW1lbnROdW1iZXJPZlNoYWRvd0VsZW1lbnRDaGlsZHJlbigpIHsgQVNT
RVJUKG1fbnVtYmVyT2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW4gPiAwKTsgLS1tX251bWJlck9mU2hh
ZG93RWxlbWVudENoaWxkcmVuOyBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0KICAg
ICBib29sIGhhc1NoYWRvd0VsZW1lbnRDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVy
T2ZTaGFkb3dFbGVtZW50Q2hpbGRyZW4gPiAwOyB9CiAKLSAgICB2b2lkIGluY3JlbWVudE51bWJl
ck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigpIHsgKyttX251bWJlck9mQ29udGVudEVsZW1lbnRD
aGlsZHJlbjsgfQotICAgIHZvaWQgZGVjcmVtZW50TnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxk
cmVuKCkgeyBBU1NFUlQobV9udW1iZXJPZkNvbnRlbnRFbGVtZW50Q2hpbGRyZW4gPiAwKTsgLS1t
X251bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbjsgfQorICAgIHZvaWQgaW5jcmVtZW50TnVt
YmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuKCkgeyArK21fbnVtYmVyT2ZDb250ZW50RWxlbWVu
dENoaWxkcmVuOyBpbnZhbGlkYXRlSW5zZXJ0aW9uUG9pbnRMaXN0KCk7IH0KKyAgICB2b2lkIGRl
Y3JlbWVudE51bWJlck9mQ29udGVudEVsZW1lbnRDaGlsZHJlbigpIHsgQVNTRVJUKG1fbnVtYmVy
T2ZDb250ZW50RWxlbWVudENoaWxkcmVuID4gMCk7IC0tbV9udW1iZXJPZkNvbnRlbnRFbGVtZW50
Q2hpbGRyZW47IGludmFsaWRhdGVJbnNlcnRpb25Qb2ludExpc3QoKTsgfQogICAgIGJvb2wgaGFz
Q29udGVudEVsZW1lbnRDaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fbnVtYmVyT2ZDb250ZW50
RWxlbWVudENoaWxkcmVuID4gMDsgfQogCiAgICAgdm9pZCBpbmNyZW1lbnROdW1iZXJPZkVsZW1l
bnRTaGFkb3dDaGlsZHJlbigpIHsgKyttX251bWJlck9mRWxlbWVudFNoYWRvd0NoaWxkcmVuOyB9
CkBAIC04OCwxMSArODgsMTYgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIG51bWJlck9mRWxlbWVu
dFNoYWRvd0NoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9udW1iZXJPZkVsZW1lbnRTaGFkb3dD
aGlsZHJlbjsgfQogICAgIGJvb2wgaGFzRWxlbWVudFNoYWRvd0NoaWxkcmVuKCkgY29uc3QgeyBy
ZXR1cm4gbV9udW1iZXJPZkVsZW1lbnRTaGFkb3dDaGlsZHJlbiA+IDA7IH0KIAorICAgIHZvaWQg
aW52YWxpZGF0ZUluc2VydGlvblBvaW50TGlzdCgpOworICAgIGNvbnN0IFZlY3RvcjxJbnNlcnRp
b25Qb2ludCo+JiBlbnN1cmVJbnNlcnRpb25Qb2ludExpc3QoU2hhZG93Um9vdCopOworCiBwcml2
YXRlOgogICAgIEluc2VydGlvblBvaW50KiBtX2luc2VydGlvblBvaW50QXNzaWduZWRUbzsKICAg
ICB1bnNpZ25lZCBtX251bWJlck9mU2hhZG93RWxlbWVudENoaWxkcmVuOwogICAgIHVuc2lnbmVk
IG1fbnVtYmVyT2ZDb250ZW50RWxlbWVudENoaWxkcmVuOwogICAgIHVuc2lnbmVkIG1fbnVtYmVy
T2ZFbGVtZW50U2hhZG93Q2hpbGRyZW47CisgICAgYm9vbCBtX2luc2VydGlvblBvaW50TGlzdElz
VmFsaWQ7CisgICAgVmVjdG9yPEluc2VydGlvblBvaW50Kj4gbV9pbnNlcnRpb25Qb2ludExpc3Q7
CiB9OwogCiBjbGFzcyBDb250ZW50RGlzdHJpYnV0b3Igewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>