<?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>79071</bug_id>
          
          <creation_ts>2012-02-20 20:12:02 -0800</creation_ts>
          <short_desc>ShadowRootList should have recalculation flag instead of ShadowRoot.</short_desc>
          <delta_ts>2012-02-23 18:36:49 -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>77931</blocked>
    
    <blocked>79079</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Shinya Kawanaka">shinyak</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>gustavo</cc>
    
    <cc>hayato</cc>
    
    <cc>morrita</cc>
    
    <cc>pnormand</cc>
    
    <cc>rolandsteiner</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>560583</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-20 20:12:02 -0800</bug_when>
    <thetext>When recalculating ShadowRoot, we want to recalculate all shadow subtrees instead of shadow root.
So ShadowRootList should have those flags instead of ShadowRoot.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560610</commentid>
    <comment_count>1</comment_count>
      <attachid>127911</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-20 21:04:19 -0800</bug_when>
    <thetext>Created attachment 127911
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562894</commentid>
    <comment_count>2</comment_count>
      <attachid>128412</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 23:44:20 -0800</bug_when>
    <thetext>Created attachment 128412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562899</commentid>
    <comment_count>3</comment_count>
      <attachid>128412</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-22 23:49:26 -0800</bug_when>
    <thetext>Comment on attachment 128412
Patch

Attachment 128412 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/11574156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562900</commentid>
    <comment_count>4</comment_count>
      <attachid>128413</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-22 23:50:15 -0800</bug_when>
    <thetext>Created attachment 128413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562913</commentid>
    <comment_count>5</comment_count>
      <attachid>128413</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-23 00:21:35 -0800</bug_when>
    <thetext>Comment on attachment 128413
Patch

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

&gt; Source/WebCore/dom/ShadowRoot.h:77
&gt; +    ShadowRootList* belongingShadowRootList() const;

I think we can just call it parent or parentList. or list?
Honestly I feel this is no longer list.

&gt; Source/WebCore/dom/ShadowRootList.cpp:208
&gt; +    if (hostNode)

Is this possible to null?

&gt; Source/WebCore/dom/ShadowRootList.h:30
&gt; +#include &quot;Node.h&quot;

Why do we need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562926</commentid>
    <comment_count>6</comment_count>
      <attachid>128424</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 00:43:22 -0800</bug_when>
    <thetext>Created attachment 128424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562930</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-02-23 00:44:55 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 128413 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=128413&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRoot.h:77
&gt; &gt; +    ShadowRootList* belongingShadowRootList() const;
&gt; 
&gt; I think we can just call it parent or parentList. or list?
&gt; Honestly I feel this is no longer list.

Yeah, I&apos;m now thinking so.
Let us make another bug to consider a name of ShadowRootList.

BTW, I&apos;ve chosen list() here.

&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRootList.cpp:208
&gt; &gt; +    if (hostNode)
&gt; 
&gt; Is this possible to null?

No. Done.

&gt; 
&gt; &gt; Source/WebCore/dom/ShadowRootList.h:30
&gt; &gt; +#include &quot;Node.h&quot;
&gt; 
&gt; Why do we need this?

Hmm... We don&apos;t need this apparently.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562978</commentid>
    <comment_count>8</comment_count>
      <attachid>128424</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 02:15:17 -0800</bug_when>
    <thetext>Comment on attachment 128424
Patch

Rejecting attachment 128424 from commit-queue.

shinyak@chromium.org does not have committer permissions according to http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in Tools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563751</commentid>
    <comment_count>9</comment_count>
      <attachid>128424</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-02-23 17:37:54 -0800</bug_when>
    <thetext>Comment on attachment 128424
Patch

haraken told me that cq+ bot is somehow rolled back to the older revision. I hope it&apos;ll be fixed soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563804</commentid>
    <comment_count>10</comment_count>
      <attachid>128424</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 18:36:43 -0800</bug_when>
    <thetext>Comment on attachment 128424
Patch

Clearing flags on attachment: 128424

Committed r108713: &lt;http://trac.webkit.org/changeset/108713&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>563805</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-23 18:36:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127911</attachid>
            <date>2012-02-20 21:04:19 -0800</date>
            <delta_ts>2012-02-22 23:44:15 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-79071-20120221140417.patch</filename>
            <type>text/plain</type>
            <size>12898</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMjMw
MTBhMDZjZDc5NmQwYjBkZTU1ODhjOWQzNTVkY2Y3YjA0ZTA5Ni4uNjI2OGYyYTBhMTljMDc4ZGUx
NzcwN2U0MTYyNzE3ZjkyNTc5ZDUwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTEyNywx
MCArMTEyNywxMCBAQCB2b2lkIEVsZW1lbnQ6OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5n
ZSkKICAgICB9CiAgICAgLy8gRklYTUU6IFRoaXMgZG9lcyBub3QgY2FyZSBhYm91dCBzaWJsaW5n
IGNvbWJpbmF0b3JzLiBXaWxsIGJlIG5lY2Vzc2FyeSBpbiBYQkwyIHdvcmxkLgogICAgIGlmICho
YXNTaGFkb3dSb290KCkpIHsKLSAgICAgICAgU2hhZG93Um9vdCogc2hhZG93ID0gc2hhZG93Um9v
dExpc3QoKS0+eW91bmdlc3RTaGFkb3dSb290KCk7Ci0gICAgICAgIGlmIChjaGFuZ2UgPj0gSW5o
ZXJpdCB8fCBzaGFkb3ctPmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHNoYWRvdy0+bmVlZHNT
dHlsZVJlY2FsYygpKSB7CisgICAgICAgIFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9v
dExpc3QoKTsKKyAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IGxpc3QtPmNoaWxkTmVl
ZHNTdHlsZVJlY2FsYygpIHx8IGxpc3QtPm5lZWRzU3R5bGVSZWNhbGMoKSkgewogICAgICAgICAg
ICAgcGFyZW50UHVzaGVyLnB1c2goKTsKLSAgICAgICAgICAgIHNoYWRvdy0+cmVjYWxjU2hhZG93
VHJlZVN0eWxlKGNoYW5nZSk7CisgICAgICAgICAgICBsaXN0LT5yZWNhbGNTaGFkb3dUcmVlU3R5
bGUoY2hhbmdlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTM2MSw4ICsxMzYxLDggQEAgdm9p
ZCBFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIsIE5vZGUqIGJl
Zm9yZUNoYW5nZSwgTm9kZSogYWYKICAgICAgICAgY2hlY2tGb3JTaWJsaW5nU3R5bGVDaGFuZ2Vz
KHRoaXMsIHJlbmRlclN0eWxlKCksIGZhbHNlLCBiZWZvcmVDaGFuZ2UsIGFmdGVyQ2hhbmdlLCBj
aGlsZENvdW50RGVsdGEpOwogCiAgICAgaWYgKGhhc1JhcmVEYXRhKCkpIHsKLSAgICAgICAgaWYg
KFNoYWRvd1Jvb3RMaXN0KiBsaXN0ID0gc2hhZG93Um9vdExpc3QoKSkKLSAgICAgICAgICAgIGxp
c3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKKyAgICAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkK
KyAgICAgICAgICAgIHNoYWRvd1Jvb3RMaXN0KCktPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCmlu
ZGV4IDhlNDViNDEzYWVjZDZlMDJjMjA1MDJlMzhhMTBlYjc0NjlhNGE2OWUuLjQ5MGNmMDg4NmFm
YTM2YzgwZjE0ZWMyMTVhN2Q1Zjk3Yjk2MzY5MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05v
ZGVSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMjU5LDggKzI1OSwxMyBAQCBSZW5kZXJPYmplY3Qq
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwYXJlbnRSZW5kZXJlcigpIGNvbnN0CiAKIHZvaWQgTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6Omhvc3RDaGlsZHJlbkNoYW5nZWQoKQogeworI2lmIDAKICAgICBp
ZiAobV9waGFzZSA9PSBBdHRhY2hpbmdOb3REaXN0cmlidXRlZCkKICAgICAgICAgbV92aXN1YWxQ
YXJlbnRTaGFkb3dSb290LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisjZWxzZQorICAgIGlmICht
X3BoYXNlID09IEF0dGFjaGluZ05vdERpc3RyaWJ1dGVkKQorICAgICAgICBtX3Zpc3VhbFBhcmVu
dFNoYWRvd1Jvb3QtPmhvc3QoKS0+c2hhZG93Um9vdExpc3QoKS0+aG9zdENoaWxkcmVuQ2hhbmdl
ZCgpOworI2VuZGlmCiB9CiAKIGJvb2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNob3VsZENyZWF0
ZVJlbmRlcmVyKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dS
b290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCBlZDkwZjBm
ZWM4MGQ1OGI3OGRmN2JiNzAyNGQxMTQyMGNmNmY1ZmYzLi4xZmY2YWQ5MTE5NDk5ZGQ5M2VkOTY1
MWFjMDAyM2EwODc2ODg5ZDc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zNSw3
ICszNSw2IEBACiAjaW5jbHVkZSAiTm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9v
dExpc3QuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgotI2luY2x1ZGUgIlRleHQuaCIKIAogI2lm
IEVOQUJMRShTSEFET1dfRE9NKQogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIK
QEAgLTQ5LDcgKzQ4LDYgQEAgU2hhZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1l
bnQpCiAgICAgLCBtX3ByZXYoMCkKICAgICAsIG1fbmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhv
clNoZWV0cyhmYWxzZSkKLSAgICAsIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCiB7
CiAgICAgQVNTRVJUKGRvY3VtZW50KTsKICAgICAKQEAgLTE1NywzMCArMTU1LDYgQEAgYm9vbCBT
aGFkb3dSb290OjpjaGlsZFR5cGVBbGxvd2VkKE5vZGVUeXBlIHR5cGUpIGNvbnN0CiAgICAgfQog
fQogCi12b2lkIFNoYWRvd1Jvb3Q6OnJlY2FsY1NoYWRvd1RyZWVTdHlsZShTdHlsZUNoYW5nZSBj
aGFuZ2UpCi17Ci0gICAgaWYgKG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKSkK
LSAgICAgICAgcmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKLSAgICBlbHNlIHsKLSAg
ICAgICAgZm9yIChOb2RlKiBuID0gZmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmco
KSkgewotICAgICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkKLSAgICAgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obiktPnJlY2FsY1N0eWxlKGNoYW5nZSk7Ci0gICAgICAg
ICAgICBlbHNlIGlmIChuLT5pc1RleHROb2RlKCkpCi0gICAgICAgICAgICAgICAgdG9UZXh0KG4p
LT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdlKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNsZWFy
TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIGNsZWFyTmVlZHNTdHls
ZVJlY2FsYygpOwotICAgIGNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Ci19Ci0KLXZvaWQg
U2hhZG93Um9vdDo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCi17Ci0g
ICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IHRydWU7Ci0gICAgaWYgKHNoYWRvd0hvc3Qo
KSkKLSAgICAgICAgc2hhZG93SG9zdCgpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7Ci19CiAKIEhU
TUxDb250ZW50RWxlbWVudCogU2hhZG93Um9vdDo6aW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSogbm9k
ZSkgY29uc3QKIHsKQEAgLTE5MiwxNSArMTY2LDYgQEAgSFRNTENvbnRlbnRFbGVtZW50KiBTaGFk
b3dSb290OjppbnNlcnRpb25Qb2ludEZvcihOb2RlKiBub2RlKSBjb25zdAogICAgIHJldHVybiBm
b3VuZC0+aW5zZXJ0aW9uUG9pbnQoKTsKIH0KIAotdm9pZCBTaGFkb3dSb290Ojpob3N0Q2hpbGRy
ZW5DaGFuZ2VkKCkKLXsKLSAgICBpZiAoIWhhc0NvbnRlbnRFbGVtZW50KCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5nL2F0dGFjaGlu
ZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVjYWxjU3R5bGUo
KS4KLSAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci19Ci0KIGJv
b2wgU2hhZG93Um9vdDo6aXNTZWxlY3RvckFjdGl2ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1f
c2VsZWN0b3IgJiYgbV9zZWxlY3Rvci0+aGFzQ2FuZGlkYXRlcygpOwpAQCAtMjM3LDI1ICsyMDIs
NiBAQCB2b2lkIFNoYWRvd1Jvb3Q6OmF0dGFjaCgpCiAgICAgICAgIG1fc2VsZWN0b3ItPmRpZFNl
bGVjdCgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hh
ZG93KCkKLXsKLSAgICBOb2RlKiBob3N0Tm9kZSA9IGhvc3QoKTsKLSAgICBpZiAoIWhvc3ROb2Rl
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAg
ICAgaWYgKGNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOwot
ICAgIH0KLQotICAgIHJlYXR0YWNoKCk7Ci0KLSAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5v
ZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsK
LSAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIGNoaWxkLT5hdHRh
Y2goKTsKLSAgICB9Ci19Ci0KIEhUTUxDb250ZW50U2VsZWN0b3IqIFNoYWRvd1Jvb3Q6OnNlbGVj
dG9yKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hh
ZG93Um9vdC5oCmluZGV4IDgzZTE3MTM0OTk1MjllNDY0ZDhjMzYwOTliZmRkNWJjMTVmNGMxZTEu
LmJhN2Q3ZTE0MWMyNmY4NGUyYmQ3MGExMTcxZDg3NDEzMWQ5NGRkNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd1Jvb3QuaApAQCAtNTMsMTggKzUzLDEwIEBAIHB1YmxpYzoKICAgICB9OwogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFNoYWRvd1Jvb3Q+IGNyZWF0ZShFbGVtZW50KiwgU2hhZG93Um9vdENyZWF0
aW9uUHVycG9zZSwgRXhjZXB0aW9uQ29kZSYgPSBBU1NFUlRfTk9fRVhDRVBUSU9OKTsKIAotICAg
IHZvaWQgcmVjYWxjU2hhZG93VHJlZVN0eWxlKFN0eWxlQ2hhbmdlKTsKLQotICAgIHZvaWQgc2V0
TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIHZvaWQgY2xlYXJOZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgYm9vbCBuZWVkc1JlYXR0YWNo
SG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0KICAgICBIVE1MQ29udGVudEVsZW1lbnQqIGluc2Vy
dGlvblBvaW50Rm9yKE5vZGUqKSBjb25zdDsKLSAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQo
KTsKICAgICBib29sIGlzU2VsZWN0b3JBY3RpdmUoKSBjb25zdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBhdHRhY2goKTsKLSAgICB2b2lkIHJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAK
ICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlBdXRob3JTaGVldHMoKSBjb25zdDsKICAgICB2b2lkIHNl
dEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wpOwpAQCAtNzcsNiArNjksOCBAQCBwdWJsaWM6CiAgICAg
U2hhZG93Um9vdCogeW91bmdlclNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBwcmV2KCk7IH0K
ICAgICBTaGFkb3dSb290KiBvbGRlclNoYWRvd1Jvb3QoKSBjb25zdCB7IHJldHVybiBuZXh0KCk7
IH0KIAorICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICBTaGFkb3dSb290KERvY3VtZW50Kik7CiAgICAgdmlydHVhbCB+U2hhZG93Um9vdCgpOwpAQCAt
ODUsMjUgKzc5LDEyIEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBQYXNzUmVmUHRyPE5vZGU+IGNs
b25lTm9kZShib29sIGRlZXApOwogICAgIHZpcnR1YWwgYm9vbCBjaGlsZFR5cGVBbGxvd2VkKE5v
ZGVUeXBlKSBjb25zdDsKIAotICAgIGJvb2wgaGFzQ29udGVudEVsZW1lbnQoKSBjb25zdDsKLQog
ICAgIFNoYWRvd1Jvb3QqIG1fcHJldjsKICAgICBTaGFkb3dSb290KiBtX25leHQ7CiAgICAgYm9v
bCBtX2FwcGx5QXV0aG9yU2hlZXRzIDogMTsKLSAgICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNv
bnRlbnQgOiAxOwogICAgIE93blB0cjxIVE1MQ29udGVudFNlbGVjdG9yPiBtX3NlbGVjdG9yOwog
fTsKIAotaW5saW5lIHZvaWQgU2hhZG93Um9vdDo6Y2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxk
cmVuQW5kU2hhZG93KCkKLXsKLSAgICBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50ID0gZmFsc2U7
Ci19Ci0KLWlubGluZSBib29sIFNoYWRvd1Jvb3Q6Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKQotewotICAgIHJldHVybiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IHx8IGhh
c0NvbnRlbnRFbGVtZW50KCk7Ci19Ci0KIGlubGluZSBTaGFkb3dSb290KiB0b1NoYWRvd1Jvb3Qo
Tm9kZSogbm9kZSkKIHsKICAgICBBU1NFUlQoIW5vZGUgfHwgbm9kZS0+aXNTaGFkb3dSb290KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKaW5kZXggZDE5NTVhYWVlNjAwZjA0
NzEwZTFhNGIzOWYzOTA2Y2VlMjUxMzI0My4uNDE4MjdlZDIzYWVhMThiN2FmZGJmN2JlYzhlM2Yy
ZGY3ZjRlMTNlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCkBAIC0zMSwx
MCArMzEsMTIgQEAKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiUnVudGltZUVuYWJs
ZWRGZWF0dXJlcy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKKyNpbmNsdWRlICJUZXh0Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2hhZG93Um9vdExpc3Q6OlNoYWRvd1Jvb3RMaXN0
KCkKKyAgICA6IG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCiB7CiB9CiAKQEAgLTkz
LDEyICs5NSw2IEBAIHZvaWQgU2hhZG93Um9vdExpc3Q6OndpbGxSZW1vdmUoKQogICAgICAgICBy
b290LT53aWxsUmVtb3ZlKCk7CiB9CiAKLXZvaWQgU2hhZG93Um9vdExpc3Q6Omhvc3RDaGlsZHJl
bkNoYW5nZWQoKQotewotICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpCi0gICAgICAgIHJv
b3QtPmhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKLX0KLQogdm9pZCBTaGFkb3dSb290TGlzdDo6YXR0
YWNoKCkKIHsKICAgICAvLyBGSVhNRTogQ3VycmVudGx5IHdlIG9ubHkgc3VwcG9ydCB0aGUgY2Fz
ZSB0aGF0IHRoZSBzaGFkb3cgcm9vdCBsaXN0IGhhcyBhdCBtb3N0IG9uZSBzaGFkb3cgcm9vdC4K
QEAgLTEyMyw0ICsxMTksOTcgQEAgdm9pZCBTaGFkb3dSb290TGlzdDo6ZGV0YWNoKCkKICAgICB9
CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlYXR0YWNoKCkKK3sKKyAgICBkZXRhY2goKTsK
KyAgICBhdHRhY2goKTsKK30KKworYm9vbCBTaGFkb3dSb290TGlzdDo6Y2hpbGROZWVkc1N0eWxl
UmVjYWxjKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOworICAgIGlmICgh
eW91bmdlc3RTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVy
biB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK2Jv
b2wgU2hhZG93Um9vdExpc3Q6Om5lZWRzU3R5bGVSZWNhbGMoKQoreworICAgIEFTU0VSVCh5b3Vu
Z2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgaWYgKCF5b3VuZ2VzdFNoYWRvd1Jvb3QoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5uZWVk
c1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlY2FsY1NoYWRvd1Ry
ZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgU2hhZG93Um9vdCogeW91
bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIXlvdW5nZXN0KQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygp
KQorICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGVsc2Ugewor
ICAgICAgICBmb3IgKE5vZGUqIG4gPSB5b3VuZ2VzdC0+Zmlyc3RDaGlsZCgpOyBuOyBuID0gbi0+
bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkKKyAg
ICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obiktPnJlY2FsY1N0eWxlKGNoYW5n
ZSk7CisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1RleHROb2RlKCkpCisgICAgICAgICAgICAg
ICAgdG9UZXh0KG4pLT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdlKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHlv
dW5nZXN0LT5jbGVhck5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICB5b3VuZ2VzdC0+Y2xlYXJDaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKworYm9vbCBTaGFkb3dSb290TGlzdDo6bmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgcmV0dXJuIG1fbmVlZHNSZWNhbGN1
bGF0ZUNvbnRlbnQgfHwgKHlvdW5nZXN0U2hhZG93Um9vdCgpICYmIHlvdW5nZXN0U2hhZG93Um9v
dCgpLT5oYXNDb250ZW50RWxlbWVudCgpKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6aG9z
dENoaWxkcmVuQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsK
KworICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCktPmhhc0NvbnRlbnRFbGVtZW50KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5n
L2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVj
YWxjU3R5bGUoKS4KKyAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7
Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKQoreworICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSB0cnVlOworICAg
IEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisKKyAgICBOb2RlKiBob3N0Tm9kZSA9IHlv
dW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7CisgICAgaWYgKGhvc3ROb2RlKQorICAgICAgICBo
b3N0Tm9kZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0
OjpyZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0
U2hhZG93Um9vdCgpKTsKKworICAgIE5vZGUqIGhvc3ROb2RlID0geW91bmdlc3RTaGFkb3dSb290
KCktPmhvc3QoKTsKKyAgICBpZiAoIWhvc3ROb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5hdHRhY2hlZCgpKQor
ICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOworICAgIH0KKworICAgIHJlYXR0YWNoKCk7CisK
KyAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNo
ZWQoKSkKKyAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKKyAgICB9Cit9CisKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggZGJlYzc5NTQ2NDNlNjU4YTM0MGU3NmE5MjEw
YzA5ZWU5ODBmMDQ3OS4uMWM0MzhmN2RjMGY1MTYzZjY4ZDUyOGM2NDQzNjBmNTE0NTczZTA4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5k
ZWYgU2hhZG93Um9vdExpc3RfaAogI2RlZmluZSBTaGFkb3dSb290TGlzdF9oCiAKKyNpbmNsdWRl
ICJOb2RlLmgiCiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgpAQCAtNTQsMTMg
KzU1LDIzIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApOwog
ICAgIHZvaWQgd2lsbFJlbW92ZSgpOwogCi0gICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7
Ci0KICAgICB2b2lkIGF0dGFjaCgpOwogICAgIHZvaWQgZGV0YWNoKCk7CisgICAgdm9pZCByZWF0
dGFjaCgpOworCisgICAgYm9vbCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBib29sIG5l
ZWRzU3R5bGVSZWNhbGMoKTsKKyAgICB2b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpT
dHlsZUNoYW5nZSk7CisgICAgdm9pZCBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hh
ZG93KCk7CisgICAgdm9pZCBjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3co
KTsKKyAgICBib29sIG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICB2
b2lkIHJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgdm9pZCBob3N0Q2hpbGRy
ZW5DaGFuZ2VkKCk7CiAKIHByaXZhdGU6CiAgICAgRG91Ymx5TGlua2VkTGlzdDxTaGFkb3dSb290
PiBtX3NoYWRvd1Jvb3RzOworICAgIGJvb2wgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA6IDE7
CisKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dSb290TGlzdCk7CiB9OwogCkBAIC03
OSw2ICs5MCwxMSBAQCBpbmxpbmUgU2hhZG93Um9vdCogU2hhZG93Um9vdExpc3Q6Om9sZGVzdFNo
YWRvd1Jvb3QoKQogICAgIHJldHVybiBtX3NoYWRvd1Jvb3RzLnRhaWwoKTsKIH0KIAoraW5saW5l
IHZvaWQgU2hhZG93Um9vdExpc3Q6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNo
YWRvdygpCit7CisgICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IGZhbHNlOworfQorCiB9
IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDZhNmI4OWJmYWFkYzQ5N2E0NWIxMDA3ZTFk
ZTYzNzI3OTEyMTEzNDkuLmM5MDA1MDQ2YzkzMDE4MTEzNTg5N2Y5MTJhZWJhODVkNGMzYjQ2YWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50
LmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
IlF1YWxpZmllZE5hbWUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5jbHVkZSAiU2hh
ZG93Um9vdExpc3QuaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTk1LDcgKzk2LDExIEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50Ojpk
ZXRhY2goKQogCiAgICAgICAgIC8vIFdoZW4gY29udGVudCBlbGVtZW50IGlzIGRldGFjaGVkLCBz
aGFkb3cgdHJlZSBzaG91bGQgYmUgcmVjcmVhdGVkIHRvIHJlLWNhbGN1bGF0ZSBzZWxlY3RvciBm
b3IKICAgICAgICAgLy8gb3RoZXIgY29udGVudCBlbGVtZW50cy4KKyNpZiAxCisgICAgICAgIHJv
b3QtPmhvc3QoKS0+c2hhZG93Um9vdExpc3QoKS0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJl
bkFuZFNoYWRvdygpOworI2Vsc2UKICAgICAgICAgcm9vdC0+c2V0TmVlZHNSZWF0dGFjaEhvc3RD
aGlsZHJlbkFuZFNoYWRvdygpOworI2VuZGlmCiAgICAgfQogCiAgICAgQVNTRVJUKG1fc2VsZWN0
aW9ucy0+aXNFbXB0eSgpKTsKQEAgLTEyMSw4ICsxMjYsMTMgQEAgdm9pZCBIVE1MQ29udGVudEVs
ZW1lbnQ6OnNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmIHNlbGVjdFZhbHVlKQogdm9pZCBI
VE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cikKIHsKICAg
ICBpZiAoYXR0ci0+bmFtZSgpID09IHNlbGVjdEF0dHIpIHsKLSAgICAgICAgaWYgKFNoYWRvd1Jv
b3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKQorICAgICAgICBp
ZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkp
IHsKKyNpZiAwCiAgICAgICAgICAgICByb290LT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCk7CisjZWxzZQorICAgICAgICAgICAgcm9vdC0+aG9zdCgpLT5zaGFkb3dSb290
TGlzdCgpLT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisjZW5kaWYK
KyAgICAgICAgfQogICAgIH0gZWxzZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRy
aWJ1dGUoYXR0cik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128412</attachid>
            <date>2012-02-22 23:44:20 -0800</date>
            <delta_ts>2012-02-22 23:50:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79071-20120223164419.patch</filename>
            <type>text/plain</type>
            <size>15944</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uMTBlMGYzYjA1NzVjMTc0ZWVhODVmMzZlMTVkZWJj
ZTcxM2NiYTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTaGFkb3dSb290
TGlzdCBzaG91bGQgaGF2ZSByZWNhbGN1bGF0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwNzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGxp
Z2h0IGNoaWxkcmVuIG9yIHNoYWRvdyBjaGlsZHJlbiBhcmUgY2hhbmdlZCwgd2UgY3VycmVudGx5
IHJlLWNvbnN0cnVjdCBhIHNoYWRvdyBzdWJ0cmVlLgorICAgICAgICBIb3dldmVyLCB3aGVuIHN1
cHBvcnRpbmcgbXVsdGlwbGUgc2hhZG93IHN1YnRyZWVzLCBhbGwgc2hhZG93IHN1YnRyZWVzIHNo
b3VsZCBiZSByZS1jb25zdHJ1Y3RlZC4KKyAgICAgICAgU28gU2hhZG93Um9vdExpc3Qgc2hvdWxk
IGhhdmUgcmUtY29uc3RydWN0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290LgorCisgICAg
ICAgIEFsc28sIHJlLWNvbnN0cnVjdGlvbiBtZXRob2RzIGluIFNoYWRvd1Jvb3Qgc2hvdWxkIGJl
IG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2hvdWxk
IGJlIGNvbnZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6YmVsb25naW5nU2hhZG93Um9vdExpc3QpOgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3Qp
OgorICAgICAgICAqIGRvbS9TaGFkb3dSb290TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdExpc3Q6OnJlYXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6OmNoaWxkTmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290TGlzdDo6bmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dSb290TGlzdDo6cmVjYWxjU2hhZG93VHJlZVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3RMaXN0OjpuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpzZXROZWVkc1JlYXR0YWNoSG9zdENo
aWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpyZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRy
ZW5BbmRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnNlbGVjdG9y
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisKIDIwMTItMDItMjIgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBHZW9sb2NhdGlvbiBi
aW5kaW5ncyBmb3IgR09iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDlmMjYxOTU3MjQy
MWRhMzhjMzllYjFjMThiZDkzY2U3NjM4NWI5YTMuLmVkYzVhNjJlZjQwMzRhNzdkZjkxMjlmNTlk
YjhkNjE2OTVmZjE0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExMjYsMTAgKzExMjYs
MTAgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
fQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5h
dG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4KICAgICBpZiAoaGFzU2hhZG93
Um9vdCgpKSB7Ci0gICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCkt
PnlvdW5nZXN0U2hhZG93Um9vdCgpOwotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwg
c2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNh
bGMoKSkgeworICAgICAgICBTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCk7
CisgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBsaXN0LT5jaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKSB8fCBsaXN0LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVu
dFB1c2hlci5wdXNoKCk7Ci0gICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1NoYWRvd1RyZWVTdHls
ZShjaGFuZ2UpOworICAgICAgICAgICAgbGlzdC0+cmVjYWxjU2hhZG93VHJlZVN0eWxlKGNoYW5n
ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzNjAsOCArMTM2MCw4IEBAIHZvaWQgRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFu
Z2UsIE5vZGUqIGFmCiAgICAgICAgIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyh0aGlzLCBy
ZW5kZXJTdHlsZSgpLCBmYWxzZSwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3Vu
dERlbHRhKTsKIAogICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7Ci0gICAgICAgIGlmIChTaGFkb3dS
b290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCi0gICAgICAgICAgICBsaXN0LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIGlmIChoYXNTaGFkb3dSb290KCkpCisgICAgICAg
ICAgICBzaGFkb3dSb290TGlzdCgpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyNDA4
ZjJhN2VmNzY4YzYxY2NhYjQ5N2I4MGNmNjJiMTMzODQyZjY2Li4yNjI3NjAxMzkxZTIyYWMzYjc3
N2E0YWQ4OGNkNTQzNmY2NmZhMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpwYXJlbnRSZW5kZXJlcigpIGNvbnN0CiB2b2lkIE5vZGVSZW5kZXJpbmdD
b250ZXh0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsKICAgICBpZiAobV9waGFzZSA9PSBBdHRh
Y2hpbmdOb3REaXN0cmlidXRlZCkKLSAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290LT5o
b3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdC0+
aG9zdCgpLT5zaGFkb3dSb290TGlzdCgpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiB9CiAKIGJv
b2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNob3VsZENyZWF0ZVJlbmRlcmVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAwNjI2MDIyZWMxNTQ5YmIyMzRhYWEwOGU5YWQw
NWM3NDI5NjdkZWM4Li5iYWVkN2U3YmRiMjc3ZDYyODUxOWQ3ZjBiYmE5Y2RlYWNiM2MyYTg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgotI2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTSEFET1dfRE9NKQog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTUwLDcgKzQ5LDYgQEAgU2hh
ZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkK
ICAgICAsIG1fbmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKLSAgICAs
IG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50
KTsKICAgICAKQEAgLTE1OSwzOCArMTU3LDExIEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBl
QWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIH0KIH0KIAotdm9pZCBTaGFkb3dSb290
OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQorU2hhZG93Um9vdExp
c3QqIFNoYWRvd1Jvb3Q6OmJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCkgY29uc3QKIHsKLSAgICBp
ZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpKQotICAgICAgICByZWF0dGFj
aEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKE5vZGUq
IG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG4t
PmlzVGV4dE5vZGUoKSkKLSAgICAgICAgICAgICAgICB0b1RleHQobiktPnJlY2FsY1RleHRTdHls
ZShjaGFuZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY2xlYXJOZWVkc1JlYXR0YWNoSG9z
dENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAg
Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotdm9pZCBTaGFkb3dSb290OjpzZXRO
ZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBtX25lZWRzUmVjYWxj
dWxhdGVDb250ZW50ID0gdHJ1ZTsKLSAgICBpZiAoc2hhZG93SG9zdCgpKQotICAgICAgICBzaGFk
b3dIb3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotdm9pZCBTaGFkb3dSb290Ojpo
b3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAgICBpZiAoIWhhc0NvbnRlbnRFbGVtZW50KCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5n
L2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVj
YWxjU3R5bGUoKS4KLSAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7
CisgICAgaWYgKGhvc3QoKSkKKyAgICAgICAgcmV0dXJuIGhvc3QoKS0+c2hhZG93Um9vdExpc3Qo
KTsKKyAgICByZXR1cm4gMDsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVu
dCgpIGNvbnN0CkBAIC0yMjYsMjMgKzE5Nyw0IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkK
ICAgICAgICAgc2VsZWN0b3ItPmRpZFNlbGVjdCgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnJl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBOb2RlKiBob3N0Tm9kZSA9IGhv
c3QoKTsKLSAgICBpZiAoIWhvc3ROb2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKE5v
ZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAg
ICAgICAgY2hpbGQtPmRldGFjaCgpOwotICAgIH0KLQotICAgIHJlYXR0YWNoKCk7Ci0KLSAgICBm
b3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkK
LSAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKLSAgICB9CiB9Ci0KLX0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBkM2JmMzUxMjY0Y2ZkMzJiNmZlM2MxNDU0N2I4
YWZkNTBlYmMxNmQzLi5jNDU0OTA1YjUzZGZhNGFiMDYyZjc0YTRlNzcxMjkwMDJhNDkwOWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudFNlbGVjdG9yOwog
Y2xhc3MgSW5zZXJ0aW9uUG9pbnQ7CitjbGFzcyBTaGFkb3dSb290TGlzdDsKIAogY2xhc3MgU2hh
ZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJs
aWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4gewogICAgIGZyaWVuZCBjbGFzcyBX
VEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwpAQCAtNjQsNyArNjUsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7Ci0gICAgdm9pZCByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwog
CiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKQEAgLTc0LDYgKzc0LDEwIEBAIHB1YmxpYzoKICAg
ICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIHsgcmV0dXJuIHByZXYoKTsgfQogICAg
IFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIHsgcmV0dXJuIG5leHQoKTsgfQogCisgICAg
U2hhZG93Um9vdExpc3QqIGJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCkgY29uc3Q7CisKKyAgICBi
b29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgU2hhZG93Um9v
dChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNoYWRvd1Jvb3QoKTsKQEAgLTgyLDI0ICs4Niwx
MSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9v
bCBkZWVwKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29u
c3Q7CiAKLSAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7Ci0KICAgICBTaGFkb3dS
b290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1
dGhvclNoZWV0cyA6IDE7Ci0gICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsK
IH07CiAKLWlubGluZSB2b2lkIFNoYWRvd1Jvb3Q6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IGZhbHNl
OwotfQotCi1pbmxpbmUgYm9vbCBTaGFkb3dSb290OjpuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCkKLXsKLSAgICByZXR1cm4gbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCB8fCBo
YXNDb250ZW50RWxlbWVudCgpOwotfQotCiBpbmxpbmUgU2hhZG93Um9vdCogdG9TaGFkb3dSb290
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlzU2hhZG93Um9vdCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCmluZGV4IDI2NDc2NGU3MmY0NzMw
YmUwZmIyYjZhZmM5NzExMDMzNTJjMzEzNGQuLjAxNTJlMmUyYzA0YzJhN2NkMWM3NjJjYTNkMzky
MDc3MjZhNjAyZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAtMzIs
MTAgKzMyLDEyIEBACiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5j
bHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNoYWRvd1Jvb3RMaXN0OjpT
aGFkb3dSb290TGlzdCgpCisgICAgOiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQog
ewogfQogCkBAIC05NCwxMiArOTYsNiBAQCB2b2lkIFNoYWRvd1Jvb3RMaXN0Ojp3aWxsUmVtb3Zl
KCkKICAgICAgICAgcm9vdC0+d2lsbFJlbW92ZSgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3RMaXN0
Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KQotICAgICAgICByb290LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci19Ci0KIHZvaWQgU2hhZG93
Um9vdExpc3Q6OmF0dGFjaCgpCiB7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBvbmx5IHN1
cHBvcnQgdGhlIGNhc2UgdGhhdCB0aGUgc2hhZG93IHJvb3QgbGlzdCBoYXMgYXQgbW9zdCBvbmUg
c2hhZG93IHJvb3QuCkBAIC0xMzksNiArMTM1LDEwMSBAQCBib29sIFNoYWRvd1Jvb3RMaXN0Ojpp
c1NlbGVjdG9yQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV9zZWxlY3RvciAmJiBtX3NlbGVj
dG9yLT5oYXNDYW5kaWRhdGVzKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlYXR0YWNo
KCkKK3sKKyAgICBkZXRhY2goKTsKKyAgICBhdHRhY2goKTsKK30KKworYm9vbCBTaGFkb3dSb290
TGlzdDo6Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFk
b3dSb290KCkpOworICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+Y2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7Cit9CisKK2Jvb2wgU2hhZG93Um9vdExpc3Q6Om5lZWRzU3R5bGVSZWNhbGMo
KQoreworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgaWYgKCF5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHlvdW5n
ZXN0U2hhZG93Um9vdCgpLT5uZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9v
dExpc3Q6OnJlY2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCit7
CisgICAgU2hhZG93Um9vdCogeW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBp
ZiAoIXlvdW5nZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmVlZHNSZWF0dGFjaEhv
c3RDaGlsZHJlbkFuZFNoYWRvdygpKQorICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNo
YWRvdygpOworICAgIGVsc2UgeworICAgICAgICBmb3IgKE5vZGUqIG4gPSB5b3VuZ2VzdC0+Zmly
c3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG4t
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
biktPnJlY2FsY1N0eWxlKGNoYW5nZSk7CisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1RleHRO
b2RlKCkpCisgICAgICAgICAgICAgICAgdG9UZXh0KG4pLT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdl
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJl
bkFuZFNoYWRvdygpOworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXN0U2hhZG93Um9vdCgpKSB7CisgICAgICAg
IHJvb3QtPmNsZWFyTmVlZHNTdHlsZVJlY2FsYygpOworICAgICAgICByb290LT5jbGVhckNoaWxk
TmVlZHNTdHlsZVJlY2FsYygpOworICAgIH0KK30KKworYm9vbCBTaGFkb3dSb290TGlzdDo6bmVl
ZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgcmV0dXJuIG1fbmVlZHNS
ZWNhbGN1bGF0ZUNvbnRlbnQgfHwgKHlvdW5nZXN0U2hhZG93Um9vdCgpICYmIHlvdW5nZXN0U2hh
ZG93Um9vdCgpLT5oYXNDb250ZW50RWxlbWVudCgpKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlz
dDo6aG9zdENoaWxkcmVuQ2hhbmdlZCgpCit7CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9v
dCgpKTsKKworICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCktPmhhc0NvbnRlbnRFbGVtZW50
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0
YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9v
dDo6cmVjYWxjU3R5bGUoKS4KKyAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hh
ZG93KCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hp
bGRyZW5BbmRTaGFkb3coKQoreworICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSB0cnVl
OworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisKKyAgICBOb2RlKiBob3N0Tm9k
ZSA9IHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7CisgICAgaWYgKGhvc3ROb2RlKQorICAg
ICAgICBob3N0Tm9kZS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOworfQorCit2b2lkIFNoYWRvd1Jv
b3RMaXN0OjpyZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgQVNTRVJUKHlv
dW5nZXN0U2hhZG93Um9vdCgpKTsKKworICAgIE5vZGUqIGhvc3ROb2RlID0geW91bmdlc3RTaGFk
b3dSb290KCktPmhvc3QoKTsKKyAgICBpZiAoIWhvc3ROb2RlKQorICAgICAgICByZXR1cm47CisK
KyAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNo
aWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5hdHRhY2hl
ZCgpKQorICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOworICAgIH0KKworICAgIHJlYXR0YWNo
KCk7CisKKyAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hp
bGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKKyAgICAgICAgaWYgKCFjaGlsZC0+
YXR0YWNoZWQoKSkKKyAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKKyAgICB9Cit9CisKIEhU
TUxDb250ZW50U2VsZWN0b3IqIFNoYWRvd1Jvb3RMaXN0OjplbnN1cmVTZWxlY3RvcigpCiB7CiAg
ICAgaWYgKCFtX3NlbGVjdG9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d1Jvb3RMaXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuaAppbmRleCAy
YjQ5ODQ5M2E4NDY3ZWZhOWEwZjYyMzUxMzhjNmRlZDQ0MmIwNjVkLi5kYjU0MDg0Y2JhNjFlYzk3
NjY3OWU4Yzc2NjgwODhmZjlhYzViNjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdExpc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3Qu
aApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBTaGFkb3dSb290TGlzdF9oCiAjZGVmaW5lIFNo
YWRvd1Jvb3RMaXN0X2gKIAorI2luY2x1ZGUgIk5vZGUuaCIKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAjaW5jbHVkZSA8d3RmL0RvdWJseUxpbmtlZExpc3QuaD4KICNpbmNsdWRlIDx3dGYvTm9u
Y29weWFibGUuaD4KQEAgLTM3LDggKzM4LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBOb2RlOwogY2xhc3MgRWxlbWVudDsKLWNsYXNzIEhUTUxDb250ZW50RWxlbWVudDsKIGNsYXNz
IEhUTUxDb250ZW50U2VsZWN0b3I7CitjbGFzcyBJbnNlcnRpb25Qb2ludDsKIAogY2xhc3MgU2hh
ZG93Um9vdExpc3QgewogcHVibGljOgpAQCAtNTgsMTAgKzU5LDE4IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRlZXApOwogICAgIHZvaWQgd2lsbFJlbW92ZSgpOwog
Ci0gICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci0KICAgICB2b2lkIGF0dGFjaCgpOwog
ICAgIHZvaWQgZGV0YWNoKCk7CisgICAgdm9pZCByZWF0dGFjaCgpOworCisgICAgYm9vbCBjaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICB2
b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSk7CisgICAgdm9pZCBz
ZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgdm9pZCBjbGVhck5l
ZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICBib29sIG5lZWRzUmVhdHRh
Y2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICB2b2lkIHJlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCk7CisgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICBJbnNl
cnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnRGb3IoTm9kZSopIGNvbnN0OwogCkBAIC03NSw2ICs4
NCw3IEBAIHByaXZhdGU6CiAKICAgICBEb3VibHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hh
ZG93Um9vdHM7CiAgICAgT3duUHRyPEhUTUxDb250ZW50U2VsZWN0b3I+IG1fc2VsZWN0b3I7Cisg
ICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsKICAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShTaGFkb3dSb290TGlzdCk7CiB9OwogCkBAIC05OCw2ICsxMDgsMTEgQEAgaW5saW5l
IEhUTUxDb250ZW50U2VsZWN0b3IqIFNoYWRvd1Jvb3RMaXN0OjpzZWxlY3RvcigpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fc2VsZWN0b3IuZ2V0KCk7CiB9CiAKK2lubGluZSB2b2lkIFNoYWRvd1Jvb3RM
aXN0OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQoreworICAgIG1f
bmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSBmYWxzZTsKK30KKwogaW5saW5lIEVsZW1lbnQqIFNo
YWRvd1Jvb3RMaXN0Ojpob3N0KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwCmluZGV4IDA2YmUyMzAzODhlZTE5MTA4NTM3YzQzOGI2MjVhNmFhZDBjZWQ3NmEuLjA1Y2Zl
ODRiYjkzYTE1OWExZmI0ZTMzOTBmNjViYjEyZTQ0YTZiMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNzQsNyArNzQsNyBA
QCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKCkKIAogICAgIC8vIEJlZm9yZSBjYWxs
aW5nIFN0eWxlZEVsZW1lbnQ6OmF0dGFjaCwgc2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgog
ICAgIGlmIChyb290KSB7Ci0gICAgICAgIEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0g
cm9vdC0+aG9zdCgpLT5zaGFkb3dSb290TGlzdCgpLT5lbnN1cmVTZWxlY3RvcigpOworICAgICAg
ICBIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmJlbG9uZ2luZ1NoYWRvd1Jv
b3RMaXN0KCktPmVuc3VyZVNlbGVjdG9yKCk7CiAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgm
bV9zZWxlY3Rpb25zKTsKICAgICAgICAgc2VsZWN0b3ItPnNlbGVjdCh0aGlzLCAmbV9zZWxlY3Rp
b25zKTsKICAgICB9CkBAIC05MCwxMiArOTAsMTIgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6
OmF0dGFjaCgpCiB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6ZGV0YWNoKCkKIHsKICAgICBpZiAo
U2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSkpIHsK
LSAgICAgICAgaWYgKEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+aG9zdCgp
LT5zaGFkb3dSb290TGlzdCgpLT5zZWxlY3RvcigpKQorICAgICAgICBpZiAoSFRNTENvbnRlbnRT
ZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5iZWxvbmdpbmdTaGFkb3dSb290TGlzdCgpLT5zZWxl
Y3RvcigpKQogICAgICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwog
CiAgICAgICAgIC8vIFdoZW4gY29udGVudCBlbGVtZW50IGlzIGRldGFjaGVkLCBzaGFkb3cgdHJl
ZSBzaG91bGQgYmUgcmVjcmVhdGVkIHRvIHJlLWNhbGN1bGF0ZSBzZWxlY3RvciBmb3IKICAgICAg
ICAgLy8gb3RoZXIgY29udGVudCBlbGVtZW50cy4KLSAgICAgICAgcm9vdC0+c2V0TmVlZHNSZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgICAgICByb290LT5iZWxvbmdpbmdTaGFk
b3dSb290TGlzdCgpLT5zZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAg
ICAgfQogCiAgICAgQVNTRVJUKG1fc2VsZWN0aW9ucy5pc0VtcHR5KCkpOwpAQCAtMTIyLDcgKzEy
Miw3IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUq
IGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBzZWxlY3RBdHRyKSB7CiAgICAgICAg
IGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KSkKLSAgICAgICAgICAgIHJvb3QtPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFk
b3coKTsKKyAgICAgICAgICAgIHJvb3QtPmJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCktPnNldE5l
ZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAgICB9IGVsc2UKICAgICAgICAg
SW5zZXJ0aW9uUG9pbnQ6OnBhcnNlQXR0cmlidXRlKGF0dHIpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128413</attachid>
            <date>2012-02-22 23:50:15 -0800</date>
            <delta_ts>2012-02-23 00:43:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79071-20120223165014.patch</filename>
            <type>text/plain</type>
            <size>15943</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uMTBlMGYzYjA1NzVjMTc0ZWVhODVmMzZlMTVkZWJj
ZTcxM2NiYTg0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDEyLTAyLTIyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTaGFkb3dSb290
TGlzdCBzaG91bGQgaGF2ZSByZWNhbGN1bGF0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwNzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGxp
Z2h0IGNoaWxkcmVuIG9yIHNoYWRvdyBjaGlsZHJlbiBhcmUgY2hhbmdlZCwgd2UgY3VycmVudGx5
IHJlLWNvbnN0cnVjdCBhIHNoYWRvdyBzdWJ0cmVlLgorICAgICAgICBIb3dldmVyLCB3aGVuIHN1
cHBvcnRpbmcgbXVsdGlwbGUgc2hhZG93IHN1YnRyZWVzLCBhbGwgc2hhZG93IHN1YnRyZWVzIHNo
b3VsZCBiZSByZS1jb25zdHJ1Y3RlZC4KKyAgICAgICAgU28gU2hhZG93Um9vdExpc3Qgc2hvdWxk
IGhhdmUgcmUtY29uc3RydWN0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290LgorCisgICAg
ICAgIEFsc28sIHJlLWNvbnN0cnVjdGlvbiBtZXRob2RzIGluIFNoYWRvd1Jvb3Qgc2hvdWxkIGJl
IG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2hvdWxk
IGJlIGNvbnZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6YmVsb25naW5nU2hhZG93Um9vdExpc3QpOgorICAgICAgICAqIGRv
bS9TaGFkb3dSb290Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3Qp
OgorICAgICAgICAqIGRvbS9TaGFkb3dSb290TGlzdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
aGFkb3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdExpc3Q6OnJlYXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6U2hhZG93Um9vdExpc3Q6OmNoaWxkTmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJD
b3JlOjpTaGFkb3dSb290TGlzdDo6bmVlZHNTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3Jl
OjpTaGFkb3dSb290TGlzdDo6cmVjYWxjU2hhZG93VHJlZVN0eWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OlNoYWRvd1Jvb3RMaXN0OjpuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKToK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpzZXROZWVkc1JlYXR0YWNoSG9zdENo
aWxkcmVuQW5kU2hhZG93KToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpyZWF0
dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3RMaXN0
Lmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFNoYWRvd1Jvb3RMaXN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRy
ZW5BbmRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnNlbGVjdG9y
KToKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENv
bnRlbnRFbGVtZW50OjpwYXJzZUF0dHJpYnV0ZSk6CisKIDIwMTItMDItMjIgIEtlbnRhcm8gSGFy
YSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEVuYWJsZSBHZW9sb2NhdGlvbiBi
aW5kaW5ncyBmb3IgR09iamVjdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDlmMjYxOTU3MjQy
MWRhMzhjMzllYjFjMThiZDkzY2U3NjM4NWI5YTMuLmVkYzVhNjJlZjQwMzRhNzdkZjkxMjlmNTlk
YjhkNjE2OTVmZjE0MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTExMjYsMTAgKzExMjYs
MTAgQEAgdm9pZCBFbGVtZW50OjpyZWNhbGNTdHlsZShTdHlsZUNoYW5nZSBjaGFuZ2UpCiAgICAg
fQogICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90IGNhcmUgYWJvdXQgc2libGluZyBjb21iaW5h
dG9ycy4gV2lsbCBiZSBuZWNlc3NhcnkgaW4gWEJMMiB3b3JsZC4KICAgICBpZiAoaGFzU2hhZG93
Um9vdCgpKSB7Ci0gICAgICAgIFNoYWRvd1Jvb3QqIHNoYWRvdyA9IHNoYWRvd1Jvb3RMaXN0KCkt
PnlvdW5nZXN0U2hhZG93Um9vdCgpOwotICAgICAgICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwg
c2hhZG93LT5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBzaGFkb3ctPm5lZWRzU3R5bGVSZWNh
bGMoKSkgeworICAgICAgICBTaGFkb3dSb290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCk7
CisgICAgICAgIGlmIChjaGFuZ2UgPj0gSW5oZXJpdCB8fCBsaXN0LT5jaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKSB8fCBsaXN0LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIHBhcmVu
dFB1c2hlci5wdXNoKCk7Ci0gICAgICAgICAgICBzaGFkb3ctPnJlY2FsY1NoYWRvd1RyZWVTdHls
ZShjaGFuZ2UpOworICAgICAgICAgICAgbGlzdC0+cmVjYWxjU2hhZG93VHJlZVN0eWxlKGNoYW5n
ZSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEzNjAsOCArMTM2MCw4IEBAIHZvaWQgRWxlbWVu
dDo6Y2hpbGRyZW5DaGFuZ2VkKGJvb2wgY2hhbmdlZEJ5UGFyc2VyLCBOb2RlKiBiZWZvcmVDaGFu
Z2UsIE5vZGUqIGFmCiAgICAgICAgIGNoZWNrRm9yU2libGluZ1N0eWxlQ2hhbmdlcyh0aGlzLCBy
ZW5kZXJTdHlsZSgpLCBmYWxzZSwgYmVmb3JlQ2hhbmdlLCBhZnRlckNoYW5nZSwgY2hpbGRDb3Vu
dERlbHRhKTsKIAogICAgIGlmIChoYXNSYXJlRGF0YSgpKSB7Ci0gICAgICAgIGlmIChTaGFkb3dS
b290TGlzdCogbGlzdCA9IHNoYWRvd1Jvb3RMaXN0KCkpCi0gICAgICAgICAgICBsaXN0LT5ob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIGlmIChoYXNTaGFkb3dSb290KCkpCisgICAgICAg
ICAgICBzaGFkb3dSb290TGlzdCgpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAgICAgfQogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCAyNDA4
ZjJhN2VmNzY4YzYxY2NhYjQ5N2I4MGNmNjJiMTMzODQyZjY2Li4yNjI3NjAxMzkxZTIyYWMzYjc3
N2E0YWQ4OGNkNTQzNmY2NmZhMzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVy
aW5nQ29udGV4dC5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5k
ZXJpbmdDb250ZXh0OjpwYXJlbnRSZW5kZXJlcigpIGNvbnN0CiB2b2lkIE5vZGVSZW5kZXJpbmdD
b250ZXh0Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKIHsKICAgICBpZiAobV9waGFzZSA9PSBBdHRh
Y2hpbmdOb3REaXN0cmlidXRlZCkKLSAgICAgICAgbV92aXN1YWxQYXJlbnRTaGFkb3dSb290LT5o
b3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CisgICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdC0+
aG9zdCgpLT5zaGFkb3dSb290TGlzdCgpLT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiB9CiAKIGJv
b2wgTm9kZVJlbmRlcmluZ0NvbnRleHQ6OnNob3VsZENyZWF0ZVJlbmRlcmVyKCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9TaGFkb3dSb290LmNwcAppbmRleCAwNjI2MDIyZWMxNTQ5YmIyMzRhYWEwOGU5YWQw
NWM3NDI5NjdkZWM4Li5iYWVkN2U3YmRiMjc3ZDYyODUxOWQ3ZjBiYmE5Y2RlYWNiM2MyYTg5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCkBAIC0zNiw3ICszNiw2IEBACiAjaW5jbHVkZSAi
Tm9kZVJhcmVEYXRhLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdExpc3QuaCIKICNpbmNsdWRlICJT
VkdOYW1lcy5oIgotI2luY2x1ZGUgIlRleHQuaCIKIAogI2lmIEVOQUJMRShTSEFET1dfRE9NKQog
I2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKQEAgLTUwLDcgKzQ5LDYgQEAgU2hh
ZG93Um9vdDo6U2hhZG93Um9vdChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX3ByZXYoMCkK
ICAgICAsIG1fbmV4dCgwKQogICAgICwgbV9hcHBseUF1dGhvclNoZWV0cyhmYWxzZSkKLSAgICAs
IG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQoZmFsc2UpCiB7CiAgICAgQVNTRVJUKGRvY3VtZW50
KTsKICAgICAKQEAgLTE1OSwzOCArMTU3LDExIEBAIGJvb2wgU2hhZG93Um9vdDo6Y2hpbGRUeXBl
QWxsb3dlZChOb2RlVHlwZSB0eXBlKSBjb25zdAogICAgIH0KIH0KIAotdm9pZCBTaGFkb3dSb290
OjpyZWNhbGNTaGFkb3dUcmVlU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQorU2hhZG93Um9vdExp
c3QqIFNoYWRvd1Jvb3Q6OmJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCkgY29uc3QKIHsKLSAgICBp
ZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpKQotICAgICAgICByZWF0dGFj
aEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwotICAgIGVsc2UgewotICAgICAgICBmb3IgKE5vZGUq
IG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBuLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAg
ICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQotICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEVs
ZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hhbmdlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG4t
PmlzVGV4dE5vZGUoKSkKLSAgICAgICAgICAgICAgICB0b1RleHQobiktPnJlY2FsY1RleHRTdHls
ZShjaGFuZ2UpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgY2xlYXJOZWVkc1JlYXR0YWNoSG9z
dENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAgY2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAg
Y2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotdm9pZCBTaGFkb3dSb290OjpzZXRO
ZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBtX25lZWRzUmVjYWxj
dWxhdGVDb250ZW50ID0gdHJ1ZTsKLSAgICBpZiAoc2hhZG93SG9zdCgpKQotICAgICAgICBzaGFk
b3dIb3N0KCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKLX0KLQotdm9pZCBTaGFkb3dSb290Ojpo
b3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAgICBpZiAoIWhhc0NvbnRlbnRFbGVtZW50KCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIC8vIFRoaXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5n
L2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJlbmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVj
YWxjU3R5bGUoKS4KLSAgICBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7
CisgICAgaWYgKGhvc3QoKSkKKyAgICAgICAgcmV0dXJuIGhvc3QoKS0+c2hhZG93Um9vdExpc3Qo
KTsKKyAgICByZXR1cm4gMDsKIH0KIAogYm9vbCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVu
dCgpIGNvbnN0CkBAIC0yMjYsMjMgKzE5Nyw0IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkK
ICAgICAgICAgc2VsZWN0b3ItPmRpZFNlbGVjdCgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnJl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKLXsKLSAgICBOb2RlKiBob3N0Tm9kZSA9IGhv
c3QoKTsKLSAgICBpZiAoIWhvc3ROb2RlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKE5v
ZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAg
ICAgICAgY2hpbGQtPmRldGFjaCgpOwotICAgIH0KLQotICAgIHJlYXR0YWNoKCk7Ci0KLSAgICBm
b3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkK
LSAgICAgICAgICAgIGNoaWxkLT5hdHRhY2goKTsKLSAgICB9CiB9Ci0KLX0gLy8gbmFtZXNwYWNl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRleCBkM2JmMzUxMjY0Y2ZkMzJiNmZlM2MxNDU0N2I4
YWZkNTBlYmMxNmQzLi5jNDU0OTA1YjUzZGZhNGFiMDYyZjc0YTRlNzcxMjkwMDJhNDkwOWIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAgLTM4LDYgKzM4LDcgQEAgY2xhc3MgRG9jdW1lbnQ7
CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudFNlbGVjdG9yOwog
Y2xhc3MgSW5zZXJ0aW9uUG9pbnQ7CitjbGFzcyBTaGFkb3dSb290TGlzdDsKIAogY2xhc3MgU2hh
ZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZyYWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJs
aWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hhZG93Um9vdD4gewogICAgIGZyaWVuZCBjbGFzcyBX
VEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNoYWRvd1Jvb3Q+OwpAQCAtNjQsNyArNjUsNiBAQCBw
dWJsaWM6CiAgICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoKCk7Ci0gICAgdm9pZCByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwog
CiAgICAgdmlydHVhbCBib29sIGFwcGx5QXV0aG9yU2hlZXRzKCkgY29uc3Q7CiAgICAgdm9pZCBz
ZXRBcHBseUF1dGhvclNoZWV0cyhib29sKTsKQEAgLTc0LDYgKzc0LDEwIEBAIHB1YmxpYzoKICAg
ICBTaGFkb3dSb290KiB5b3VuZ2VyU2hhZG93Um9vdCgpIHsgcmV0dXJuIHByZXYoKTsgfQogICAg
IFNoYWRvd1Jvb3QqIG9sZGVyU2hhZG93Um9vdCgpIHsgcmV0dXJuIG5leHQoKTsgfQogCisgICAg
U2hhZG93Um9vdExpc3QqIGJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCkgY29uc3Q7CisKKyAgICBi
b29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7CisKIHByaXZhdGU6CiAgICAgU2hhZG93Um9v
dChEb2N1bWVudCopOwogICAgIHZpcnR1YWwgflNoYWRvd1Jvb3QoKTsKQEAgLTgyLDI0ICs4Niwx
MSBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxOb2RlPiBjbG9uZU5vZGUoYm9v
bCBkZWVwKTsKICAgICB2aXJ0dWFsIGJvb2wgY2hpbGRUeXBlQWxsb3dlZChOb2RlVHlwZSkgY29u
c3Q7CiAKLSAgICBib29sIGhhc0NvbnRlbnRFbGVtZW50KCkgY29uc3Q7Ci0KICAgICBTaGFkb3dS
b290KiBtX3ByZXY7CiAgICAgU2hhZG93Um9vdCogbV9uZXh0OwogICAgIGJvb2wgbV9hcHBseUF1
dGhvclNoZWV0cyA6IDE7Ci0gICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50IDogMTsK
IH07CiAKLWlubGluZSB2b2lkIFNoYWRvd1Jvb3Q6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCi17Ci0gICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IGZhbHNl
OwotfQotCi1pbmxpbmUgYm9vbCBTaGFkb3dSb290OjpuZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCkKLXsKLSAgICByZXR1cm4gbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCB8fCBo
YXNDb250ZW50RWxlbWVudCgpOwotfQotCiBpbmxpbmUgU2hhZG93Um9vdCogdG9TaGFkb3dSb290
KE5vZGUqIG5vZGUpCiB7CiAgICAgQVNTRVJUKCFub2RlIHx8IG5vZGUtPmlzU2hhZG93Um9vdCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCmluZGV4IDI2NDc2NGU3MmY0NzMw
YmUwZmIyYjZhZmM5NzExMDMzNTJjMzEzNGQuLjkxN2I5ZmY5ZTVhOTVlZjM4OTQ5YTFmZjBlMjcx
NjcxOGIwMWMyYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlz
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmNwcApAQCAtMzIs
MTAgKzMyLDEyIEBACiAjaW5jbHVkZSAiSFRNTENvbnRlbnRTZWxlY3Rvci5oIgogI2luY2x1ZGUg
IlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCisjaW5j
bHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNoYWRvd1Jvb3RMaXN0OjpT
aGFkb3dSb290TGlzdCgpCisgICAgOiBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQog
ewogfQogCkBAIC05NCwxMiArOTYsNiBAQCB2b2lkIFNoYWRvd1Jvb3RMaXN0Ojp3aWxsUmVtb3Zl
KCkKICAgICAgICAgcm9vdC0+d2lsbFJlbW92ZSgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3RMaXN0
Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAgICBmb3IgKFNoYWRvd1Jvb3QqIHJvb3QgPSB5
b3VuZ2VzdFNoYWRvd1Jvb3QoKTsgcm9vdDsgcm9vdCA9IHJvb3QtPm9sZGVyU2hhZG93Um9vdCgp
KQotICAgICAgICByb290LT5ob3N0Q2hpbGRyZW5DaGFuZ2VkKCk7Ci19Ci0KIHZvaWQgU2hhZG93
Um9vdExpc3Q6OmF0dGFjaCgpCiB7CiAgICAgLy8gRklYTUU6IEN1cnJlbnRseSB3ZSBvbmx5IHN1
cHBvcnQgdGhlIGNhc2UgdGhhdCB0aGUgc2hhZG93IHJvb3QgbGlzdCBoYXMgYXQgbW9zdCBvbmUg
c2hhZG93IHJvb3QuCkBAIC0xMzksNiArMTM1LDEwMSBAQCBib29sIFNoYWRvd1Jvb3RMaXN0Ojpp
c1NlbGVjdG9yQWN0aXZlKCkgY29uc3QKICAgICByZXR1cm4gbV9zZWxlY3RvciAmJiBtX3NlbGVj
dG9yLT5oYXNDYW5kaWRhdGVzKCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlYXR0YWNo
KCkKK3sKKyAgICBkZXRhY2goKTsKKyAgICBhdHRhY2goKTsKK30KKworYm9vbCBTaGFkb3dSb290
TGlzdDo6Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFk
b3dSb290KCkpOworICAgIGlmICgheW91bmdlc3RTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHJldHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+Y2hpbGROZWVkc1N0
eWxlUmVjYWxjKCk7Cit9CisKK2Jvb2wgU2hhZG93Um9vdExpc3Q6Om5lZWRzU3R5bGVSZWNhbGMo
KQoreworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgaWYgKCF5b3VuZ2Vz
dFNoYWRvd1Jvb3QoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHlvdW5n
ZXN0U2hhZG93Um9vdCgpLT5uZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9v
dExpc3Q6OnJlY2FsY1NoYWRvd1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCit7
CisgICAgU2hhZG93Um9vdCogeW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBp
ZiAoIXlvdW5nZXN0KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobmVlZHNSZWF0dGFjaEhv
c3RDaGlsZHJlbkFuZFNoYWRvdygpKQorICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNo
YWRvdygpOworICAgIGVsc2UgeworICAgICAgICBmb3IgKE5vZGUqIG4gPSB5b3VuZ2VzdC0+Zmly
c3RDaGlsZCgpOyBuOyBuID0gbi0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG4t
PmlzRWxlbWVudE5vZGUoKSkKKyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4o
biktPnJlY2FsY1N0eWxlKGNoYW5nZSk7CisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1RleHRO
b2RlKCkpCisgICAgICAgICAgICAgICAgdG9UZXh0KG4pLT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdl
KTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJl
bkFuZFNoYWRvdygpOworICAgIGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93
Um9vdCgpOyByb290OyByb290ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAg
cm9vdC0+Y2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgICAgIHJvb3QtPmNsZWFyQ2hpbGRO
ZWVkc1N0eWxlUmVjYWxjKCk7CisgICAgfQorfQorCitib29sIFNoYWRvd1Jvb3RMaXN0OjpuZWVk
c1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKK3sKKyAgICByZXR1cm4gbV9uZWVkc1Jl
Y2FsY3VsYXRlQ29udGVudCB8fCAoeW91bmdlc3RTaGFkb3dSb290KCkgJiYgeW91bmdlc3RTaGFk
b3dSb290KCktPmhhc0NvbnRlbnRFbGVtZW50KCkpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0
Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290
KCkpOworCisgICAgaWYgKCF5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzQ29udGVudEVsZW1lbnQo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhpcyByZXN1bHRzIGluIGZvcmNlZCBkZXRh
Y2hpbmcvYXR0YWNoaW5nIG9mIHRoZSBzaGFkb3cgcmVuZGVyIHRyZWUuIFNlZSBTaGFkb3dSb290
OjpyZWNhbGNTdHlsZSgpLgorICAgIHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFk
b3coKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGls
ZHJlbkFuZFNoYWRvdygpCit7CisgICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IHRydWU7
CisgICAgQVNTRVJUKHlvdW5nZXN0U2hhZG93Um9vdCgpKTsKKworICAgIE5vZGUqIGhvc3ROb2Rl
ID0geW91bmdlc3RTaGFkb3dSb290KCktPmhvc3QoKTsKKyAgICBpZiAoaG9zdE5vZGUpCisgICAg
ICAgIGhvc3ROb2RlLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9v
dExpc3Q6OnJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCkKK3sKKyAgICBBU1NFUlQoeW91
bmdlc3RTaGFkb3dSb290KCkpOworCisgICAgTm9kZSogaG9zdE5vZGUgPSB5b3VuZ2VzdFNoYWRv
d1Jvb3QoKS0+aG9zdCgpOworICAgIGlmICghaG9zdE5vZGUpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGZvciAoTm9kZSogY2hpbGQgPSBob3N0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hp
bGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoY2hpbGQtPmF0dGFjaGVk
KCkpCisgICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7CisgICAgfQorCisgICAgcmVhdHRhY2go
KTsKKworICAgIGZvciAoTm9kZSogY2hpbGQgPSBob3N0Tm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGls
ZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoIWNoaWxkLT5h
dHRhY2hlZCgpKQorICAgICAgICAgICAgY2hpbGQtPmF0dGFjaCgpOworICAgIH0KK30KKwogSFRN
TENvbnRlbnRTZWxlY3RvciogU2hhZG93Um9vdExpc3Q6OmVuc3VyZVNlbGVjdG9yKCkKIHsKICAg
ICBpZiAoIW1fc2VsZWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93
Um9vdExpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oCmluZGV4IDJi
NDk4NDkzYTg0NjdlZmE5YTBmNjIzNTEzOGM2ZGVkNDQyYjA2NWQuLmRiNTQwODRjYmE2MWVjOTc2
Njc5ZThjNzY2ODA4OGZmOWFjNWI2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9T
aGFkb3dSb290TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5o
CkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFNoYWRvd1Jvb3RMaXN0X2gKICNkZWZpbmUgU2hh
ZG93Um9vdExpc3RfaAogCisjaW5jbHVkZSAiTm9kZS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3Qu
aCIKICNpbmNsdWRlIDx3dGYvRG91Ymx5TGlua2VkTGlzdC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgpAQCAtMzcsOCArMzgsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IE5vZGU7CiBjbGFzcyBFbGVtZW50OwotY2xhc3MgSFRNTENvbnRlbnRFbGVtZW50OwogY2xhc3Mg
SFRNTENvbnRlbnRTZWxlY3RvcjsKK2NsYXNzIEluc2VydGlvblBvaW50OwogCiBjbGFzcyBTaGFk
b3dSb290TGlzdCB7CiBwdWJsaWM6CkBAIC01OCwxMCArNTksMTggQEAgcHVibGljOgogICAgIHZv
aWQgcmVtb3ZlZEZyb21UcmVlKGJvb2wgZGVlcCk7CiAgICAgdm9pZCB3aWxsUmVtb3ZlKCk7CiAK
LSAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKLQogICAgIHZvaWQgYXR0YWNoKCk7CiAg
ICAgdm9pZCBkZXRhY2goKTsKKyAgICB2b2lkIHJlYXR0YWNoKCk7CisKKyAgICBib29sIGNoaWxk
TmVlZHNTdHlsZVJlY2FsYygpOworICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpOworICAgIHZv
aWQgcmVjYWxjU2hhZG93VHJlZVN0eWxlKE5vZGU6OlN0eWxlQ2hhbmdlKTsKKyAgICB2b2lkIHNl
dE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICB2b2lkIGNsZWFyTmVl
ZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGJvb2wgbmVlZHNSZWF0dGFj
aEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIHZvaWQgcmVhdHRhY2hIb3N0Q2hpbGRyZW5B
bmRTaGFkb3coKTsKKyAgICB2b2lkIGhvc3RDaGlsZHJlbkNoYW5nZWQoKTsKIAogICAgIEluc2Vy
dGlvblBvaW50KiBpbnNlcnRpb25Qb2ludEZvcihOb2RlKikgY29uc3Q7CiAKQEAgLTc1LDYgKzg0
LDcgQEAgcHJpdmF0ZToKIAogICAgIERvdWJseUxpbmtlZExpc3Q8U2hhZG93Um9vdD4gbV9zaGFk
b3dSb290czsKICAgICBPd25QdHI8SFRNTENvbnRlbnRTZWxlY3Rvcj4gbV9zZWxlY3RvcjsKKyAg
ICBib29sIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgOiAxOwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFNoYWRvd1Jvb3RMaXN0KTsKIH07CiAKQEAgLTk4LDYgKzEwOCwxMSBAQCBpbmxpbmUg
SFRNTENvbnRlbnRTZWxlY3RvciogU2hhZG93Um9vdExpc3Q6OnNlbGVjdG9yKCkgY29uc3QKICAg
ICByZXR1cm4gbV9zZWxlY3Rvci5nZXQoKTsKIH0KIAoraW5saW5lIHZvaWQgU2hhZG93Um9vdExp
c3Q6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7CisgICAgbV9u
ZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IGZhbHNlOworfQorCiBpbmxpbmUgRWxlbWVudCogU2hh
ZG93Um9vdExpc3Q6Omhvc3QoKSBjb25zdAogewogICAgIEFTU0VSVChoYXNTaGFkb3dSb290KCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5j
cHAKaW5kZXggMDZiZTIzMDM4OGVlMTkxMDg1MzdjNDM4YjYyNWE2YWFkMGNlZDc2YS4uMDVjZmU4
NGJiOTNhMTU5YTFmYjRlMzM5MGY2NWJiMTJlNDRhNmIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCkBAIC03NCw3ICs3NCw3IEBA
IHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2goKQogCiAgICAgLy8gQmVmb3JlIGNhbGxp
bmcgU3R5bGVkRWxlbWVudDo6YXR0YWNoLCBzZWxlY3RvciBtdXN0IGJlIGNhbGN1bGF0ZWQuCiAg
ICAgaWYgKHJvb3QpIHsKLSAgICAgICAgSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSBy
b290LT5ob3N0KCktPnNoYWRvd1Jvb3RMaXN0KCktPmVuc3VyZVNlbGVjdG9yKCk7CisgICAgICAg
IEhUTUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+YmVsb25naW5nU2hhZG93Um9v
dExpc3QoKS0+ZW5zdXJlU2VsZWN0b3IoKTsKICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KCZt
X3NlbGVjdGlvbnMpOwogICAgICAgICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMsICZtX3NlbGVjdGlv
bnMpOwogICAgIH0KQEAgLTkwLDEyICs5MCwxMiBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6
YXR0YWNoKCkKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQogewogICAgIGlmIChT
aGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgewot
ICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSByb290LT5ob3N0KCkt
PnNoYWRvd1Jvb3RMaXN0KCktPnNlbGVjdG9yKCkpCisgICAgICAgIGlmIChIVE1MQ29udGVudFNl
bGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmJlbG9uZ2luZ1NoYWRvd1Jvb3RMaXN0KCktPnNlbGVj
dG9yKCkpCiAgICAgICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QoJm1fc2VsZWN0aW9ucyk7CiAK
ICAgICAgICAgLy8gV2hlbiBjb250ZW50IGVsZW1lbnQgaXMgZGV0YWNoZWQsIHNoYWRvdyB0cmVl
IHNob3VsZCBiZSByZWNyZWF0ZWQgdG8gcmUtY2FsY3VsYXRlIHNlbGVjdG9yIGZvcgogICAgICAg
ICAvLyBvdGhlciBjb250ZW50IGVsZW1lbnRzLgotICAgICAgICByb290LT5zZXROZWVkc1JlYXR0
YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgICAgIHJvb3QtPmJlbG9uZ2luZ1NoYWRv
d1Jvb3RMaXN0KCktPnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKICAg
ICB9CiAKICAgICBBU1NFUlQobV9zZWxlY3Rpb25zLmlzRW1wdHkoKSk7CkBAIC0xMjIsNyArMTIy
LDcgQEAgdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OnBhcnNlQXR0cmlidXRlKEF0dHJpYnV0ZSog
YXR0cikKIHsKICAgICBpZiAoYXR0ci0+bmFtZSgpID09IHNlbGVjdEF0dHIpIHsKICAgICAgICAg
aWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkp
KQotICAgICAgICAgICAgcm9vdC0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpOworICAgICAgICAgICAgcm9vdC0+YmVsb25naW5nU2hhZG93Um9vdExpc3QoKS0+c2V0TmVl
ZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogICAgIH0gZWxzZQogICAgICAgICBJ
bnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>128424</attachid>
            <date>2012-02-23 00:43:22 -0800</date>
            <delta_ts>2012-02-23 18:36:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-79071-20120223174320.patch</filename>
            <type>text/plain</type>
            <size>15499</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA4NjEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTljNGI5ODMwMmI1MDRk
NGFlZDdjMzE5MmQ0MDYyZjVmNjFlOTc0ZC4uNjIxZjU2NTllNGYzNzc0NDlhZTIwZGFjNmYzNjE0
OGQ2NTdhNWY4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAyLTIzICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGNocm9taXVtLm9yZz4KKworICAgICAgICBTaGFkb3dSb290
TGlzdCBzaG91bGQgaGF2ZSByZWNhbGN1bGF0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzkwNzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGxp
Z2h0IGNoaWxkcmVuIG9yIHNoYWRvdyBjaGlsZHJlbiBhcmUgY2hhbmdlZCwgd2UgY3VycmVudGx5
IHJlLWNvbnN0cnVjdCBhIHNoYWRvdyBzdWJ0cmVlLgorICAgICAgICBIb3dldmVyLCB3aGVuIHN1
cHBvcnRpbmcgbXVsdGlwbGUgc2hhZG93IHN1YnRyZWVzLCBhbGwgc2hhZG93IHN1YnRyZWVzIHNo
b3VsZCBiZSByZS1jb25zdHJ1Y3RlZC4KKyAgICAgICAgU28gU2hhZG93Um9vdExpc3Qgc2hvdWxk
IGhhdmUgcmUtY29uc3RydWN0aW9uIGZsYWcgaW5zdGVhZCBvZiBTaGFkb3dSb290LgorCisgICAg
ICAgIEFsc28sIHJlLWNvbnN0cnVjdGlvbiBtZXRob2RzIGluIFNoYWRvd1Jvb3Qgc2hvdWxkIGJl
IG1vdmVkIHRvIFNoYWRvd1Jvb3RMaXN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgc2hvdWxk
IGJlIGNvbnZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgorCisgICAgICAgICogZG9tL0VsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUpOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6Y2hpbGRyZW5DaGFuZ2VkKToKKyAgICAgICAgKiBkb20vTm9kZVJl
bmRlcmluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRl
eHQ6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9TaGFkb3dSb290LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3Q6OlNoYWRvd1Jvb3QpOgorICAgICAgICAoV2Vi
Q29yZTo6U2hhZG93Um9vdDo6bGlzdCk6CisgICAgICAgICogZG9tL1NoYWRvd1Jvb3QuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoU2hhZG93Um9vdCk6CisgICAgICAgICogZG9tL1No
YWRvd1Jvb3RMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0OjpTaGFk
b3dSb290TGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6cmVhdHRhY2gp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dSb290TGlzdDo6
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0
OjpuZWVkc1N0eWxlUmVjYWxjKToKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd1Jvb3RMaXN0Ojpy
ZWNhbGNTaGFkb3dUcmVlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6
Om5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3cpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdExpc3Q6Omhvc3RDaGlsZHJlbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6
U2hhZG93Um9vdExpc3Q6OnNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3cpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhZG93Um9vdExpc3Q6OnJlYXR0YWNoSG9zdENoaWxkcmVuQW5k
U2hhZG93KToKKyAgICAgICAgKiBkb20vU2hhZG93Um9vdExpc3QuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoU2hhZG93Um9vdExpc3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhZG93
Um9vdExpc3Q6OmNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdyk6CisgICAg
ICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxDb250ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxD
b250ZW50RWxlbWVudDo6ZGV0YWNoKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxl
bWVudDo6cGFyc2VBdHRyaWJ1dGUpOgorCiAyMDEyLTAyLTIyICBLZW50YXJvIEhhcmEgIDxoYXJh
a2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbmFibGUgR2VvbG9jYXRpb24gYmluZGluZ3Mg
Zm9yIEdPYmplY3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA5ZjI2MTk1NzI0MjFkYTM4YzM5
ZWIxYzE4YmQ5M2NlNzYzODViOWEzLi5lZGM1YTYyZWY0MDM0YTc3ZGY5MTI5ZjU5ZGI4ZDYxNjk1
ZmYxNDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xMTI2LDEwICsxMTI2LDEwIEBAIHZv
aWQgRWxlbWVudDo6cmVjYWxjU3R5bGUoU3R5bGVDaGFuZ2UgY2hhbmdlKQogICAgIH0KICAgICAv
LyBGSVhNRTogVGhpcyBkb2VzIG5vdCBjYXJlIGFib3V0IHNpYmxpbmcgY29tYmluYXRvcnMuIFdp
bGwgYmUgbmVjZXNzYXJ5IGluIFhCTDIgd29ybGQuCiAgICAgaWYgKGhhc1NoYWRvd1Jvb3QoKSkg
ewotICAgICAgICBTaGFkb3dSb290KiBzaGFkb3cgPSBzaGFkb3dSb290TGlzdCgpLT55b3VuZ2Vz
dFNoYWRvd1Jvb3QoKTsKLSAgICAgICAgaWYgKGNoYW5nZSA+PSBJbmhlcml0IHx8IHNoYWRvdy0+
Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgc2hhZG93LT5uZWVkc1N0eWxlUmVjYWxjKCkpIHsK
KyAgICAgICAgU2hhZG93Um9vdExpc3QqIGxpc3QgPSBzaGFkb3dSb290TGlzdCgpOworICAgICAg
ICBpZiAoY2hhbmdlID49IEluaGVyaXQgfHwgbGlzdC0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCkg
fHwgbGlzdC0+bmVlZHNTdHlsZVJlY2FsYygpKSB7CiAgICAgICAgICAgICBwYXJlbnRQdXNoZXIu
cHVzaCgpOwotICAgICAgICAgICAgc2hhZG93LT5yZWNhbGNTaGFkb3dUcmVlU3R5bGUoY2hhbmdl
KTsKKyAgICAgICAgICAgIGxpc3QtPnJlY2FsY1NoYWRvd1RyZWVTdHlsZShjaGFuZ2UpOwogICAg
ICAgICB9CiAgICAgfQogCkBAIC0xMzYwLDggKzEzNjAsOCBAQCB2b2lkIEVsZW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChib29sIGNoYW5nZWRCeVBhcnNlciwgTm9kZSogYmVmb3JlQ2hhbmdlLCBOb2Rl
KiBhZgogICAgICAgICBjaGVja0ZvclNpYmxpbmdTdHlsZUNoYW5nZXModGhpcywgcmVuZGVyU3R5
bGUoKSwgZmFsc2UsIGJlZm9yZUNoYW5nZSwgYWZ0ZXJDaGFuZ2UsIGNoaWxkQ291bnREZWx0YSk7
CiAKICAgICBpZiAoaGFzUmFyZURhdGEoKSkgewotICAgICAgICBpZiAoU2hhZG93Um9vdExpc3Qq
IGxpc3QgPSBzaGFkb3dSb290TGlzdCgpKQotICAgICAgICAgICAgbGlzdC0+aG9zdENoaWxkcmVu
Q2hhbmdlZCgpOworICAgICAgICBpZiAoaGFzU2hhZG93Um9vdCgpKQorICAgICAgICAgICAgc2hh
ZG93Um9vdExpc3QoKS0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogICAgIH0KIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMjQwOGYyYTdlZjc2
OGM2MWNjYWI0OTdiODBjZjYyYjEzMzg0MmY2Ni4uMjYyNzYwMTM5MWUyMmFjM2I3NzdhNGFkODhj
ZDU0MzZmNjZmYTMzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29u
dGV4dDo6cGFyZW50UmVuZGVyZXIoKSBjb25zdAogdm9pZCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6
aG9zdENoaWxkcmVuQ2hhbmdlZCgpCiB7CiAgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoaW5nTm90
RGlzdHJpYnV0ZWQpCi0gICAgICAgIG1fdmlzdWFsUGFyZW50U2hhZG93Um9vdC0+aG9zdENoaWxk
cmVuQ2hhbmdlZCgpOworICAgICAgICBtX3Zpc3VhbFBhcmVudFNoYWRvd1Jvb3QtPmhvc3QoKS0+
c2hhZG93Um9vdExpc3QoKS0+aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwogfQogCiBib29sIE5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpzaG91bGRDcmVhdGVSZW5kZXJlcigpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
U2hhZG93Um9vdC5jcHAKaW5kZXggMDYyNjAyMmVjMTU0OWJiMjM0YWFhMDhlOWFkMDVjNzQyOTY3
ZGVjOC4uNmNmNTBhY2I5ODgxNDI5MzJlYTRhMGM3YTQzZTgxZGQ1OTk5ODkxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9TaGFkb3dSb290LmNwcApAQCAtMzYsNyArMzYsNiBAQAogI2luY2x1ZGUgIk5vZGVSYXJl
RGF0YS5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3RMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKLSNpbmNsdWRlICJUZXh0LmgiCiAKICNpZiBFTkFCTEUoU0hBRE9XX0RPTSkKICNpbmNsdWRl
ICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC01MCw3ICs0OSw2IEBAIFNoYWRvd1Jvb3Q6
OlNoYWRvd1Jvb3QoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9wcmV2KDApCiAgICAgLCBt
X25leHQoMCkKICAgICAsIG1fYXBwbHlBdXRob3JTaGVldHMoZmFsc2UpCi0gICAgLCBtX25lZWRz
UmVjYWxjdWxhdGVDb250ZW50KGZhbHNlKQogewogICAgIEFTU0VSVChkb2N1bWVudCk7CiAgICAg
CkBAIC0xNTksMzggKzE1NywxMSBAQCBib29sIFNoYWRvd1Jvb3Q6OmNoaWxkVHlwZUFsbG93ZWQo
Tm9kZVR5cGUgdHlwZSkgY29uc3QKICAgICB9CiB9CiAKLXZvaWQgU2hhZG93Um9vdDo6cmVjYWxj
U2hhZG93VHJlZVN0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKK1NoYWRvd1Jvb3RMaXN0KiBTaGFk
b3dSb290OjpsaXN0KCkgY29uc3QKIHsKLSAgICBpZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJl
bkFuZFNoYWRvdygpKQotICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwot
ICAgIGVsc2UgewotICAgICAgICBmb3IgKE5vZGUqIG4gPSBmaXJzdENoaWxkKCk7IG47IG4gPSBu
LT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgICAgICBpZiAobi0+aXNFbGVtZW50Tm9kZSgpKQot
ICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEVsZW1lbnQqPihuKS0+cmVjYWxjU3R5bGUoY2hh
bmdlKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKG4tPmlzVGV4dE5vZGUoKSkKLSAgICAgICAgICAg
ICAgICB0b1RleHQobiktPnJlY2FsY1RleHRTdHlsZShjaGFuZ2UpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgY2xlYXJOZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7Ci0gICAg
Y2xlYXJOZWVkc1N0eWxlUmVjYWxjKCk7Ci0gICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMo
KTsKLX0KLQotdm9pZCBTaGFkb3dSb290OjpzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVuQW5k
U2hhZG93KCkKLXsKLSAgICBtX25lZWRzUmVjYWxjdWxhdGVDb250ZW50ID0gdHJ1ZTsKLSAgICBp
ZiAoc2hhZG93SG9zdCgpKQotICAgICAgICBzaGFkb3dIb3N0KCktPnNldE5lZWRzU3R5bGVSZWNh
bGMoKTsKLX0KLQotdm9pZCBTaGFkb3dSb290Ojpob3N0Q2hpbGRyZW5DaGFuZ2VkKCkKLXsKLSAg
ICBpZiAoIWhhc0NvbnRlbnRFbGVtZW50KCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIFRo
aXMgcmVzdWx0cyBpbiBmb3JjZWQgZGV0YWNoaW5nL2F0dGFjaGluZyBvZiB0aGUgc2hhZG93IHJl
bmRlciB0cmVlLiBTZWUgU2hhZG93Um9vdDo6cmVjYWxjU3R5bGUoKS4KLSAgICBzZXROZWVkc1Jl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgaWYgKGhvc3QoKSkKKyAgICAgICAg
cmV0dXJuIGhvc3QoKS0+c2hhZG93Um9vdExpc3QoKTsKKyAgICByZXR1cm4gMDsKIH0KIAogYm9v
bCBTaGFkb3dSb290OjpoYXNDb250ZW50RWxlbWVudCgpIGNvbnN0CkBAIC0yMjYsMjMgKzE5Nyw0
IEBAIHZvaWQgU2hhZG93Um9vdDo6YXR0YWNoKCkKICAgICAgICAgc2VsZWN0b3ItPmRpZFNlbGVj
dCgpOwogfQogCi12b2lkIFNoYWRvd1Jvb3Q6OnJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93
KCkKLXsKLSAgICBOb2RlKiBob3N0Tm9kZSA9IGhvc3QoKTsKLSAgICBpZiAoIWhvc3ROb2RlKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUtPmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAg
aWYgKGNoaWxkLT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgY2hpbGQtPmRldGFjaCgpOwotICAg
IH0KLQotICAgIHJlYXR0YWNoKCk7Ci0KLSAgICBmb3IgKE5vZGUqIGNoaWxkID0gaG9zdE5vZGUt
PmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAg
ICAgICAgaWYgKCFjaGlsZC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIGNoaWxkLT5hdHRhY2go
KTsKLSAgICB9CiB9Ci0KLX0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vU2hhZG93Um9vdC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3QuaAppbmRl
eCBkM2JmMzUxMjY0Y2ZkMzJiNmZlM2MxNDU0N2I4YWZkNTBlYmMxNmQzLi45YjlkYjE0NDJhOGU5
NDhkYmZkOTEwOGZhNWQwM2FkZWIwZmU2N2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vU2hhZG93Um9vdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290LmgKQEAg
LTM4LDYgKzM4LDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBIVE1MQ29udGVudEVsZW1lbnQ7
CiBjbGFzcyBIVE1MQ29udGVudFNlbGVjdG9yOwogY2xhc3MgSW5zZXJ0aW9uUG9pbnQ7CitjbGFz
cyBTaGFkb3dSb290TGlzdDsKIAogY2xhc3MgU2hhZG93Um9vdCA6IHB1YmxpYyBEb2N1bWVudEZy
YWdtZW50LCBwdWJsaWMgVHJlZVNjb3BlLCBwdWJsaWMgRG91Ymx5TGlua2VkTGlzdE5vZGU8U2hh
ZG93Um9vdD4gewogICAgIGZyaWVuZCBjbGFzcyBXVEY6OkRvdWJseUxpbmtlZExpc3ROb2RlPFNo
YWRvd1Jvb3Q+OwpAQCAtNjQsMTYgKzY1LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIGhvc3RDaGls
ZHJlbkNoYW5nZWQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2goKTsKLSAgICB2b2lkIHJl
YXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgYXBwbHlB
dXRob3JTaGVldHMoKSBjb25zdDsKICAgICB2b2lkIHNldEFwcGx5QXV0aG9yU2hlZXRzKGJvb2wp
OwogCiAgICAgRWxlbWVudCogaG9zdCgpIGNvbnN0IHsgcmV0dXJuIHNoYWRvd0hvc3QoKTsgfQor
ICAgIFNoYWRvd1Jvb3RMaXN0KiBsaXN0KCkgY29uc3Q7CiAKICAgICBTaGFkb3dSb290KiB5b3Vu
Z2VyU2hhZG93Um9vdCgpIHsgcmV0dXJuIHByZXYoKTsgfQogICAgIFNoYWRvd1Jvb3QqIG9sZGVy
U2hhZG93Um9vdCgpIHsgcmV0dXJuIG5leHQoKTsgfQogCisgICAgYm9vbCBoYXNDb250ZW50RWxl
bWVudCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIFNoYWRvd1Jvb3QoRG9jdW1lbnQqKTsKICAg
ICB2aXJ0dWFsIH5TaGFkb3dSb290KCk7CkBAIC04MiwyNCArODUsMTEgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8Tm9kZT4gY2xvbmVOb2RlKGJvb2wgZGVlcCk7CiAgICAgdmly
dHVhbCBib29sIGNoaWxkVHlwZUFsbG93ZWQoTm9kZVR5cGUpIGNvbnN0OwogCi0gICAgYm9vbCBo
YXNDb250ZW50RWxlbWVudCgpIGNvbnN0OwotCiAgICAgU2hhZG93Um9vdCogbV9wcmV2OwogICAg
IFNoYWRvd1Jvb3QqIG1fbmV4dDsKICAgICBib29sIG1fYXBwbHlBdXRob3JTaGVldHMgOiAxOwot
ICAgIGJvb2wgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA6IDE7CiB9OwogCi1pbmxpbmUgdm9p
ZCBTaGFkb3dSb290OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKQot
ewotICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSBmYWxzZTsKLX0KLQotaW5saW5lIGJv
b2wgU2hhZG93Um9vdDo6bmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCi17Ci0g
ICAgcmV0dXJuIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgfHwgaGFzQ29udGVudEVsZW1lbnQo
KTsKLX0KLQogaW5saW5lIFNoYWRvd1Jvb3QqIHRvU2hhZG93Um9vdChOb2RlKiBub2RlKQogewog
ICAgIEFTU0VSVCghbm9kZSB8fCBub2RlLT5pc1NoYWRvd1Jvb3QoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L1NoYWRvd1Jvb3RMaXN0LmNwcAppbmRleCAyNjQ3NjRlNzJmNDczMGJlMGZiMmI2YWZjOTcxMTAz
MzUyYzMxMzRkLi4zYWRlZTYzNzAwM2ZlZWViYmQ1M2ZmNzJkYzM1N2JhMTFkMDNkMGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Um9vdExpc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5jcHAKQEAgLTMyLDEwICszMiwxMiBAQAogI2lu
Y2x1ZGUgIkhUTUxDb250ZW50U2VsZWN0b3IuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgorI2luY2x1ZGUgIlRleHQuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBTaGFkb3dSb290TGlzdDo6U2hhZG93Um9vdExpc3QoKQor
ICAgIDogbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudChmYWxzZSkKIHsKIH0KIApAQCAtOTQsMTIg
Kzk2LDYgQEAgdm9pZCBTaGFkb3dSb290TGlzdDo6d2lsbFJlbW92ZSgpCiAgICAgICAgIHJvb3Qt
PndpbGxSZW1vdmUoKTsKIH0KIAotdm9pZCBTaGFkb3dSb290TGlzdDo6aG9zdENoaWxkcmVuQ2hh
bmdlZCgpCi17Ci0gICAgZm9yIChTaGFkb3dSb290KiByb290ID0geW91bmdlc3RTaGFkb3dSb290
KCk7IHJvb3Q7IHJvb3QgPSByb290LT5vbGRlclNoYWRvd1Jvb3QoKSkKLSAgICAgICAgcm9vdC0+
aG9zdENoaWxkcmVuQ2hhbmdlZCgpOwotfQotCiB2b2lkIFNoYWRvd1Jvb3RMaXN0OjphdHRhY2go
KQogewogICAgIC8vIEZJWE1FOiBDdXJyZW50bHkgd2Ugb25seSBzdXBwb3J0IHRoZSBjYXNlIHRo
YXQgdGhlIHNoYWRvdyByb290IGxpc3QgaGFzIGF0IG1vc3Qgb25lIHNoYWRvdyByb290LgpAQCAt
MTM5LDYgKzEzNSw5OCBAQCBib29sIFNoYWRvd1Jvb3RMaXN0Ojppc1NlbGVjdG9yQWN0aXZlKCkg
Y29uc3QKICAgICByZXR1cm4gbV9zZWxlY3RvciAmJiBtX3NlbGVjdG9yLT5oYXNDYW5kaWRhdGVz
KCk7CiB9CiAKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlYXR0YWNoKCkKK3sKKyAgICBkZXRhY2go
KTsKKyAgICBhdHRhY2goKTsKK30KKworYm9vbCBTaGFkb3dSb290TGlzdDo6Y2hpbGROZWVkc1N0
eWxlUmVjYWxjKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOworICAgIGlm
ICgheW91bmdlc3RTaGFkb3dSb290KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJl
dHVybiB5b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+Y2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisK
K2Jvb2wgU2hhZG93Um9vdExpc3Q6Om5lZWRzU3R5bGVSZWNhbGMoKQoreworICAgIEFTU0VSVCh5
b3VuZ2VzdFNoYWRvd1Jvb3QoKSk7CisgICAgaWYgKCF5b3VuZ2VzdFNoYWRvd1Jvb3QoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHlvdW5nZXN0U2hhZG93Um9vdCgpLT5u
ZWVkc1N0eWxlUmVjYWxjKCk7Cit9CisKK3ZvaWQgU2hhZG93Um9vdExpc3Q6OnJlY2FsY1NoYWRv
d1RyZWVTdHlsZShOb2RlOjpTdHlsZUNoYW5nZSBjaGFuZ2UpCit7CisgICAgU2hhZG93Um9vdCog
eW91bmdlc3QgPSB5b3VuZ2VzdFNoYWRvd1Jvb3QoKTsKKyAgICBpZiAoIXlvdW5nZXN0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBpZiAobmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRv
dygpKQorICAgICAgICByZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAgIGVsc2Ug
eworICAgICAgICBmb3IgKE5vZGUqIG4gPSB5b3VuZ2VzdC0+Zmlyc3RDaGlsZCgpOyBuOyBuID0g
bi0+bmV4dFNpYmxpbmcoKSkgeworICAgICAgICAgICAgaWYgKG4tPmlzRWxlbWVudE5vZGUoKSkK
KyAgICAgICAgICAgICAgICBzdGF0aWNfY2FzdDxFbGVtZW50Kj4obiktPnJlY2FsY1N0eWxlKGNo
YW5nZSk7CisgICAgICAgICAgICBlbHNlIGlmIChuLT5pc1RleHROb2RlKCkpCisgICAgICAgICAg
ICAgICAgdG9UZXh0KG4pLT5yZWNhbGNUZXh0U3R5bGUoY2hhbmdlKTsKKyAgICAgICAgfQorICAg
IH0KKworICAgIGNsZWFyTmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOworICAg
IGZvciAoU2hhZG93Um9vdCogcm9vdCA9IHlvdW5nZXN0U2hhZG93Um9vdCgpOyByb290OyByb290
ID0gcm9vdC0+b2xkZXJTaGFkb3dSb290KCkpIHsKKyAgICAgICAgcm9vdC0+Y2xlYXJOZWVkc1N0
eWxlUmVjYWxjKCk7CisgICAgICAgIHJvb3QtPmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxjKCk7
CisgICAgfQorfQorCitib29sIFNoYWRvd1Jvb3RMaXN0OjpuZWVkc1JlYXR0YWNoSG9zdENoaWxk
cmVuQW5kU2hhZG93KCkKK3sKKyAgICByZXR1cm4gbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCB8
fCAoeW91bmdlc3RTaGFkb3dSb290KCkgJiYgeW91bmdlc3RTaGFkb3dSb290KCktPmhhc0NvbnRl
bnRFbGVtZW50KCkpOworfQorCit2b2lkIFNoYWRvd1Jvb3RMaXN0Ojpob3N0Q2hpbGRyZW5DaGFu
Z2VkKCkKK3sKKyAgICBBU1NFUlQoeW91bmdlc3RTaGFkb3dSb290KCkpOworCisgICAgaWYgKCF5
b3VuZ2VzdFNoYWRvd1Jvb3QoKS0+aGFzQ29udGVudEVsZW1lbnQoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgLy8gVGhpcyByZXN1bHRzIGluIGZvcmNlZCBkZXRhY2hpbmcvYXR0YWNoaW5nIG9m
IHRoZSBzaGFkb3cgcmVuZGVyIHRyZWUuIFNlZSBTaGFkb3dSb290OjpyZWNhbGNTdHlsZSgpLgor
ICAgIHNldE5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKK30KKwordm9pZCBT
aGFkb3dSb290TGlzdDo6c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpCit7
CisgICAgbV9uZWVkc1JlY2FsY3VsYXRlQ29udGVudCA9IHRydWU7CisKKyAgICBob3N0KCktPnNl
dE5lZWRzU3R5bGVSZWNhbGMoKTsKK30KKwordm9pZCBTaGFkb3dSb290TGlzdDo6cmVhdHRhY2hI
b3N0Q2hpbGRyZW5BbmRTaGFkb3coKQoreworICAgIEFTU0VSVCh5b3VuZ2VzdFNoYWRvd1Jvb3Qo
KSk7CisKKyAgICBOb2RlKiBob3N0Tm9kZSA9IHlvdW5nZXN0U2hhZG93Um9vdCgpLT5ob3N0KCk7
CisgICAgaWYgKCFob3N0Tm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChOb2RlKiBj
aGlsZCA9IGhvc3ROb2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0
U2libGluZygpKSB7CisgICAgICAgIGlmIChjaGlsZC0+YXR0YWNoZWQoKSkKKyAgICAgICAgICAg
IGNoaWxkLT5kZXRhY2goKTsKKyAgICB9CisKKyAgICByZWF0dGFjaCgpOworCisgICAgZm9yIChO
b2RlKiBjaGlsZCA9IGhvc3ROb2RlLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxk
LT5uZXh0U2libGluZygpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmF0dGFjaGVkKCkpCisgICAg
ICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CisgICAgfQorfQorCiBIVE1MQ29udGVudFNlbGVjdG9y
KiBTaGFkb3dSb290TGlzdDo6ZW5zdXJlU2VsZWN0b3IoKQogewogICAgIGlmICghbV9zZWxlY3Rv
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dSb290TGlzdC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKaW5kZXggMmI0OTg0OTNhODQ2N2VmYTlh
MGY2MjM1MTM4YzZkZWQ0NDJiMDY1ZC4uZGIzMTcwYTZkOWIzZGM3NTc0YzEzNjE0YjdjZDU2OThm
MzEzN2JiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd1Jvb3RMaXN0LmgKQEAgLTM3LDggKzM3LDgg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBOb2RlOwogY2xhc3MgRWxlbWVudDsKLWNs
YXNzIEhUTUxDb250ZW50RWxlbWVudDsKIGNsYXNzIEhUTUxDb250ZW50U2VsZWN0b3I7CitjbGFz
cyBJbnNlcnRpb25Qb2ludDsKIAogY2xhc3MgU2hhZG93Um9vdExpc3QgewogcHVibGljOgpAQCAt
NTgsMTAgKzU4LDE4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZWRGcm9tVHJlZShib29sIGRl
ZXApOwogICAgIHZvaWQgd2lsbFJlbW92ZSgpOwogCi0gICAgdm9pZCBob3N0Q2hpbGRyZW5DaGFu
Z2VkKCk7Ci0KICAgICB2b2lkIGF0dGFjaCgpOwogICAgIHZvaWQgZGV0YWNoKCk7CisgICAgdm9p
ZCByZWF0dGFjaCgpOworCisgICAgYm9vbCBjaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICBi
b29sIG5lZWRzU3R5bGVSZWNhbGMoKTsKKyAgICB2b2lkIHJlY2FsY1NoYWRvd1RyZWVTdHlsZShO
b2RlOjpTdHlsZUNoYW5nZSk7CisgICAgdm9pZCBzZXROZWVkc1JlYXR0YWNoSG9zdENoaWxkcmVu
QW5kU2hhZG93KCk7CisgICAgdm9pZCBjbGVhck5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRT
aGFkb3coKTsKKyAgICBib29sIG5lZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsK
KyAgICB2b2lkIHJlYXR0YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CisgICAgdm9pZCBob3N0
Q2hpbGRyZW5DaGFuZ2VkKCk7CiAKICAgICBJbnNlcnRpb25Qb2ludCogaW5zZXJ0aW9uUG9pbnRG
b3IoTm9kZSopIGNvbnN0OwogCkBAIC03NSw2ICs4Myw3IEBAIHByaXZhdGU6CiAKICAgICBEb3Vi
bHlMaW5rZWRMaXN0PFNoYWRvd1Jvb3Q+IG1fc2hhZG93Um9vdHM7CiAgICAgT3duUHRyPEhUTUxD
b250ZW50U2VsZWN0b3I+IG1fc2VsZWN0b3I7CisgICAgYm9vbCBtX25lZWRzUmVjYWxjdWxhdGVD
b250ZW50IDogMTsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShTaGFkb3dSb290TGlzdCk7CiB9
OwogCkBAIC05OCw2ICsxMDcsMTEgQEAgaW5saW5lIEhUTUxDb250ZW50U2VsZWN0b3IqIFNoYWRv
d1Jvb3RMaXN0OjpzZWxlY3RvcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fc2VsZWN0b3IuZ2V0KCk7
CiB9CiAKK2lubGluZSB2b2lkIFNoYWRvd1Jvb3RMaXN0OjpjbGVhck5lZWRzUmVhdHRhY2hIb3N0
Q2hpbGRyZW5BbmRTaGFkb3coKQoreworICAgIG1fbmVlZHNSZWNhbGN1bGF0ZUNvbnRlbnQgPSBm
YWxzZTsKK30KKwogaW5saW5lIEVsZW1lbnQqIFNoYWRvd1Jvb3RMaXN0Ojpob3N0KCkgY29uc3QK
IHsKICAgICBBU1NFUlQoaGFzU2hhZG93Um9vdCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuY3BwCmluZGV4IDA2YmUyMzAzODhlZTE5MTA4
NTM3YzQzOGI2MjVhNmFhZDBjZWQ3NmEuLjk4OWFjYWVlNjRiNjYxMDE4NmM1ODBlMjM5YTEwOGIy
ZTM2ZWIyOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250
ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50LmNwcApAQCAtNzQsNyArNzQsNyBAQCB2b2lkIEhUTUxDb250ZW50RWxlbWVudDo6
YXR0YWNoKCkKIAogICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0eWxlZEVsZW1lbnQ6OmF0dGFjaCwg
c2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgogICAgIGlmIChyb290KSB7Ci0gICAgICAgIEhU
TUxDb250ZW50U2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+aG9zdCgpLT5zaGFkb3dSb290TGlz
dCgpLT5lbnN1cmVTZWxlY3RvcigpOworICAgICAgICBIVE1MQ29udGVudFNlbGVjdG9yKiBzZWxl
Y3RvciA9IHJvb3QtPmxpc3QoKS0+ZW5zdXJlU2VsZWN0b3IoKTsKICAgICAgICAgc2VsZWN0b3It
PnVuc2VsZWN0KCZtX3NlbGVjdGlvbnMpOwogICAgICAgICBzZWxlY3Rvci0+c2VsZWN0KHRoaXMs
ICZtX3NlbGVjdGlvbnMpOwogICAgIH0KQEAgLTkwLDEyICs5MCwxMiBAQCB2b2lkIEhUTUxDb250
ZW50RWxlbWVudDo6YXR0YWNoKCkKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjpkZXRhY2goKQog
ewogICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290
Tm9kZSgpKSkgewotICAgICAgICBpZiAoSFRNTENvbnRlbnRTZWxlY3Rvciogc2VsZWN0b3IgPSBy
b290LT5ob3N0KCktPnNoYWRvd1Jvb3RMaXN0KCktPnNlbGVjdG9yKCkpCisgICAgICAgIGlmIChI
VE1MQ29udGVudFNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmxpc3QoKS0+c2VsZWN0b3IoKSkK
ICAgICAgICAgICAgIHNlbGVjdG9yLT51bnNlbGVjdCgmbV9zZWxlY3Rpb25zKTsKIAogICAgICAg
ICAvLyBXaGVuIGNvbnRlbnQgZWxlbWVudCBpcyBkZXRhY2hlZCwgc2hhZG93IHRyZWUgc2hvdWxk
IGJlIHJlY3JlYXRlZCB0byByZS1jYWxjdWxhdGUgc2VsZWN0b3IgZm9yCiAgICAgICAgIC8vIG90
aGVyIGNvbnRlbnQgZWxlbWVudHMuCi0gICAgICAgIHJvb3QtPnNldE5lZWRzUmVhdHRhY2hIb3N0
Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICAgICAgcm9vdC0+bGlzdCgpLT5zZXROZWVkc1JlYXR0
YWNoSG9zdENoaWxkcmVuQW5kU2hhZG93KCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fc2VsZWN0
aW9ucy5pc0VtcHR5KCkpOwpAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgSFRNTENvbnRlbnRFbGVt
ZW50OjpwYXJzZUF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBzZWxlY3RBdHRyKSB7CiAgICAgICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9T
aGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkKLSAgICAgICAgICAgIHJvb3QtPnNldE5l
ZWRzUmVhdHRhY2hIb3N0Q2hpbGRyZW5BbmRTaGFkb3coKTsKKyAgICAgICAgICAgIHJvb3QtPmxp
c3QoKS0+c2V0TmVlZHNSZWF0dGFjaEhvc3RDaGlsZHJlbkFuZFNoYWRvdygpOwogICAgIH0gZWxz
ZQogICAgICAgICBJbnNlcnRpb25Qb2ludDo6cGFyc2VBdHRyaWJ1dGUoYXR0cik7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>