<?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>75306</bug_id>
          
          <creation_ts>2011-12-28 05:34:00 -0800</creation_ts>
          <short_desc>ShadowContentElement query should be able to have fallback element.</short_desc>
          <delta_ts>2012-01-30 18:53:17 -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>
          <dependson>75302</dependson>
          <blocked>75930</blocked>
    
    <blocked>76262</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Shinya Kawanaka">shinyak</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dominicc</cc>
    
    <cc>morrita</cc>
    
    <cc>shinyak</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>527626</commentid>
    <comment_count>0</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2011-12-28 05:34:00 -0800</bug_when>
    <thetext>In the case issue 75302 is landed, we would like to have fallback element when query does not matches any elements.
Currently ShadowContentElement is not allowed to have children, but it can be used for fallback elements.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529941</commentid>
    <comment_count>1</comment_count>
    <who name="Dominic Cooney">dominicc</who>
    <bug_when>2012-01-04 18:41:21 -0800</bug_when>
    <thetext>When is the right time to move ShadowContentElement out of dom/ and into html/(somewhere) and make it a subtype of HTMLElement instead of Element?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>529960</commentid>
    <comment_count>2</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-01-04 19:31:18 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; When is the right time to move ShadowContentElement out of dom/ and into html/(somewhere) and make it a subtype of HTMLElement instead of Element?

I think we can do this now, right? There&apos;s no visible effect at the moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530143</commentid>
    <comment_count>3</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-05 03:00:24 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (In reply to comment #1)
&gt; &gt; When is the right time to move ShadowContentElement out of dom/ and into html/(somewhere) and make it a subtype of HTMLElement instead of Element?
&gt; 
&gt; I think we can do this now, right? There&apos;s no visible effect at the moment.
No, there is no visible effect. So we can turn this into a subclass of HTMLElement.
BTW apparently the comment was jumped from some other bug, it looks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534726</commentid>
    <comment_count>4</comment_count>
      <attachid>122208</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-12 04:00:50 -0800</bug_when>
    <thetext>Created attachment 122208
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536868</commentid>
    <comment_count>5</comment_count>
      <attachid>122709</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 20:58:37 -0800</bug_when>
    <thetext>Created attachment 122709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536875</commentid>
    <comment_count>6</comment_count>
      <attachid>122709</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-16 21:32:07 -0800</bug_when>
    <thetext>Comment on attachment 122709
Patch

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

Could you test some nested cases?

&gt; Source/WebCore/ChangeLog:24
&gt; +          Changed the order of calculation a bit.

Please explain the change concretely.

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:86
&gt; +            if (!shadowContentElement-&gt;inclusions() || !shadowContentElement-&gt;inclusions()-&gt;first()) {

Can inclusions() be null? Is it OK to take the case as a fallback?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536901</commentid>
    <comment_count>7</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 23:26:30 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 122709 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122709&amp;action=review
&gt; 
&gt; Could you test some nested cases?
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:24
&gt; &gt; +          Changed the order of calculation a bit.
&gt; 
&gt; Please explain the change concretely.

Done.

&gt; 
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:86
&gt; &gt; +            if (!shadowContentElement-&gt;inclusions() || !shadowContentElement-&gt;inclusions()-&gt;first()) {
&gt; 
&gt; Can inclusions() be null? Is it OK to take the case as a fallback?

Ah, inclusions() won&apos;t be null.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536902</commentid>
    <comment_count>8</comment_count>
      <attachid>122718</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-16 23:26:52 -0800</bug_when>
    <thetext>Created attachment 122718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537501</commentid>
    <comment_count>9</comment_count>
      <attachid>122718</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-17 17:43:50 -0800</bug_when>
    <thetext>Comment on attachment 122718
Patch

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

Basically looks fine. Could you add some more tests?

&gt; Source/WebCore/dom/NodeRenderingContext.cpp:85
&gt; +            if (!shadowContentElement-&gt;inclusions()-&gt;first()) {

Could you make this conditional a method on ShadowContentElement? hasInclusion() or something?

&gt; LayoutTests/fast/dom/shadow/shadow-contents-fallback.html:1
&gt; +&lt;!DOCTYPE html&gt;

Oops, I meant to talk about content inside shadow inside content.
Such pattern should hit tricky flattening path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537716</commentid>
    <comment_count>10</comment_count>
      <attachid>122890</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 01:47:35 -0800</bug_when>
    <thetext>Created attachment 122890
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537717</commentid>
    <comment_count>11</comment_count>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 01:48:07 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 122718 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=122718&amp;action=review
&gt; 
&gt; Basically looks fine. Could you add some more tests?
&gt; 
&gt; &gt; Source/WebCore/dom/NodeRenderingContext.cpp:85
&gt; &gt; +            if (!shadowContentElement-&gt;inclusions()-&gt;first()) {
&gt; 
&gt; Could you make this conditional a method on ShadowContentElement? hasInclusion() or something?

Done.

&gt; &gt; LayoutTests/fast/dom/shadow/shadow-contents-fallback.html:1
&gt; &gt; +&lt;!DOCTYPE html&gt;
&gt; 
&gt; Oops, I meant to talk about content inside shadow inside content.
&gt; Such pattern should hit tricky flattening path.

I&apos;ve added a few more tests about it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537718</commentid>
    <comment_count>12</comment_count>
      <attachid>122891</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 01:50:18 -0800</bug_when>
    <thetext>Created attachment 122891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537788</commentid>
    <comment_count>13</comment_count>
      <attachid>122904</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 05:28:33 -0800</bug_when>
    <thetext>Created attachment 122904
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538378</commentid>
    <comment_count>14</comment_count>
      <attachid>122904</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-18 18:04:43 -0800</bug_when>
    <thetext>Comment on attachment 122904
Patch

Thanks for your hard work! Let&apos;s land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538379</commentid>
    <comment_count>15</comment_count>
      <attachid>122904</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-01-18 18:05:21 -0800</bug_when>
    <thetext>Comment on attachment 122904
Patch

Oops. ChangeLog has wrong diff. Could you update it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538427</commentid>
    <comment_count>16</comment_count>
      <attachid>123061</attachid>
    <who name="Shinya Kawanaka">shinyak</who>
    <bug_when>2012-01-18 20:35:42 -0800</bug_when>
    <thetext>Created attachment 123061
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538500</commentid>
    <comment_count>17</comment_count>
      <attachid>123061</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 23:06:12 -0800</bug_when>
    <thetext>Comment on attachment 123061
Patch

Clearing flags on attachment: 123061

Committed r105387: &lt;http://trac.webkit.org/changeset/105387&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538501</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 23:06:18 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122208</attachid>
            <date>2012-01-12 04:00:50 -0800</date>
            <delta_ts>2012-01-16 20:58:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120112210049.patch</filename>
            <type>text/plain</type>
            <size>16784</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0ODA2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzFhNjQ5NzM5MTJmY2M5
YjcwODNlZmZjNjFmMThmMzU5NzgxNjI1Yy4uNmEwYTUyZDJkMmExNWUwODExMjFmNDE3NTJjOThh
YzczNjNjZDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI5IEBACiAyMDEyLTAxLTEyICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgU2hhZG93Q29udGVu
dEVsZW1lbnQgcXVleXIgc2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBmYWxsYmFjayBlbGVtZW50Lgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVs
ZW1lbnRzIGFyZSBzZWxlY3RlZCBieSBTaGFkb3dDb250ZW50RWxlbWVudCBzZWxlY3RvciBxdWVy
eSwKKyAgICAgICAgbGlnaHQgZWxlbWVudHMgb2YgU2hhZG93Q29udGVudEVsZW1lbnQgYXJlIHVz
ZWQgYXMgZmFsbGJhY2sgZWxlbWVudHMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL3NoYWRv
dy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZHluYW1pYy1leHBlY3RlZC5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWR5bmFtaWMu
aHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxs
YmFjay1leHBlY3RlZC5odG1sCisgICAgICAgICAgICAgICBmYXN0L2RvbS9zaGFkb3cvc2hhZG93
LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwKKworICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJl
bmRlcmluZ0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6
Om5leHRSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyaW5nQ29udGV4dDo6
cHJldmlvdXNSZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpOb2RlUmVuZGVyZXJGYWN0b3J5
OjpjcmVhdGVSZW5kZXJlcklmTmVlZGVkKToKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0Nv
bnRleHQuaDoKKyAgICAgICAgKiBkb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2hhZG93Q29udGVudEVsZW1lbnQ6OmF0dGFjaCk6CisKKzIwMTItMDEtMTIg
IFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwogICAgICAgICBTaGFkb3dD
b250ZW50RWxlbWVudCBzaG91bGQgYmUgYWJsZSB0byB1c2UgcXVlcnkuCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NTMwMgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBlZjg1ZjdkMjNmNzgyM2Y5Y2Yx
ZjEwZDVjODgyMWJhOGFhNzFiYzA5Li4xZDhjNjk1OWVkMGNkMzhmNjQzM2JiNmZiZDZhNmFkZWVi
NzQ3NjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAK
QEAgLTczLDEyICs3MywyMiBAQCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0Nv
bnRleHQoTm9kZSogbm9kZSkKICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29udGVu
dEZvcndhcmRlZDsKICAgICAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRT
dHlsZSA9IE5vZGVSZW5kZXJpbmdDb250ZXh0KG1faW5jbHVkZXIpLnBhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSgpOwogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0g
Ci0gICAgICAgICAgICAgICAgCisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIG1fcGhhc2Ug
PSBBdHRhY2hDb250ZW50TGlnaHQ7CiAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJp
bmdBbmRTdHlsZSA9IHBhcmVudDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisg
ICAgICAgIGlmIChwYXJlbnQtPmlzQ29udGVudEVsZW1lbnQoKSkgeworICAgICAgICAgICAgU2hh
ZG93Q29udGVudEVsZW1lbnQqIHNoYWRvd0NvbnRlbnRFbGVtZW50ID0gdG9TaGFkb3dDb250ZW50
RWxlbWVudChwYXJlbnQpOworCisgICAgICAgICAgICBpZiAoIXNoYWRvd0NvbnRlbnRFbGVtZW50
LT5pbmNsdXNpb25zKCkgfHwgIXNoYWRvd0NvbnRlbnRFbGVtZW50LT5pbmNsdXNpb25zKCktPmZp
cnN0KCkpIHsKKyAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29udGVudEZhbGxiYWNr
OworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gTm9k
ZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAg
ICB9CiAKICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKQEAg
LTE3Niw3ICsxODYsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0
UmVuZGVyZXIoKSBjb25zdAogCiAgICAgLy8gQXZvaWQgYW4gTyhuXjIpIHByb2JsZW0gd2l0aCB0
aGlzIGZ1bmN0aW9uIGJ5IG5vdCBjaGVja2luZyBmb3IKICAgICAvLyBuZXh0UmVuZGVyZXIoKSB3
aGVuIHRoZSBwYXJlbnQgZWxlbWVudCBoYXNuJ3QgYXR0YWNoZWQgeWV0LgotICAgIGlmIChtX25v
ZGUtPnBhcmVudE9ySG9zdE5vZGUoKSAmJiAhbV9ub2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmF0
dGFjaGVkKCkpCisgICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpICYmICFtX25vZGUt
PnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQoKSAmJiBtX3BoYXNlICE9IEF0dGFjaENvbnRl
bnRGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBt
X25vZGUtPm5leHRTaWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7
CkBAIC0xODYsMTIgKzE5NiwxNiBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0
OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICAgICAgcmV0dXJuIG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgICAgIH0KKwogICAgICAgICBpZiAo
bm9kZS0+aXNDb250ZW50RWxlbWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoUmVuZGVyT2JqZWN0
KiBmaXJzdCA9IGZpcnN0UmVuZGVyZXJPZih0b1NoYWRvd0NvbnRlbnRFbGVtZW50KG5vZGUpKSkK
ICAgICAgICAgICAgICAgICByZXR1cm4gZmlyc3Q7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBp
ZiAobV9waGFzZSA9PSBBdHRhY2hDb250ZW50RmFsbGJhY2spCisgICAgICAgIHJldHVybiBOb2Rl
UmVuZGVyaW5nQ29udGV4dChtX25vZGUtPnBhcmVudE5vZGUoKSkubmV4dFJlbmRlcmVyKCk7CisK
ICAgICByZXR1cm4gMDsKIH0KIApAQCAtMjI1LDYgKzIzOSw5IEBAIFJlbmRlck9iamVjdCogTm9k
ZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIoKSBjb25zdAogICAgICAgICB9CiAg
ICAgfQogCisgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29udGVudEZhbGxiYWNrKQorICAgICAg
ICByZXR1cm4gTm9kZVJlbmRlcmluZ0NvbnRleHQobV9ub2RlLT5wYXJlbnROb2RlKCkpLnByZXZp
b3VzUmVuZGVyZXIoKTsKKwogICAgIHJldHVybiAwOwogfQogCkBAIC0zMTcsNiArMzM0LDcgQEAg
UmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyZXJGYWN0b3J5OjpjcmVhdGVSZW5kZXJlcigpCiAKIHZv
aWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3JlYXRlUmVuZGVyZXJJZk5lZWRlZCgpCiB7CisKICAg
ICBOb2RlKiBub2RlID0gbV9jb250ZXh0Lm5vZGUoKTsKICAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBub2RlLT5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQtPnNob3VsZENyZWF0ZVJlbmRl
cmVycygpKQpAQCAtMzQzLDkgKzM2MSw5IEBAIHZvaWQgTm9kZVJlbmRlcmVyRmFjdG9yeTo6Y3Jl
YXRlUmVuZGVyZXJJZk5lZWRlZCgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZW5k
ZXJPYmplY3QqIHBhcmVudFJlbmRlcmVyID0gbV9jb250ZXh0Lmhhc0Zsb3dUaHJlYWRQYXJlbnQo
KSA/IG1fY29udGV4dC5wYXJlbnRGbG93UmVuZGVyZXIoKSA6IG1fY29udGV4dC5wYXJlbnRSZW5k
ZXJlcigpOwogICAgIC8vIERvIG5vdCBjYWxsIG1fY29udGV4dC5uZXh0UmVuZGVyZXIoKSBoZXJl
IGluIHRoZSBmaXJzdCBjbGF1c2UsIGJlY2F1c2UgaXQgZXhwZWN0cyB0byBoYXZlCiAgICAgLy8g
dGhlIHJlbmRlcmVyIGFkZGVkIHRvIGl0cyBwYXJlbnQgYWxyZWFkeS4KKyAgICBSZW5kZXJPYmpl
Y3QqIHBhcmVudFJlbmRlcmVyID0gbV9jb250ZXh0Lmhhc0Zsb3dUaHJlYWRQYXJlbnQoKSA/IG1f
Y29udGV4dC5wYXJlbnRGbG93UmVuZGVyZXIoKSA6IG1fY29udGV4dC5wYXJlbnRSZW5kZXJlcigp
OwogICAgIFJlbmRlck9iamVjdCogbmV4dFJlbmRlcmVyID0gbV9jb250ZXh0Lmhhc0Zsb3dUaHJl
YWRQYXJlbnQoKSA/IG1fY29udGV4dC5wYXJlbnRGbG93UmVuZGVyZXIoKS0+bmV4dFJlbmRlcmVy
Rm9yTm9kZShub2RlKSA6IG1fY29udGV4dC5uZXh0UmVuZGVyZXIoKTsKICAgICBSZW5kZXJPYmpl
Y3QqIG5ld1JlbmRlcmVyID0gY3JlYXRlUmVuZGVyZXIoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBiNGU4OTEyOTdhNjJjYjQ3ZGI3Yzk1ODQzYTBl
YTA3ZGNhNGY2YmIwLi44NDBjYjM2Mzg2YTBiNWMzMzAxOGJmODNmY2IyZWRhNTUxMmY0ZDQwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaApAQCAtNzksNiArNzks
NyBAQCBwcml2YXRlOgogICAgICAgICBBdHRhY2hTdHJhaWdodCwKICAgICAgICAgQXR0YWNoQ29u
dGVudExpZ2h0LAogICAgICAgICBBdHRhY2hDb250ZW50Rm9yd2FyZGVkLAorICAgICAgICBBdHRh
Y2hDb250ZW50RmFsbGJhY2ssCiAgICAgfTsKIAogICAgIFRyZWVMb2NhdGlvbiBtX2xvY2F0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNzNh
ZDEwOWUwMWE1YjIyZTdiNDg1YzgxN2RlODAzZmVjZjEzYTc5My4uNWI4YzE5YjgwZTkyMDdmNjFk
ZmQ4YThhZDFjYTc3MDRiMzFkNDE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1No
YWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29u
dGVudEVsZW1lbnQuY3BwCkBAIC02MSwxMyArNjEsMTggQEAgU2hhZG93Q29udGVudEVsZW1lbnQ6
On5TaGFkb3dDb250ZW50RWxlbWVudCgpCiAKIHZvaWQgU2hhZG93Q29udGVudEVsZW1lbnQ6OmF0
dGFjaCgpCiB7Ci0gICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAvLyBDdXJyZW50bHkgZG9lc24n
dCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KLSAgICBTdHlsZWRFbGVtZW50OjphdHRhY2goKTsK
KyAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgp
KTsKIAotICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVS
b290Tm9kZSgpKSkgeworICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0eWxlZEVsZW1lbnQ6OmF0dGFj
aCwgc2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgorICAgIGlmIChyb290KSB7CiAgICAgICAg
IFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lv
bnMoKTsKICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CiAg
ICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICB9
CisKKyAgICBTdHlsZWRFbGVtZW50OjphdHRhY2goKTsKKworICAgIGlmIChyb290KSB7CiAgICAg
ICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0
KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCiAgICAgICAgICAg
ICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+ZGV0YWNoKCk7CiAgICAgICAgIGZvciAoU2hhZG93SW5j
bHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5j
bHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzgxN2FmODFhOTZjNWYzNGRkZDEw
OGMwOTE5MGI2ZmFhMjBmNDI1NS4uNDJiMjk4OGY1NTM5ZjQwMDU1NmVhNDc0NzAyOWI2MjU1ZWQ0
ZDZjNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE3IEBACiAyMDEyLTAxLTEyICBTaGlueWEgS2F3YW5ha2Eg
IDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgU2hhZG93Q29udGVudEVsZW1lbnQgcXVl
eXIgc2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBmYWxsYmFjayBlbGVtZW50LgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2stZHluYW1pYy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWR5bmFtaWMuaHRt
bDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxs
YmFjay1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hh
ZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWw6IEFkZGVkLgorCisyMDEyLTAxLTEyICBTaGlueWEg
S2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKICAgICAgICAgU2hhZG93Q29udGVudEVs
ZW1lbnQgc2hvdWxkIGJlIGFibGUgdG8gdXNlIHF1ZXJ5LgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLWV4cGVj
dGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZh
bGxiYWNrLWR5bmFtaWMtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTI5OWE3ZTY4NDIzMWQ1
MmU4ZDJlMzAzYzM3NDc1OTQ5OTExNjliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1keW5hbWljLWV4cGVjdGVk
Lmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRl
ckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9Cis8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb250YWluZXIiPgorPCEtLSB0ZXN0QXBw
ZW5kRmFsbGJhY2sgLS0+Cis8ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5hcHBlbmRlZDwv
c3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RSZW1vdmVGYWxsYmFjayAt
LT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmZhbGxiYWNrPC9zcGFuPjwvc3Bhbj48
c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RSZXBsYWNlRmFsbGJhY2sgLS0+Cis8
ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5yZXBsYWNlZDwvc3Bhbj48c3Bhbj5Xb3JsZC48
L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkIC0tPgorPGRpdj48
c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+ZmFsbGJhY2s8L3NwYW4+PHNwYW4+V29ybGQuPC9zcGFu
PjwvZGl2PgorPCEtLSB0ZXN0UmVwbGFjZUZhbGxiYWNrV2l0aFBzZXVkb1R5cGUgLS0+Cis8ZGl2
PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5uZXcgZmlyc3Qgb2YgdHlwZTwvc3Bhbj48c3Bhbj5X
b3JsZC48L3NwYW4+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZHlu
YW1pYy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1m
YWxsYmFjay1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmY0NWM5YWRhMTFlODVhMzk2MWNlMmVm
MTc4NjU2MWRlMDczZTY5OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZHluYW1pYy5odG1sCkBAIC0wLDAgKzEs
MTE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisvKiByZWxh
dGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KKy5jb250
YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gYXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFyIHJvb3QgPSBp
bnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNoaWxkMCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhl
bGxvLCI7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOworCisgICAgdmFyIGNvbnRlbnQg
PSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQsIHNlbGVjdCk7
CisgICAgeworICAgICAgICB2YXIgY29udGVudENoaWxkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKKyAgICAgICAgY29udGVudENoaWxkMS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywg
J2xpZ2h0Jyk7CisgICAgICAgIGNvbnRlbnRDaGlsZDEuaW5uZXJIVE1MID0gImZhbGxiYWNrIjsK
KyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjb250ZW50Q2hpbGQxKTsKKyAgICB9CisgICAg
cm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKKworICAgIHZhciBjaGlsZDEgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgY2hpbGQxLmlubmVySFRNTCA9ICJXb3JsZC4iOwor
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKK30KKworZnVuY3Rpb24gdGVzdEFwcGVuZEZh
bGxiYWNrKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+IjsKKworICAg
IGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjYXBwZW5kZWQiKTsKKworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworCisgICAgLy8gVHdl
YWtpbmcuCisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nYXBwZW5kZWQnPmFwcGVu
ZGVkPC9zcGFuPiI7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZW1vdmVGYWxsYmFjaygpIHsKKyAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0Lmlu
bmVySFRNTCA9ICI8c3BhbiBpZD0ndG8tcmVtb3ZlJz5jb250ZW50PC9zcGFuPiI7CisKKyAgICBh
cHBlbmRTaGFkb3codGFyZ2V0LCAiI3RvLXJlbW92ZSIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisKKyAgICAvLyBUd2Vh
a2luZy4KKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+IgorfQor
CitmdW5jdGlvbiB0ZXN0UmVwbGFjZUZhbGxiYWNrKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFu
IGlkPSd0by1yZXBsYWNlJz5jb250ZW50PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFy
Z2V0LCAiI3RvLXJlcGxhY2UiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250
YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworCisgICAgLy8gVHdlYWtpbmcuCisgICAgdGFy
Z2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0ndG8tcmVwbGFjZSc+cmVwbGFjZWQ8L3NwYW4+Igor
fQorCitmdW5jdGlvbiB0ZXN0UmVwbGFjZUZhbGxiYWNrV2l0aFBzZXVkb1R5cGUoKSB7CisgICAg
dmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5p
bm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRh
cmdldCwgInNwYW46Zmlyc3Qtb2YtdHlwZSIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisKKyAgICAvLyBUd2Vha2luZy4K
KyAgICB2YXIgc3BhbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFu
LmlubmVySFRNTCA9ICduZXcgZmlyc3Qgb2YgdHlwZSc7CisgICAgdGFyZ2V0Lmluc2VydEJlZm9y
ZShzcGFuLCB0YXJnZXQuZmlyc3RDaGlsZCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWxsYmFja0Nv
bnRlbnRDaGFuZ2VkKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPmNvbnRlbnQ8L3NwYW4+IjsK
KworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsKKworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworCisg
ICAgLy8gVHdlYWtpbmcuCisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJyk7CisgICAgc3Bhbi5pbm5lckhUTUwgPSAnYXBwZW5kZWQgY29udGVudCc7CisgICAgdGFy
Z2V0LmFwcGVuZENoaWxkKHNwYW4pOworfQorCisKK3ZhciB0ZXN0RnVuY3MgPSBbCisgICAgdGVz
dEFwcGVuZEZhbGxiYWNrLAorICAgIHRlc3RSZW1vdmVGYWxsYmFjaywKKyAgICB0ZXN0UmVwbGFj
ZUZhbGxiYWNrLAorICAgIHRlc3RGYWxsYmFja0NvbnRlbnRDaGFuZ2VkLAorICAgIHRlc3RSZXBs
YWNlRmFsbGJhY2tXaXRoUHNldWRvVHlwZQorXQorCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RnVuY3MubGVuZ3RoOyArK2kpCisgICAgICAgdGVzdEZ1
bmNzW2ldKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCki
PgorCis8ZGl2IGlkPSJjb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgorPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZXhwZWN0ZWQu
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJh
Y2stZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmFjNjNiNjU0Y2UxMzgzMWE0ZjcyZWQ5YjA0
NDU5ZTU4OWI3OWFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hh
ZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMjEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8qIHJlbGF0aXZl
IHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLworLmNvbnRhaW5l
ciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwhLS0gdGVzdEZhbGxiYWNrIC0tPgorPGRpdj48c3Bh
bj5IZWxsbyw8L3NwYW4+PHNwYW4+bGlnaHQ8L3NwYW4+PHNwYW4+bGlnaHQ8L3NwYW4+PHNwYW4+
V29ybGQuPC9zcGFuPjwvZGl2PgorPCEtLSB0ZXN0RmFsbGJhY2tEZWVwIC0tPgorPGRpdj48c3Bh
bj5IZWxsbyw8L3NwYW4+PHNwYW4+PHNwYW4+bGlnaHQ8L3NwYW4+PHNwYW4+bGlnaHQ8L3NwYW4+
PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdE5vbkZhbGxiYWNrV2l0
aExpZ2h0Q2hpbGRyZW4gLS0+Cis8ZGl2PjxzcGFuPkhlbGxvLDwvc3Bhbj48c3Bhbj5jb250ZW50
PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KKzwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50
cy1mYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250
ZW50cy1mYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU3NmMxNzgzMDA5MWFjOTNhNzExYTFkZWMz
MDdiZTk4MmYwNGUzOGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9z
aGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSwxMTYgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8qIHJlbGF0aXZlIHBvc2l0
aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLworLmNvbnRhaW5lciB7Cisg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBh
cHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3QpIHsKKyAgICB2YXIgcm9vdCA9IGludGVybmFscy5l
bnN1cmVTaGFkb3dSb290KHRhcmdldCk7CisKKyAgICB2YXIgY2hpbGQwID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOworICAgIGNoaWxkMC5pbm5lckhUTUwgPSAiSGVsbG8sIjsKKyAg
ICByb290LmFwcGVuZENoaWxkKGNoaWxkMCk7CisKKyAgICB2YXIgY29udGVudCA9IGludGVybmFs
cy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCwgc2VsZWN0KTsKKyAgICB7Cisg
ICAgICAgIHZhciBjb250ZW50Q2hpbGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OworICAgICAgICBjb250ZW50Q2hpbGQxLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnbGlnaHQnKTsK
KyAgICAgICAgY29udGVudENoaWxkMS5pbm5lckhUTUwgPSAibGlnaHQiOworICAgICAgICBjb250
ZW50LmFwcGVuZENoaWxkKGNvbnRlbnRDaGlsZDEpOworCisgICAgICAgIHZhciBjb250ZW50Q2hp
bGQyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgICAgICBjb250ZW50Q2hp
bGQyLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnbGlnaHQyJyk7CisgICAgICAgIGNvbnRlbnRDaGls
ZDIuaW5uZXJIVE1MID0gImxpZ2h0IjsKKyAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjb250
ZW50Q2hpbGQyKTsKKyAgICB9CisgICAgcm9vdC5hcHBlbmRDaGlsZChjb250ZW50KTsKKworICAg
IHZhciBjaGlsZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgY2hpbGQx
LmlubmVySFRNTCA9ICJXb3JsZC4iOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQxKTsKK30K
KworZnVuY3Rpb24gYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciBy
b290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRvd1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjaGls
ZDAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgY2hpbGQwLmlubmVySFRN
TCA9ICJIZWxsbywiOworICAgIGNoaWxkMC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2NoaWxkMCcp
OworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQwKTsKKworICAgIHZhciBjaGlsZDEgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgY2hpbGQxLnNldEF0dHJpYnV0ZSgndGl0
bGUnLCAnY2hpbGQxJyk7CisgICAgeworICAgICAgICB2YXIgY29udGVudCA9IGludGVybmFscy5j
cmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCwgc2VsZWN0KTsKKyAgICAgICAgY29u
dGVudC5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ3NoYWRvdy1jb250ZW50Jyk7CisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBjb250ZW50Q2hpbGQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
c3BhbiIpOworICAgICAgICAgICAgY29udGVudENoaWxkMS5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywg
J2xpZ2h0Jyk7CisgICAgICAgICAgICBjb250ZW50Q2hpbGQxLmlubmVySFRNTCA9ICJsaWdodCI7
CisgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNvbnRlbnRDaGlsZDEpOworCisgICAg
ICAgICAgICB2YXIgY29udGVudENoaWxkMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4i
KTsKKyAgICAgICAgICAgIGNvbnRlbnRDaGlsZDIuc2V0QXR0cmlidXRlKCd0aXRsZScsICdsaWdo
dDInKTsKKyAgICAgICAgICAgIGNvbnRlbnRDaGlsZDIuaW5uZXJIVE1MID0gImxpZ2h0IjsKKyAg
ICAgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY29udGVudENoaWxkMik7CisgICAgICAgIH0K
KyAgICAgICAgY2hpbGQxLmFwcGVuZENoaWxkKGNvbnRlbnQpOworICAgIH0KKyAgICByb290LmFw
cGVuZENoaWxkKGNoaWxkMSk7CisKKyAgICB2YXIgY2hpbGQyID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOworICAgIGNoaWxkMi5zZXRBdHRyaWJ1dGUoJ3RpdGxlJywgJ2NoaWxkMicp
OworICAgIGNoaWxkMi5pbm5lckhUTUwgPSAiV29ybGQuIjsKKyAgICByb290LmFwcGVuZENoaWxk
KGNoaWxkMik7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWxsYmFjaygpIHsKKyAgICB2YXIgdGFyZ2V0
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9
ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI25v
bi1lbGVtZW50Iik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24gdGVzdEZhbGxiYWNrRGVlcCgpIHsK
KyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFy
Z2V0LmlubmVySFRNTCA9ICI8c3Bhbj5jb250ZW50PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFk
b3dEZWVwKHRhcmdldCwgIiNub24tZWxlbWVudCIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRl
c3ROb25GYWxsYmFja1dpdGhMaWdodENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFu
IGlkPSdjb250ZW50Jz5jb250ZW50PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0
LCAiI2NvbnRlbnQiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXIn
KS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCit2YXIgdGVzdEZ1bmNzID0gWworICAgIHRlc3RG
YWxsYmFjaywKKyAgICB0ZXN0RmFsbGJhY2tEZWVwLAorICAgIHRlc3ROb25GYWxsYmFja1dpdGhM
aWdodENoaWxkcmVuCitdCisKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7ICsraSkKKyAgICAgICB0ZXN0RnVuY3NbaV0oKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisKKzxkaXYgaWQ9
ImNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48
L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122709</attachid>
            <date>2012-01-16 20:58:37 -0800</date>
            <delta_ts>2012-01-16 23:26:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120117135836.patch</filename>
            <type>text/plain</type>
            <size>10557</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uM2M3NzEyMGZjZGY5MjcyNjg3M2I3MzBkZjFhZTVi
MDk5NmUyNTZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBzZWxlY3RlZCBieSBhIHNoYWRvdyBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IgcXVlcnks
CisgICAgICAgIGxpZ2h0IGNoaWxkcmVuIGFyZSBzZWxlY3RlZCBhcyBhIGZhbGxiYWNrIGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZh
bGxiYWNrLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2suaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2Rl
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICAgQ29uc2lkZXJzIGZhbGxiYWNrIHBoYXNlLiBX
aGVuIG5vIGVsZW1lbnRzIGFyZSBjaG9zZW4sIHBoYXNlIGlzIHNldCB0byAnZmFsbGJhY2snLgor
ICAgICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcik6Cisg
ICAgICAgICAgVGFrZXMgZmFsbGJhY2sgcGhhc2UgaW50byBhY2NvdW50LgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOiBkaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJlckZhY3Rvcnk6OmNyZWF0ZVJlbmRlcmVySWZOZWVk
ZWQpOgorICAgICAgICAqIGRvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oOgorICAgICAgICAqIGRv
bS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFkb3dDb250
ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgICBDaGFuZ2VkIHRoZSBvcmRlciBvZiBjYWxj
dWxhdGlvbiBhIGJpdC4KKwogMjAxMi0wMS0xNiAgRW5yaWNhIENhc3VjY2kgIDxlbnJpY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IHIxMDI1NTMgQXV0b2NvcnJlY3Rpb24gYnVi
YmxlIGRvZXNuJ3Qgc2hvdyB1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29u
dGV4dC5jcHAKaW5kZXggZWY4NWY3ZDIzZjc4MjNmOWNmMWYxMGQ1Yzg4MjFiYThhYTcxYmMwOS4u
NzZlZThjOGQ5MDk0YzRmZTY2ZDU2NTQyNGYzNzgwOTc3ZmI2YWExZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03OSw2ICs3OSwxNiBAQCBOb2Rl
UmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkKICAgICAg
ICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFyZW50OwogICAgICAg
ICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKHBhcmVudC0+aXNDb250ZW50
RWxlbWVudCgpKSB7CisgICAgICAgICAgICBTaGFkb3dDb250ZW50RWxlbWVudCogc2hhZG93Q29u
dGVudEVsZW1lbnQgPSB0b1NoYWRvd0NvbnRlbnRFbGVtZW50KHBhcmVudCk7CisKKyAgICAgICAg
ICAgIGlmICghc2hhZG93Q29udGVudEVsZW1lbnQtPmluY2x1c2lvbnMoKSB8fCAhc2hhZG93Q29u
dGVudEVsZW1lbnQtPmluY2x1c2lvbnMoKS0+Zmlyc3QoKSkgeworICAgICAgICAgICAgICAgIG1f
cGhhc2UgPSBBdHRhY2hDb250ZW50RmFsbGJhY2s7CisgICAgICAgICAgICAgICAgbV9wYXJlbnRO
b2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBh
cmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIG1fcGFyZW50Tm9kZUZvclJl
bmRlcmluZ0FuZFN0eWxlID0gcGFyZW50OwpAQCAtMTc2LDcgKzE4Niw3IEBAIFJlbmRlck9iamVj
dCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcigpIGNvbnN0CiAKICAgICAvLyBB
dm9pZCBhbiBPKG5eMikgcHJvYmxlbSB3aXRoIHRoaXMgZnVuY3Rpb24gYnkgbm90IGNoZWNraW5n
IGZvcgogICAgIC8vIG5leHRSZW5kZXJlcigpIHdoZW4gdGhlIHBhcmVudCBlbGVtZW50IGhhc24n
dCBhdHRhY2hlZCB5ZXQuCi0gICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpICYmICFt
X25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQoKSkKKyAgICBpZiAobV9ub2RlLT5w
YXJlbnRPckhvc3ROb2RlKCkgJiYgIW1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgpLT5hdHRhY2hl
ZCgpICYmIG1fcGhhc2UgIT0gQXR0YWNoQ29udGVudEZhbGxiYWNrKQogICAgICAgICByZXR1cm4g
MDsKIAogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbm9kZS0+bmV4dFNpYmxpbmcoKTsgbm9kZTsg
bm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE5Miw2ICsyMDIsOSBAQCBSZW5kZXJP
YmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAg
ICB9CiAgICAgfQogCisgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29udGVudEZhbGxiYWNrKQor
ICAgICAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0NvbnRleHQobV9ub2RlLT5wYXJlbnROb2RlKCkp
Lm5leHRSZW5kZXJlcigpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAgLTIyNSw2ICsyMzgsOSBA
QCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKCkg
Y29uc3QKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRl
bnRGYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1fbm9kZS0+
cGFyZW50Tm9kZSgpKS5wcmV2aW91c1JlbmRlcmVyKCk7CisKICAgICByZXR1cm4gMDsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAppbmRleCBiNGU4OTEyOTdh
NjJjYjQ3ZGI3Yzk1ODQzYTBlYTA3ZGNhNGY2YmIwLi44NDBjYjM2Mzg2YTBiNWMzMzAxOGJmODNm
Y2IyZWRhNTUxMmY0ZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRl
cmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogICAgICAgICBBdHRhY2hTdHJhaWdodCwK
ICAgICAgICAgQXR0YWNoQ29udGVudExpZ2h0LAogICAgICAgICBBdHRhY2hDb250ZW50Rm9yd2Fy
ZGVkLAorICAgICAgICBBdHRhY2hDb250ZW50RmFsbGJhY2ssCiAgICAgfTsKIAogICAgIFRyZWVM
b2NhdGlvbiBtX2xvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRv
d0NvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxl
bWVudC5jcHAKaW5kZXggNjNiY2YwMWUzMGYwOThiNjEyZWE5NzQ2ZDIwMzNiYzc1NzU3OWUyNC4u
ZGUxZmI1Njk3ZmE0MDM3NGFiMzk5YzlkYjE5MTVkNmViOWVlYWVmYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQuY3BwCkBAIC01NiwxMyArNTYsMTggQEAgU2hh
ZG93Q29udGVudEVsZW1lbnQ6On5TaGFkb3dDb250ZW50RWxlbWVudCgpCiAKIHZvaWQgU2hhZG93
Q29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCiB7Ci0gICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAv
LyBDdXJyZW50bHkgZG9lc24ndCBzdXBwb3J0IGFueSBsaWdodCBjaGlsZC4KLSAgICBTdHlsZWRF
bGVtZW50OjphdHRhY2goKTsKKyAgICBTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNo
YWRvd1RyZWVSb290Tm9kZSgpKTsKIAotICAgIGlmIChTaGFkb3dSb290KiByb290ID0gdG9TaGFk
b3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkgeworICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0
eWxlZEVsZW1lbnQ6OmF0dGFjaCwgc2VsZWN0b3IgbXVzdCBiZSBjYWxjdWxhdGVkLgorICAgIGlm
IChyb290KSB7CiAgICAgICAgIFNoYWRvd0luY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJv
b3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5j
bHVzaW9ucy5nZXQoKSk7CiAgICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNp
b25zLmdldCgpKTsKKyAgICB9CisKKyAgICBTdHlsZWRFbGVtZW50OjphdHRhY2goKTsKKworICAg
IGlmIChyb290KSB7CiAgICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBt
X2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5u
ZXh0KCkpCiAgICAgICAgICAgICBpbmNsdXNpb24tPmNvbnRlbnQoKS0+ZGV0YWNoKCk7CiAgICAg
ICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0
KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWMy
M2YzODIzNjZjMDA3MWFjYTUxYWNhOWU4MjIyNTI2MGYzYThlMi4uMzdlZGIzYTQ1ZjczMzEyYWM5
NjU0NDJiYjk0ZmExNzM5YzQ5OTYxNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2
ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93
Q29udGVudCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wMS0xNiAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAg
ICAgICAgIERGRyBzaG91bGQgYmUgYWJsZSB0byBkbyBKUyBhbmQgY3VzdG9tIGdldHRlciBjYWNo
aW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRl
bnRzLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZhYzYz
YjY1NGNlMTM4MzFhNGY3MmVkOWIwNDQ1OWU1ODliNzlhZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2stZXhwZWN0
ZWQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c3R5bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVu
ZGVyTGF5ZXIgKi8KKy5jb250YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgaWQ9ImNvbnRhaW5lciI+Cis8IS0tIHRlc3RG
YWxsYmFjayAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjxz
cGFuPmxpZ2h0PC9zcGFuPjxzcGFuPldvcmxkLjwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdEZhbGxi
YWNrRGVlcCAtLT4KKzxkaXY+PHNwYW4+SGVsbG8sPC9zcGFuPjxzcGFuPjxzcGFuPmxpZ2h0PC9z
cGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8
IS0tIHRlc3ROb25GYWxsYmFja1dpdGhMaWdodENoaWxkcmVuIC0tPgorPGRpdj48c3Bhbj5IZWxs
byw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8
L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDdm
MzU5YjUxZTExNTVmYjI2NDFiOGVmNGQwNTlhZWEzOGFlZjg3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1s
CkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5
bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5
ZXIgKi8KKy5jb250YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKzwvc3R5bGU+
Cis8c2NyaXB0PgorZnVuY3Rpb24gYXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7CisgICAg
dmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFy
IGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDAuaW5u
ZXJIVE1MID0gIkhlbGxvLCI7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOworCisgICAg
dmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRlU2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1l
bnQpOworICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgIHsK
KyAgICAgICAgdmFyIGNvbnRlbnRDaGlsZDEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFu
Iik7CisgICAgICAgIGNvbnRlbnRDaGlsZDEuc2V0QXR0cmlidXRlKCd0aXRsZScsICdsaWdodCcp
OworICAgICAgICBjb250ZW50Q2hpbGQxLmlubmVySFRNTCA9ICJsaWdodCI7CisgICAgICAgIGNv
bnRlbnQuYXBwZW5kQ2hpbGQoY29udGVudENoaWxkMSk7CisKKyAgICAgICAgdmFyIGNvbnRlbnRD
aGlsZDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgIGNvbnRlbnRD
aGlsZDIuc2V0QXR0cmlidXRlKCd0aXRsZScsICdsaWdodDInKTsKKyAgICAgICAgY29udGVudENo
aWxkMi5pbm5lckhUTUwgPSAibGlnaHQiOworICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNv
bnRlbnRDaGlsZDIpOworICAgIH0KKyAgICByb290LmFwcGVuZENoaWxkKGNvbnRlbnQpOworCisg
ICAgdmFyIGNoaWxkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGls
ZDEuaW5uZXJIVE1MID0gIldvcmxkLiI7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDEpOwor
fQorCitmdW5jdGlvbiBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFy
IHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNo
aWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDAuaW5uZXJI
VE1MID0gIkhlbGxvLCI7CisgICAgY2hpbGQwLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnY2hpbGQw
Jyk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDApOworCisgICAgdmFyIGNoaWxkMSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDEuc2V0QXR0cmlidXRlKCd0
aXRsZScsICdjaGlsZDEnKTsKKyAgICB7CisgICAgICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxz
LmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgY29udGVudC5z
ZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CisgICAgICAgIGNvbnRlbnQuc2V0QXR0cmli
dXRlKCd0aXRsZScsICdzaGFkb3ctY29udGVudCcpOworICAgICAgICB7CisgICAgICAgICAgICB2
YXIgY29udGVudENoaWxkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAg
ICAgICAgIGNvbnRlbnRDaGlsZDEuc2V0QXR0cmlidXRlKCd0aXRsZScsICdsaWdodCcpOworICAg
ICAgICAgICAgY29udGVudENoaWxkMS5pbm5lckhUTUwgPSAibGlnaHQiOworICAgICAgICAgICAg
Y29udGVudC5hcHBlbmRDaGlsZChjb250ZW50Q2hpbGQxKTsKKworICAgICAgICAgICAgdmFyIGNv
bnRlbnRDaGlsZDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAg
ICBjb250ZW50Q2hpbGQyLnNldEF0dHJpYnV0ZSgndGl0bGUnLCAnbGlnaHQyJyk7CisgICAgICAg
ICAgICBjb250ZW50Q2hpbGQyLmlubmVySFRNTCA9ICJsaWdodCI7CisgICAgICAgICAgICBjb250
ZW50LmFwcGVuZENoaWxkKGNvbnRlbnRDaGlsZDIpOworICAgICAgICB9CisgICAgICAgIGNoaWxk
MS5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICB9CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGls
ZDEpOworCisgICAgdmFyIGNoaWxkMiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
KyAgICBjaGlsZDIuc2V0QXR0cmlidXRlKCd0aXRsZScsICdjaGlsZDInKTsKKyAgICBjaGlsZDIu
aW5uZXJIVE1MID0gIldvcmxkLiI7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDIpOworfQor
CitmdW5jdGlvbiB0ZXN0RmFsbGJhY2soKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVu
dDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNub24tZWxlbWVudCIpOwor
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRh
cmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWxsYmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdl
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwg
PSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQs
ICIjbm9uLWVsZW1lbnQiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWlu
ZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0Tm9uRmFsbGJhY2tX
aXRoTGlnaHRDaGlsZHJlbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVySFRNTCA9ICI8c3BhbiBpZD0nY29udGVudCc+
Y29udGVudDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNjb250ZW50Iik7
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
dGFyZ2V0KTsKK30KKwordmFyIHRlc3RGdW5jcyA9IFsKKyAgICB0ZXN0RmFsbGJhY2ssCisgICAg
dGVzdEZhbGxiYWNrRGVlcCwKKyAgICB0ZXN0Tm9uRmFsbGJhY2tXaXRoTGlnaHRDaGlsZHJlbgor
XQorCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RnVu
Y3MubGVuZ3RoOyArK2kpCisgICAgICAgdGVzdEZ1bmNzW2ldKCk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCkiPgorCis8ZGl2IGlkPSJjb250YWluZXIiIGNs
YXNzPSJjb250YWluZXIiPjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+CisKKzwvYm9k
eT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122718</attachid>
            <date>2012-01-16 23:26:52 -0800</date>
            <delta_ts>2012-01-18 01:47:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120117162651.patch</filename>
            <type>text/plain</type>
            <size>10470</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MTEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjU1MmYzYzQ5YzE1MWI5
M2Q3ODRiNzgwNGVhZTJiMjg5ZDgwZmRiZS4uZGZlMjY2NTg1OWViNzIwMWUzZjdhYmEzMDU2YTY4
MzdhZTg4NDZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE2ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBzZWxlY3RlZCBieSBhIHNoYWRvdyBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IgcXVlcnks
CisgICAgICAgIGxpZ2h0IGNoaWxkcmVuIGFyZSBzZWxlY3RlZCBhcyBhIGZhbGxiYWNrIGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZh
bGxiYWNrLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2suaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2Rl
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICAgQ29uc2lkZXJzIGZhbGxiYWNrIHBoYXNlLiBX
aGVuIG5vIGVsZW1lbnRzIGFyZSBjaG9zZW4sIHRoZSBwaGFzZSBpcyBzZXQgdG8gJ2ZhbGxiYWNr
Jy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIp
OgorICAgICAgICAgIFRha2VzIGZhbGxiYWNrIHBoYXNlIGludG8gYWNjb3VudC4KKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKTogZGl0dG8u
CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogZG9tL1No
YWRvd0NvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYWRvd0NvbnRlbnRF
bGVtZW50OjphdHRhY2gpOgorICAgICAgICAgIENhbGN1bGF0ZXMgaW5jbHVzaW9ucyBiZWZvcmUg
YXR0YWNoaW5nIGxpZ2h0IGNoaWxkcmVuLgorCiAyMDEyLTAxLTE2ICBFbnJpY2EgQ2FzdWNjaSAg
PGVucmljYUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogcjEwMjU1MyBBdXRvY29y
cmVjdGlvbiBidWJibGUgZG9lc24ndCBzaG93IHVwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVS
ZW5kZXJpbmdDb250ZXh0LmNwcAppbmRleCBlZjg1ZjdkMjNmNzgyM2Y5Y2YxZjEwZDVjODgyMWJh
OGFhNzFiYzA5Li45MjViOTlhNDg4ODkwYTIxM2Q0MWNmMjNhMzI2ZTU3MzQ0YjZhMjNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTc5LDYgKzc5
LDE1IEBAIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4dChOb2RlKiBu
b2RlKQogICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJl
bnQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBpZiAocGFyZW50
LT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKKyAgICAgICAgICAgIFNoYWRvd0NvbnRlbnRFbGVtZW50
KiBzaGFkb3dDb250ZW50RWxlbWVudCA9IHRvU2hhZG93Q29udGVudEVsZW1lbnQocGFyZW50KTsK
KyAgICAgICAgICAgIGlmICghc2hhZG93Q29udGVudEVsZW1lbnQtPmluY2x1c2lvbnMoKS0+Zmly
c3QoKSkgeworICAgICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hDb250ZW50RmFsbGJhY2s7
CisgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2Rl
UmVuZGVyaW5nQ29udGV4dChwYXJlbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgp
OworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAg
IH0KIAogICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFyZW50OwpAQCAt
MTc2LDcgKzE4NSw3IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRS
ZW5kZXJlcigpIGNvbnN0CiAKICAgICAvLyBBdm9pZCBhbiBPKG5eMikgcHJvYmxlbSB3aXRoIHRo
aXMgZnVuY3Rpb24gYnkgbm90IGNoZWNraW5nIGZvcgogICAgIC8vIG5leHRSZW5kZXJlcigpIHdo
ZW4gdGhlIHBhcmVudCBlbGVtZW50IGhhc24ndCBhdHRhY2hlZCB5ZXQuCi0gICAgaWYgKG1fbm9k
ZS0+cGFyZW50T3JIb3N0Tm9kZSgpICYmICFtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0
YWNoZWQoKSkKKyAgICBpZiAobV9ub2RlLT5wYXJlbnRPckhvc3ROb2RlKCkgJiYgIW1fbm9kZS0+
cGFyZW50T3JIb3N0Tm9kZSgpLT5hdHRhY2hlZCgpICYmIG1fcGhhc2UgIT0gQXR0YWNoQ29udGVu
dEZhbGxiYWNrKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIGZvciAoTm9kZSogbm9kZSA9IG1f
bm9kZS0+bmV4dFNpYmxpbmcoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsK
QEAgLTE5Miw2ICsyMDEsOSBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0Ojpu
ZXh0UmVuZGVyZXIoKSBjb25zdAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKG1fcGhhc2Ug
PT0gQXR0YWNoQ29udGVudEZhbGxiYWNrKQorICAgICAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0Nv
bnRleHQobV9ub2RlLT5wYXJlbnROb2RlKCkpLm5leHRSZW5kZXJlcigpOworCiAgICAgcmV0dXJu
IDA7CiB9CiAKQEAgLTIyNSw2ICsyMzcsOSBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAorICAg
IGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIE5v
ZGVSZW5kZXJpbmdDb250ZXh0KG1fbm9kZS0+cGFyZW50Tm9kZSgpKS5wcmV2aW91c1JlbmRlcmVy
KCk7CisKICAgICByZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmlu
Z0NvbnRleHQuaAppbmRleCBiNGU4OTEyOTdhNjJjYjQ3ZGI3Yzk1ODQzYTBlYTA3ZGNhNGY2YmIw
Li44NDBjYjM2Mzg2YTBiNWMzMzAxOGJmODNmY2IyZWRhNTUxMmY0ZDQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRl
OgogICAgICAgICBBdHRhY2hTdHJhaWdodCwKICAgICAgICAgQXR0YWNoQ29udGVudExpZ2h0LAog
ICAgICAgICBBdHRhY2hDb250ZW50Rm9yd2FyZGVkLAorICAgICAgICBBdHRhY2hDb250ZW50RmFs
bGJhY2ssCiAgICAgfTsKIAogICAgIFRyZWVMb2NhdGlvbiBtX2xvY2F0aW9uOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9TaGFkb3dDb250ZW50RWxlbWVudC5jcHAKaW5kZXggNjNiY2YwMWUzMGYwOThi
NjEyZWE5NzQ2ZDIwMzNiYzc1NzU3OWUyNC4uZGUxZmI1Njk3ZmE0MDM3NGFiMzk5YzlkYjE5MTVk
NmViOWVlYWVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1NoYWRvd0NvbnRlbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2hhZG93Q29udGVudEVsZW1lbnQu
Y3BwCkBAIC01NiwxMyArNTYsMTggQEAgU2hhZG93Q29udGVudEVsZW1lbnQ6On5TaGFkb3dDb250
ZW50RWxlbWVudCgpCiAKIHZvaWQgU2hhZG93Q29udGVudEVsZW1lbnQ6OmF0dGFjaCgpCiB7Ci0g
ICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAvLyBDdXJyZW50bHkgZG9lc24ndCBzdXBwb3J0IGFu
eSBsaWdodCBjaGlsZC4KLSAgICBTdHlsZWRFbGVtZW50OjphdHRhY2goKTsKKyAgICBTaGFkb3dS
b290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKTsKIAotICAgIGlm
IChTaGFkb3dSb290KiByb290ID0gdG9TaGFkb3dSb290KHNoYWRvd1RyZWVSb290Tm9kZSgpKSkg
eworICAgIC8vIEJlZm9yZSBjYWxsaW5nIFN0eWxlZEVsZW1lbnQ6OmF0dGFjaCwgc2VsZWN0b3Ig
bXVzdCBiZSBjYWxjdWxhdGVkLgorICAgIGlmIChyb290KSB7CiAgICAgICAgIFNoYWRvd0luY2x1
c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKICAgICAg
ICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CiAgICAgICAgIHNlbGVj
dG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICB9CisKKyAgICBTdHls
ZWRFbGVtZW50OjphdHRhY2goKTsKKworICAgIGlmIChyb290KSB7CiAgICAgICAgIGZvciAoU2hh
ZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lv
bjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCiAgICAgICAgICAgICBpbmNsdXNpb24t
PmNvbnRlbnQoKS0+ZGV0YWNoKCk7CiAgICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBpbmNs
dXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0gaW5j
bHVzaW9uLT5uZXh0KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWMyM2YzODIzNjZjMDA3MWFjYTUxYWNhOWU4MjIyNTI2
MGYzYThlMi4uMzdlZGIzYTQ1ZjczMzEyYWM5NjU0NDJiYjk0ZmExNzM5YzQ5OTYxNSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTE2ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdv
b2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Q29udGVudCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0
byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJh
Y2stZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50cy1mYWxsYmFjay5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0xNiAgRmlsaXAgUGl6
bG8gIDxmcGl6bG9AYXBwbGUuY29tPgogCiAgICAgICAgIERGRyBzaG91bGQgYmUgYWJsZSB0byBk
byBKUyBhbmQgY3VzdG9tIGdldHRlciBjYWNoaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVj
dGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZhYzYzYjY1NGNlMTM4MzFhNGY3MmVkOWIwNDQ1OWU1ODli
NzlhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2stZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlv
bmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KKy5jb250YWluZXIgeworICAg
IHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImNvbnRhaW5lciI+Cis8IS0tIHRlc3RGYWxsYmFjayAtLT4KKzxkaXY+PHNwYW4+SGVsbG8s
PC9zcGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjxzcGFuPldvcmxkLjwv
c3Bhbj48L2Rpdj4KKzwhLS0gdGVzdEZhbGxiYWNrRGVlcCAtLT4KKzxkaXY+PHNwYW4+SGVsbG8s
PC9zcGFuPjxzcGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjxzcGFuPmxpZ2h0PC9zcGFuPjwvc3Bhbj48
c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3ROb25GYWxsYmFja1dpdGhMaWdodENo
aWxkcmVuIC0tPgorPGRpdj48c3Bhbj5IZWxsbyw8L3NwYW4+PHNwYW4+Y29udGVudDwvc3Bhbj48
c3Bhbj5Xb3JsZC48L3NwYW4+PC9kaXY+Cis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJh
Y2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFs
bGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDdmMzU5YjUxZTExNTVmYjI2NDFiOGVmNGQwNTlhZWEz
OGFlZjg3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMTE4IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisvKiByZWxhdGl2ZSBwb3NpdGlvbmluZyBl
bnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KKy5jb250YWluZXIgeworICAgIHBvc2l0
aW9uOiByZWxhdGl2ZTsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVuY3Rpb24gYXBwZW5kU2hh
ZG93KHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hh
ZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoInNwYW4iKTsKKyAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CisgICAgcm9vdC5h
cHBlbmRDaGlsZChjaGlsZDApOworCisgICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5hbHMuY3JlYXRl
U2hhZG93Q29udGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgIGNvbnRlbnQuc2V0QXR0cmlidXRl
KCdzZWxlY3QnLCBzZWxlY3QpOworICAgIHsKKyAgICAgICAgdmFyIGNvbnRlbnRDaGlsZDEgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgIGNvbnRlbnRDaGlsZDEuc2V0
QXR0cmlidXRlKCd0aXRsZScsICdsaWdodCcpOworICAgICAgICBjb250ZW50Q2hpbGQxLmlubmVy
SFRNTCA9ICJsaWdodCI7CisgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY29udGVudENoaWxk
MSk7CisKKyAgICAgICAgdmFyIGNvbnRlbnRDaGlsZDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJzcGFuIik7CisgICAgICAgIGNvbnRlbnRDaGlsZDIuc2V0QXR0cmlidXRlKCd0aXRsZScsICds
aWdodDInKTsKKyAgICAgICAgY29udGVudENoaWxkMi5pbm5lckhUTUwgPSAibGlnaHQiOworICAg
ICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNvbnRlbnRDaGlsZDIpOworICAgIH0KKyAgICByb290
LmFwcGVuZENoaWxkKGNvbnRlbnQpOworCisgICAgdmFyIGNoaWxkMSA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDEuaW5uZXJIVE1MID0gIldvcmxkLiI7CisgICAg
cm9vdC5hcHBlbmRDaGlsZChjaGlsZDEpOworfQorCitmdW5jdGlvbiBhcHBlbmRTaGFkb3dEZWVw
KHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFyIHJvb3QgPSBpbnRlcm5hbHMuZW5zdXJlU2hhZG93
Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNoaWxkMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICBjaGlsZDAuaW5uZXJIVE1MID0gIkhlbGxvLCI7CisgICAgY2hpbGQwLnNl
dEF0dHJpYnV0ZSgndGl0bGUnLCAnY2hpbGQwJyk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGls
ZDApOworCisgICAgdmFyIGNoaWxkMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
KyAgICBjaGlsZDEuc2V0QXR0cmlidXRlKCd0aXRsZScsICdjaGlsZDEnKTsKKyAgICB7CisgICAg
ICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRv
Y3VtZW50KTsKKyAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7
CisgICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCd0aXRsZScsICdzaGFkb3ctY29udGVudCcp
OworICAgICAgICB7CisgICAgICAgICAgICB2YXIgY29udGVudENoaWxkMSA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICAgICAgICAgIGNvbnRlbnRDaGlsZDEuc2V0QXR0cmli
dXRlKCd0aXRsZScsICdsaWdodCcpOworICAgICAgICAgICAgY29udGVudENoaWxkMS5pbm5lckhU
TUwgPSAibGlnaHQiOworICAgICAgICAgICAgY29udGVudC5hcHBlbmRDaGlsZChjb250ZW50Q2hp
bGQxKTsKKworICAgICAgICAgICAgdmFyIGNvbnRlbnRDaGlsZDIgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICBjb250ZW50Q2hpbGQyLnNldEF0dHJpYnV0ZSgn
dGl0bGUnLCAnbGlnaHQyJyk7CisgICAgICAgICAgICBjb250ZW50Q2hpbGQyLmlubmVySFRNTCA9
ICJsaWdodCI7CisgICAgICAgICAgICBjb250ZW50LmFwcGVuZENoaWxkKGNvbnRlbnRDaGlsZDIp
OworICAgICAgICB9CisgICAgICAgIGNoaWxkMS5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICB9
CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZDEpOworCisgICAgdmFyIGNoaWxkMiA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICBjaGlsZDIuc2V0QXR0cmlidXRlKCd0aXRs
ZScsICdjaGlsZDInKTsKKyAgICBjaGlsZDIuaW5uZXJIVE1MID0gIldvcmxkLiI7CisgICAgcm9v
dC5hcHBlbmRDaGlsZChjaGlsZDIpOworfQorCitmdW5jdGlvbiB0ZXN0RmFsbGJhY2soKSB7Cisg
ICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdl
dC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93
KHRhcmdldCwgIiNub24tZWxlbWVudCIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWxs
YmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+Y29udGVudDwvc3Bhbj4iOworCisg
ICAgYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsKKworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQor
CitmdW5jdGlvbiB0ZXN0Tm9uRmFsbGJhY2tXaXRoTGlnaHRDaGlsZHJlbigpIHsKKyAgICB2YXIg
dGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0LmlubmVy
SFRNTCA9ICI8c3BhbiBpZD0nY29udGVudCc+Y29udGVudDwvc3Bhbj4iOworCisgICAgYXBwZW5k
U2hhZG93KHRhcmdldCwgIiNjb250ZW50Iik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKwordmFyIHRlc3RGdW5jcyA9
IFsKKyAgICB0ZXN0RmFsbGJhY2ssCisgICAgdGVzdEZhbGxiYWNrRGVlcCwKKyAgICB0ZXN0Tm9u
RmFsbGJhY2tXaXRoTGlnaHRDaGlsZHJlbgorXQorCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCB0ZXN0RnVuY3MubGVuZ3RoOyArK2kpCisgICAgICAgdGVzdEZ1
bmNzW2ldKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iZG9UZXN0KCki
PgorCis8ZGl2IGlkPSJjb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwvZGl2PgorPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+CisKKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122890</attachid>
            <date>2012-01-18 01:47:35 -0800</date>
            <delta_ts>2012-01-18 01:50:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120118184733.patch</filename>
            <type>text/plain</type>
            <size>14717</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNiYmQ5NTIzZTYxMTI0
YjVkYTI1ZWI4MTRkNzQ0ODgzMmM2MGRhMS4uNjdiODZmODE2OTM3NWI0YTI3YjRjMTIyN2FmZGRj
M2IzZjgxYzQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEyLTAxLTE4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBzZWxlY3RlZCBieSBhIHNoYWRvdyBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IgcXVlcnks
CisgICAgICAgIGxpZ2h0IGNoaWxkcmVuIGFyZSBzZWxlY3RlZCBhcyBhIGZhbGxiYWNrIGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZh
bGxiYWNrLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2suaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2Rl
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICAgQ29uc2lkZXJzIGZhbGxiYWNrIHBoYXNlLiBX
aGVuIG5vIGVsZW1lbnRzIGFyZSBjaG9zZW4sIHRoZSBwaGFzZSBpcyBzZXQgdG8gJ2ZhbGxiYWNr
Jy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIp
OgorICAgICAgICAgIFRha2VzIGZhbGxiYWNrIHBoYXNlIGludG8gYWNjb3VudC4KKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKTogZGl0dG8u
CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgICBDYWxjdWxhdGVzIGluY2x1c2lvbnMgYmVm
b3JlIGF0dGFjaGluZyBsaWdodCBjaGlsZHJlbi4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6
aGFzSW5jbHVzaW9uKToKKworMjAxMi0wMS0xOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bn
b29nbGUuY29tPgorCiAgICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBkb20v
IHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhUTUxF
bGVtZW50LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzYyNDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggMjI2YzBmNGJlOGU1NThmZjkwMGI5NDFkMDhiMjA1YTFjMjJjYTljYi4uNDY4YjhiYjg5OTQ3
OGU5OGIzNGMwODllZGU2N2FmMTdjMDMwNzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03MywxMiArNzMsMjEgQEAgTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAg
bV9waGFzZSA9IEF0dGFjaENvbnRlbnRGb3J3YXJkZWQ7CiAgICAgICAgICAgICAgICAgbV9wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luY2x1
ZGVyKS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29udGVudExpZ2h0OwogICAgICAgICAgICAg
bV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQ7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBpZiAocGFyZW50LT5pc0NvbnRlbnRFbGVtZW50
KCkpIHsKKyAgICAgICAgICAgIEhUTUxDb250ZW50RWxlbWVudCogc2hhZG93Q29udGVudEVsZW1l
bnQgPSB0b0hUTUxDb250ZW50RWxlbWVudChwYXJlbnQpOworICAgICAgICAgICAgaWYgKCFzaGFk
b3dDb250ZW50RWxlbWVudC0+aGFzSW5jbHVzaW9uKCkpIHsKKyAgICAgICAgICAgICAgICBtX3Bo
YXNlID0gQXR0YWNoQ29udGVudEZhbGxiYWNrOworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBtX3BhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKQEAgLTE3Niw3ICsxODUsNyBAQCBSZW5kZXJPYmplY3Qq
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogCiAgICAgLy8gQXZv
aWQgYW4gTyhuXjIpIHByb2JsZW0gd2l0aCB0aGlzIGZ1bmN0aW9uIGJ5IG5vdCBjaGVja2luZyBm
b3IKICAgICAvLyBuZXh0UmVuZGVyZXIoKSB3aGVuIHRoZSBwYXJlbnQgZWxlbWVudCBoYXNuJ3Qg
YXR0YWNoZWQgeWV0LgotICAgIGlmIChtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKSAmJiAhbV9u
b2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmF0dGFjaGVkKCkpCisgICAgaWYgKG1fbm9kZS0+cGFy
ZW50T3JIb3N0Tm9kZSgpICYmICFtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQo
KSAmJiBtX3BoYXNlICE9IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX25vZGUtPm5leHRTaWJsaW5nKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CkBAIC0xOTIsNiArMjAxLDkgQEAgUmVuZGVyT2Jq
ZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKICAgICAgICAg
fQogICAgIH0KIAorICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKKyAg
ICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1fbm9kZS0+cGFyZW50Tm9kZSgpKS5u
ZXh0UmVuZGVyZXIoKTsKKwogICAgIHJldHVybiAwOwogfQogCkBAIC0yMjUsNiArMjM3LDkgQEAg
UmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJlcigpIGNv
bnN0CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hDb250ZW50
RmFsbGJhY2spCisgICAgICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChtX25vZGUtPnBh
cmVudE5vZGUoKSkucHJldmlvdXNSZW5kZXJlcigpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggZDMxNDExNzZmMjA1
NDM0MjI3MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4Zi4uNjEwNDIwZDM3N2M4MjM0ZjVmY2QyZjM4ZjE3
OTkzMTRiMjFhNDkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQXR0YWNoU3RyYWlnaHQsCiAg
ICAgICAgIEF0dGFjaENvbnRlbnRMaWdodCwKICAgICAgICAgQXR0YWNoQ29udGVudEZvcndhcmRl
ZCwKKyAgICAgICAgQXR0YWNoQ29udGVudEZhbGxiYWNrLAogICAgIH07CiAKICAgICBUcmVlTG9j
YXRpb24gbV9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IDFjMTRmZWNlOWFiYzM5MzJjMmY1YzE1MDZkMmVkYTAx
OTlmMmY5NTUuLmQ0MTY1MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApA
QCAtNTYsMTMgKzU2LDE4IEBAIEhUTUxDb250ZW50RWxlbWVudDo6fkhUTUxDb250ZW50RWxlbWVu
dCgpCiAKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2goKQogewotICAgIEFTU0VSVCgh
Zmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hp
bGQuCi0gICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOworICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0
b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpOwogCi0gICAgaWYgKFNoYWRvd1Jvb3Qq
IHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgLy8gQmVm
b3JlIGNhbGxpbmcgU3R5bGVkRWxlbWVudDo6YXR0YWNoLCBzZWxlY3RvciBtdXN0IGJlIGNhbGN1
bGF0ZWQuCisgICAgaWYgKHJvb3QpIHsKICAgICAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKICAgICAgICAgc2VsZWN0b3It
PnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CiAgICAgICAgIHNlbGVjdG9yLT5zZWxlY3Qo
dGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6YXR0
YWNoKCk7CisKKyAgICBpZiAocm9vdCkgewogICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiog
aW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9
IGluY2x1c2lvbi0+bmV4dCgpKQogICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRl
dGFjaCgpOwogICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNs
dXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApp
bmRleCAzMzc3NzJiZDU4YWJlNzJmMzlkODY3NGVhYTQ4YjVmZjEwNzA2OGE4Li5hMTE3YTQ4MWNm
MWU0ODI1YzcxNDE3ZDQ0Nzg3OTg2ZWI2MWQxZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRl
ZiBIVE1MQ29udGVudEVsZW1lbnRfaAogI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAogCisj
aW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC01OSw2ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIGNvbnN0
IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1
c2lvbnMuZ2V0KCk7IH0KKyAgICBib29sIGhhc0luY2x1c2lvbigpIGNvbnN0IHsgcmV0dXJuIGlu
Y2x1c2lvbnMoKS0+Zmlyc3QoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTENvbnRlbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2NzZkNjdkMTMy
MzVlODQyMDk2MTY1NDkwYzQ2MTdmYWMwNDk5NWUuLjJhNTc2NTkwMDAxNzEwZjNkM2NjMzdlMmFh
NzAyYmViOGUxMjE3ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMS0xOCAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgogCisgICAgICAgIFNoYWRvd0NvbnRlbnQg
cXVlcnkgc2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRtbDogQWRkZWQuCisK
KzIwMTItMDEtMTggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwogICAg
ICAgICBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLyBhbmQgbWFr
ZSBTaGFkb3dDb250ZW50RWxlbWVudCBzdWJjbGFzcyBvZiBIVE1MRWxlbWVudC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2st
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVu
dHMtZmFsbGJhY2stZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOThiZmRlYmViMzkxZGFiODZk
OTZkNmUyOWViNDZlMDA5NTc2Yzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8q
IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwor
LmNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwhLS0gdGVzdEZhbGxiYWNrIC0tPgor
PGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+fTwv
c3Bhbj48L2Rpdj4KKzwhLS0gdGVzdEZhbGxiYWNrRGVlcCAtLT4KKzxkaXY+PHNwYW4+e1NIQURP
VzogPC9zcGFuPjxzcGFuPjxzcGFuPntJTk5FUjogPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFu
PjxzcGFuPn08L3NwYW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3ROb25G
YWxsYmFja1dpdGhMaWdodENoaWxkcmVuIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+
PHNwYW4+U0VMRUNURUQ8L3NwYW4+PHNwYW4+fTwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdE5vbkZh
bGxiYWNrRGVlcFdpdGhMaWdodENoaWxkcmVuIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3Nw
YW4+PHNwYW4+PHNwYW4+e0lOTkVSOiA8L3NwYW4+PHNwYW4+U0VMRUNURUQ8L3NwYW4+PHNwYW4+
fTwvc3Bhbj48L3NwYW4+PHNwYW4+fTwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdENvbXBsZXhGYWxs
YmFjayAtLT4KKzxkaXY+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxzcGFuPntTSEFET1c6IDwvc3Bh
bj48c3Bhbj5TRUxFQ1RFRDwvc3Bhbj48c3Bhbj59PC9zcGFuPjxzcGFuPn08L3NwYW4+PC9kaXY+
Cis8IS0tIHRlc3RDb21wbGV4RmFsbGJhY2tEZWVwIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8
L3NwYW4+PHNwYW4+PHNwYW4+e0lOTkVSOiA8L3NwYW4+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxz
cGFuPjxzcGFuPntJTk5FUjogPC9zcGFuPjxzcGFuPlNFTEVDVEVEPC9zcGFuPjxzcGFuPn08L3Nw
YW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+PHNwYW4+fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2
PgorPCEtLSB0ZXN0Q29tcGxleEZhbGxiYWNrQWdhaW4gLS0+Cis8ZGl2PjxzcGFuPntTSEFET1c6
IDwvc3Bhbj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+
fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2PgorPCEtLSB0ZXN0Q29tcGxleEZhbGxiYWNrRGVl
cEFnYWluIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+PHNwYW4+e0lOTkVS
OiA8L3NwYW4+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxzcGFuPjxzcGFuPntJTk5FUjogPC9zcGFu
PjxzcGFuPkZBTExCQUNLPC9zcGFuPjxzcGFuPn08L3NwYW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+
PHNwYW4+fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29u
dGVudHMtZmFsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudHMtZmFsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NzUwNzExNTZiNzFhZDRiYWRmM2I5
YWZhYjlmNDBjOWUyM2JkYjg5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMTc5IEBA
CisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUg
cG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCisuY29udGFpbmVy
IHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgcmV0dXJuIHNwYW47Cit9CisKK2Z1bmN0aW9uIGFwcGVu
ZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3Vy
ZVNoYWRvd1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZVNoYWRvd0NvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJpYnV0
ZSgnc2VsZWN0Jywgc2VsZWN0KTsKKyAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgie1NIQURPVzogIikpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7Cisg
ICAgcm9vdC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIn0iKSk7Cit9CisKK2Z1bmN0
aW9uIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCBzZWxlY3QpIHsKKyAgICB2YXIgcm9vdCA9IGlu
dGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7CisKKyAgICB2YXIgY2hpbGQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgeworICAgICAgICB2YXIgY29udGVudCA9
IGludGVybmFscy5jcmVhdGVTaGFkb3dDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgICAg
IGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgICAgICBjb250ZW50
LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAgICAgICAg
Y2hpbGQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJ7SU5ORVI6ICIpKTsKKyAgICAg
ICAgY2hpbGQuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgIGNoaWxkLmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgifSIpKTsKKyAgICB9CisKKyAgICByb290LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgie1NIQURPVzogIikpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQo
Y2hpbGQpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJ9IikpOwor
fQorCitmdW5jdGlvbiB0ZXN0RmFsbGJhY2soKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+U0VM
RUNURUQ8L3NwYW4+IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjbm9uLWVsZW1lbnQi
KTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGls
ZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0RmFsbGJhY2tEZWVwKCkgeworICAgIHZhciB0
YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJI
VE1MID0gIjxzcGFuPlNFTEVDVEVEPC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3dEZWVwKHRh
cmdldCwgIiNub24tZWxlbWVudCIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3ROb25GYWxs
YmFja1dpdGhMaWdodENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzZWxl
Y3RlZC0xJz5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNz
ZWxlY3RlZC0xIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJyku
YXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24gdGVzdE5vbkZhbGxiYWNrRGVlcFdp
dGhMaWdodENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzZWxlY3RlZC0y
Jz5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsICIjc2Vs
ZWN0ZWQtMiIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFw
cGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJhY2soKSB7
CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFw
cGVuZFNoYWRvdyh0YXJnZXQsICcjY29tcGxleC0xJyk7CisKKyAgICB2YXIgc2VsZWN0Q29udGVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzZWxlY3RDb250ZW50LnNl
dEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0xJyk7CisgICAgeworICAgICAgICBzZWxlY3RDb250
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7CisgICAgfQor
ICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnc3BhbicpOworCisgICAgdGFyZ2V0LmFw
cGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnW1dPTlQgU0VMRUNURURdJykpOworICAgIHRh
cmdldC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQo
Y3JlYXRlU3BhbldpdGhUZXh0KCdbV09OVCBTRUxFQ1RFRF0nKSk7CisKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVu
Y3Rpb24gdGVzdENvbXBsZXhGYWxsYmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAn
I2NvbXBsZXgtMicpOworCisgICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdzcGFuJyk7CisgICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2Nv
bXBsZXgtMicpOworICAgIHsKKyAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVh
dGVTcGFuV2l0aFRleHQoJ1NFTEVDVEVEJykpOworICAgIH0KKyAgICBhcHBlbmRTaGFkb3dEZWVw
KHNlbGVjdENvbnRlbnQsICdzcGFuJyk7CisKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRl
U3BhbldpdGhUZXh0KCdbV09OVCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxk
KHNlbGVjdENvbnRlbnQpOworICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ1tXT05UIFNFTEVDVEVEXScpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxl
eEZhbGxiYWNrQWdhaW4oKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICcjY29tcGxleC0zJyk7CisKKyAg
ICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAg
ICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0zJyk7CisgICAgewor
ICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VM
RUNURUQnKSk7CisgICAgfQorICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnI25vbi1l
bGVtZW50Jyk7CisKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdb
V09OVCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQp
OworICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1tXT05UIFNFTEVD
VEVEXScpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBl
bmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcEFn
YWluKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgJyNjb21wbGV4LTQnKTsKKworICAgIHZhciBz
ZWxlY3RDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgIHNlbGVj
dENvbnRlbnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTQnKTsKKyAgICB7CisgICAgICAg
IHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcp
KTsKKyAgICB9CisgICAgYXBwZW5kU2hhZG93RGVlcChzZWxlY3RDb250ZW50LCAnI25vbi1lbGVt
ZW50Jyk7CisKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdbV09O
VCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOwor
ICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1tXT05UIFNFTEVDVEVE
XScpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRD
aGlsZCh0YXJnZXQpOworfQorCit2YXIgdGVzdEZ1bmNzID0gWworICAgIHRlc3RGYWxsYmFjaywK
KyAgICB0ZXN0RmFsbGJhY2tEZWVwLAorICAgIHRlc3ROb25GYWxsYmFja1dpdGhMaWdodENoaWxk
cmVuLAorICAgIHRlc3ROb25GYWxsYmFja0RlZXBXaXRoTGlnaHRDaGlsZHJlbiwKKyAgICB0ZXN0
Q29tcGxleEZhbGxiYWNrLAorICAgIHRlc3RDb21wbGV4RmFsbGJhY2tEZWVwLAorICAgIHRlc3RD
b21wbGV4RmFsbGJhY2tBZ2FpbiwKKyAgICB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcEFnYWluCitd
CisKK2Z1bmN0aW9uIGRvVGVzdCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5j
cy5sZW5ndGg7ICsraSkKKyAgICAgICB0ZXN0RnVuY3NbaV0oKTsKK30KKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rlc3QoKSI+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciIgY2xh
c3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122891</attachid>
            <date>2012-01-18 01:50:18 -0800</date>
            <delta_ts>2012-01-18 05:28:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120118185016.patch</filename>
            <type>text/plain</type>
            <size>14705</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNiYmQ5NTIzZTYxMTI0
YjVkYTI1ZWI4MTRkNzQ0ODgzMmM2MGRhMS4uNjdiODZmODE2OTM3NWI0YTI3YjRjMTIyN2FmZGRj
M2IzZjgxYzQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMxIEBACiAyMDEyLTAxLTE4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBzZWxlY3RlZCBieSBhIHNoYWRvdyBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IgcXVlcnks
CisgICAgICAgIGxpZ2h0IGNoaWxkcmVuIGFyZSBzZWxlY3RlZCBhcyBhIGZhbGxiYWNrIGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3RzOiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZh
bGxiYWNrLWV4cGVjdGVkLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2suaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdD
b250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2Rl
UmVuZGVyaW5nQ29udGV4dCk6CisgICAgICAgICAgQ29uc2lkZXJzIGZhbGxiYWNrIHBoYXNlLiBX
aGVuIG5vIGVsZW1lbnRzIGFyZSBjaG9zZW4sIHRoZSBwaGFzZSBpcyBzZXQgdG8gJ2ZhbGxiYWNr
Jy4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIp
OgorICAgICAgICAgIFRha2VzIGZhbGxiYWNrIHBoYXNlIGludG8gYWNjb3VudC4KKyAgICAgICAg
KFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKTogZGl0dG8u
CisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9z
aGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250
ZW50RWxlbWVudDo6YXR0YWNoKToKKyAgICAgICAgICBDYWxjdWxhdGVzIGluY2x1c2lvbnMgYmVm
b3JlIGF0dGFjaGluZyBsaWdodCBjaGlsZHJlbi4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6
aGFzSW5jbHVzaW9uKToKKworMjAxMi0wMS0xOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bn
b29nbGUuY29tPgorCiAgICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBkb20v
IHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhUTUxF
bGVtZW50LgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzYyNDEKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5k
ZXggMjI2YzBmNGJlOGU1NThmZjkwMGI5NDFkMDhiMjA1YTFjMjJjYTljYi4uNDY4YjhiYjg5OTQ3
OGU5OGIzNGMwODllZGU2N2FmMTdjMDMwNzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuY3BwCkBAIC03MywxMiArNzMsMjEgQEAgTm9kZVJlbmRlcmluZ0Nv
bnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAg
bV9waGFzZSA9IEF0dGFjaENvbnRlbnRGb3J3YXJkZWQ7CiAgICAgICAgICAgICAgICAgbV9wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luY2x1
ZGVyKS5wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgICB9IAotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQor
CiAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29udGVudExpZ2h0OwogICAgICAgICAgICAg
bV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQ7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKworICAgICAgICBpZiAocGFyZW50LT5pc0NvbnRlbnRFbGVtZW50
KCkpIHsKKyAgICAgICAgICAgIEhUTUxDb250ZW50RWxlbWVudCogc2hhZG93Q29udGVudEVsZW1l
bnQgPSB0b0hUTUxDb250ZW50RWxlbWVudChwYXJlbnQpOworICAgICAgICAgICAgaWYgKCFzaGFk
b3dDb250ZW50RWxlbWVudC0+aGFzSW5jbHVzaW9uKCkpIHsKKyAgICAgICAgICAgICAgICBtX3Bo
YXNlID0gQXR0YWNoQ29udGVudEZhbGxiYWNrOworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9k
ZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJl
bnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICBtX3BhcmVudE5vZGVGb3JSZW5k
ZXJpbmdBbmRTdHlsZSA9IHBhcmVudDsKQEAgLTE3Niw3ICsxODUsNyBAQCBSZW5kZXJPYmplY3Qq
IE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogCiAgICAgLy8gQXZv
aWQgYW4gTyhuXjIpIHByb2JsZW0gd2l0aCB0aGlzIGZ1bmN0aW9uIGJ5IG5vdCBjaGVja2luZyBm
b3IKICAgICAvLyBuZXh0UmVuZGVyZXIoKSB3aGVuIHRoZSBwYXJlbnQgZWxlbWVudCBoYXNuJ3Qg
YXR0YWNoZWQgeWV0LgotICAgIGlmIChtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKSAmJiAhbV9u
b2RlLT5wYXJlbnRPckhvc3ROb2RlKCktPmF0dGFjaGVkKCkpCisgICAgaWYgKG1fbm9kZS0+cGFy
ZW50T3JIb3N0Tm9kZSgpICYmICFtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQo
KSAmJiBtX3BoYXNlICE9IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBmb3IgKE5vZGUqIG5vZGUgPSBtX25vZGUtPm5leHRTaWJsaW5nKCk7IG5vZGU7IG5v
ZGUgPSBub2RlLT5uZXh0U2libGluZygpKSB7CkBAIC0xOTIsNiArMjAxLDkgQEAgUmVuZGVyT2Jq
ZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKICAgICAgICAg
fQogICAgIH0KIAorICAgIGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKKyAg
ICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdDb250ZXh0KG1fbm9kZS0+cGFyZW50Tm9kZSgpKS5u
ZXh0UmVuZGVyZXIoKTsKKwogICAgIHJldHVybiAwOwogfQogCkBAIC0yMjUsNiArMjM3LDkgQEAg
UmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJlcigpIGNv
bnN0CiAgICAgICAgIH0KICAgICB9CiAKKyAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hDb250ZW50
RmFsbGJhY2spCisgICAgICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChtX25vZGUtPnBh
cmVudE5vZGUoKSkucHJldmlvdXNSZW5kZXJlcigpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggZDMxNDExNzZmMjA1
NDM0MjI3MGY2YTRlMTMxY2Y5ZDRiYmVkZTk4Zi4uNjEwNDIwZDM3N2M4MjM0ZjVmY2QyZjM4ZjE3
OTkzMTRiMjFhNDkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0
LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQXR0YWNoU3RyYWlnaHQsCiAg
ICAgICAgIEF0dGFjaENvbnRlbnRMaWdodCwKICAgICAgICAgQXR0YWNoQ29udGVudEZvcndhcmRl
ZCwKKyAgICAgICAgQXR0YWNoQ29udGVudEZhbGxiYWNrLAogICAgIH07CiAKICAgICBUcmVlTG9j
YXRpb24gbV9sb2NhdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L0hUTUxDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IDFjMTRmZWNlOWFiYzM5MzJjMmY1YzE1MDZkMmVkYTAx
OTlmMmY5NTUuLmQ0MTY1MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApA
QCAtNTYsMTMgKzU2LDE4IEBAIEhUTUxDb250ZW50RWxlbWVudDo6fkhUTUxDb250ZW50RWxlbWVu
dCgpCiAKIHZvaWQgSFRNTENvbnRlbnRFbGVtZW50OjphdHRhY2goKQogewotICAgIEFTU0VSVCgh
Zmlyc3RDaGlsZCgpKTsgLy8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hp
bGQuCi0gICAgSFRNTEVsZW1lbnQ6OmF0dGFjaCgpOworICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0
b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpOwogCi0gICAgaWYgKFNoYWRvd1Jvb3Qq
IHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgLy8gQmVm
b3JlIGNhbGxpbmcgU3R5bGVkRWxlbWVudDo6YXR0YWNoLCBzZWxlY3RvciBtdXN0IGJlIGNhbGN1
bGF0ZWQuCisgICAgaWYgKHJvb3QpIHsKICAgICAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9y
KiBzZWxlY3RvciA9IHJvb3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKICAgICAgICAgc2VsZWN0b3It
PnVuc2VsZWN0KG1faW5jbHVzaW9ucy5nZXQoKSk7CiAgICAgICAgIHNlbGVjdG9yLT5zZWxlY3Qo
dGhpcywgbV9pbmNsdXNpb25zLmdldCgpKTsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6YXR0
YWNoKCk7CisKKyAgICBpZiAocm9vdCkgewogICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiog
aW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9
IGluY2x1c2lvbi0+bmV4dCgpKQogICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRl
dGFjaCgpOwogICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNs
dXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApp
bmRleCAzMzc3NzJiZDU4YWJlNzJmMzlkODY3NGVhYTQ4YjVmZjEwNzA2OGE4Li5hMTE3YTQ4MWNm
MWU0ODI1YzcxNDE3ZDQ0Nzg3OTg2ZWI2MWQxZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRl
ZiBIVE1MQ29udGVudEVsZW1lbnRfaAogI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAogCisj
aW5jbHVkZSAiQ29udGVudEluY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1l
bnQuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC01OSw2ICs2MCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIGNvbnN0
IFNoYWRvd0luY2x1c2lvbkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1
c2lvbnMuZ2V0KCk7IH0KKyAgICBib29sIGhhc0luY2x1c2lvbigpIGNvbnN0IHsgcmV0dXJuIGlu
Y2x1c2lvbnMoKS0+Zmlyc3QoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTENvbnRlbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2NzZkNjdkMTMy
MzVlODQyMDk2MTY1NDkwYzQ2MTdmYWMwNDk5NWUuLjJhNTc2NTkwMDAxNzEwZjNkM2NjMzdlMmFh
NzAyYmViOGUxMjE3ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMS0xOCAgU2hpbnlh
IEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgogCisgICAgICAgIFNoYWRvd0NvbnRlbnQg
cXVlcnkgc2hvdWxkIGJlIGFibGUgdG8gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4KKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzA2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cv
c2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRtbDogQWRkZWQuCisK
KzIwMTItMDEtMTggIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAZ29vZ2xlLmNvbT4KKwogICAg
ICAgICBNb3ZlIFNoYWRvd0NvbnRlbnRFbGVtZW50IGZyb20gZG9tLyB0byBodG1sLyBhbmQgbWFr
ZSBTaGFkb3dDb250ZW50RWxlbWVudCBzdWJjbGFzcyBvZiBIVE1MRWxlbWVudC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MjQxCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2st
ZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVu
dHMtZmFsbGJhY2stZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xOThiZmRlYmViMzkxZGFiODZk
OTZkNmUyOWViNDZlMDA5NTc2Yzc5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC5odG1sCkBAIC0w
LDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzdHlsZT4KKy8q
IHJlbGF0aXZlIHBvc2l0aW9uaW5nIGVuc3VyZXMgdW5kZXJseWluZyBSZW5kZXJMYXllciAqLwor
LmNvbnRhaW5lciB7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworfQorPC9zdHlsZT4KKzwvaGVh
ZD4KKzxib2R5PgorPGRpdiBpZD0iY29udGFpbmVyIj4KKzwhLS0gdGVzdEZhbGxiYWNrIC0tPgor
PGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+fTwv
c3Bhbj48L2Rpdj4KKzwhLS0gdGVzdEZhbGxiYWNrRGVlcCAtLT4KKzxkaXY+PHNwYW4+e1NIQURP
VzogPC9zcGFuPjxzcGFuPjxzcGFuPntJTk5FUjogPC9zcGFuPjxzcGFuPkZBTExCQUNLPC9zcGFu
PjxzcGFuPn08L3NwYW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+PC9kaXY+Cis8IS0tIHRlc3ROb25G
YWxsYmFja1dpdGhMaWdodENoaWxkcmVuIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+
PHNwYW4+U0VMRUNURUQ8L3NwYW4+PHNwYW4+fTwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdE5vbkZh
bGxiYWNrRGVlcFdpdGhMaWdodENoaWxkcmVuIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3Nw
YW4+PHNwYW4+PHNwYW4+e0lOTkVSOiA8L3NwYW4+PHNwYW4+U0VMRUNURUQ8L3NwYW4+PHNwYW4+
fTwvc3Bhbj48L3NwYW4+PHNwYW4+fTwvc3Bhbj48L2Rpdj4KKzwhLS0gdGVzdENvbXBsZXhGYWxs
YmFjayAtLT4KKzxkaXY+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxzcGFuPntTSEFET1c6IDwvc3Bh
bj48c3Bhbj5TRUxFQ1RFRDwvc3Bhbj48c3Bhbj59PC9zcGFuPjxzcGFuPn08L3NwYW4+PC9kaXY+
Cis8IS0tIHRlc3RDb21wbGV4RmFsbGJhY2tEZWVwIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8
L3NwYW4+PHNwYW4+PHNwYW4+e0lOTkVSOiA8L3NwYW4+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxz
cGFuPjxzcGFuPntJTk5FUjogPC9zcGFuPjxzcGFuPlNFTEVDVEVEPC9zcGFuPjxzcGFuPn08L3Nw
YW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+PHNwYW4+fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2
PgorPCEtLSB0ZXN0Q29tcGxleEZhbGxiYWNrQWdhaW4gLS0+Cis8ZGl2PjxzcGFuPntTSEFET1c6
IDwvc3Bhbj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+RkFMTEJBQ0s8L3NwYW4+PHNwYW4+
fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2PgorPCEtLSB0ZXN0Q29tcGxleEZhbGxiYWNrRGVl
cEFnYWluIC0tPgorPGRpdj48c3Bhbj57U0hBRE9XOiA8L3NwYW4+PHNwYW4+PHNwYW4+e0lOTkVS
OiA8L3NwYW4+PHNwYW4+e1NIQURPVzogPC9zcGFuPjxzcGFuPjxzcGFuPntJTk5FUjogPC9zcGFu
PjxzcGFuPkZBTExCQUNLPC9zcGFuPjxzcGFuPn08L3NwYW4+PC9zcGFuPjxzcGFuPn08L3NwYW4+
PHNwYW4+fTwvc3Bhbj48c3Bhbj59PC9zcGFuPjwvZGl2PgorCis8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29u
dGVudHMtZmFsbGJhY2suaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ct
Y29udGVudHMtZmFsbGJhY2suaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWEwYmViNTI5NWMyNTJhZmE5OGIw
NWI4YzQ3OGM1NGEwY2QwZDNhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMTc5IEBA
CisgPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUg
cG9zaXRpb25pbmcgZW5zdXJlcyB1bmRlcmx5aW5nIFJlbmRlckxheWVyICovCisuY29udGFpbmVy
IHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0
aW9uIGNyZWF0ZVNwYW5XaXRoVGV4dCh0ZXh0KSB7CisgICAgdmFyIHNwYW4gPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc3Bhbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSh0ZXh0KSk7CisgICAgcmV0dXJuIHNwYW47Cit9CisKK2Z1bmN0aW9uIGFwcGVu
ZFNoYWRvdyh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3Vy
ZVNoYWRvd1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0
ZUNvbnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICBjb250ZW50LnNldEF0dHJpYnV0ZSgnc2Vs
ZWN0Jywgc2VsZWN0KTsKKyAgICBjb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgiRkFMTEJBQ0siKSk7CisKKyAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4
dCgie1NIQURPVzogIikpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgcm9v
dC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIn0iKSk7Cit9CisKK2Z1bmN0aW9uIGFw
cGVuZFNoYWRvd0RlZXAodGFyZ2V0LCBzZWxlY3QpIHsKKyAgICB2YXIgcm9vdCA9IGludGVybmFs
cy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7CisKKyAgICB2YXIgY2hpbGQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgeworICAgICAgICB2YXIgY29udGVudCA9IGludGVy
bmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7CisgICAgICAgIGNvbnRlbnQuc2V0
QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgICAgICBjb250ZW50LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAgICAgICAgY2hpbGQuYXBwZW5k
Q2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJ7SU5ORVI6ICIpKTsKKyAgICAgICAgY2hpbGQuYXBw
ZW5kQ2hpbGQoY29udGVudCk7CisgICAgICAgIGNoaWxkLmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgifSIpKTsKKyAgICB9CisKKyAgICByb290LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5X
aXRoVGV4dCgie1NIQURPVzogIikpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQpOworICAg
IHJvb3QuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCJ9IikpOworfQorCitmdW5jdGlv
biB0ZXN0RmFsbGJhY2soKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+U0VMRUNURUQ8L3NwYW4+
IjsKKworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsKKworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOwor
fQorCitmdW5jdGlvbiB0ZXN0RmFsbGJhY2tEZWVwKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFu
PlNFTEVDVEVEPC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNub24t
ZWxlbWVudCIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFw
cGVuZENoaWxkKHRhcmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3ROb25GYWxsYmFja1dpdGhMaWdo
dENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdk
aXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzZWxlY3RlZC0xJz5TRUxF
Q1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRhcmdldCwgIiNzZWxlY3RlZC0xIik7
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQo
dGFyZ2V0KTsKK30KKworZnVuY3Rpb24gdGVzdE5vbkZhbGxiYWNrRGVlcFdpdGhMaWdodENoaWxk
cmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsK
KyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuIGlkPSdzZWxlY3RlZC0yJz5TRUxFQ1RFRDwv
c3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93RGVlcCh0YXJnZXQsICIjc2VsZWN0ZWQtMiIpOwor
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRh
cmdldCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJhY2soKSB7CisgICAgdmFyIHRh
cmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvdyh0
YXJnZXQsICcjY29tcGxleC0xJyk7CisKKyAgICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgn
aWQnLCAnY29tcGxleC0xJyk7CisgICAgeworICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENo
aWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7CisgICAgfQorICAgIGFwcGVuZFNo
YWRvdyhzZWxlY3RDb250ZW50LCAnc3BhbicpOworCisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGNy
ZWF0ZVNwYW5XaXRoVGV4dCgnW1dPTlQgU0VMRUNURURdJykpOworICAgIHRhcmdldC5hcHBlbmRD
aGlsZChzZWxlY3RDb250ZW50KTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCdbV09OVCBTRUxFQ1RFRF0nKSk7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKK30KKworZnVuY3Rpb24gdGVzdENv
bXBsZXhGYWxsYmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAnI2NvbXBsZXgtMicp
OworCisgICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFu
Jyk7CisgICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NvbXBsZXgtMicpOwor
ICAgIHsKKyAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRl
eHQoJ1NFTEVDVEVEJykpOworICAgIH0KKyAgICBhcHBlbmRTaGFkb3dEZWVwKHNlbGVjdENvbnRl
bnQsICdzcGFuJyk7CisKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0
KCdbV09OVCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRl
bnQpOworICAgIHRhcmdldC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1tXT05UIFNF
TEVDVEVEXScpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5h
cHBlbmRDaGlsZCh0YXJnZXQpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrQWdh
aW4oKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICcjY29tcGxleC0zJyk7CisKKyAgICB2YXIgc2VsZWN0
Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzZWxlY3RDb250
ZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0zJyk7CisgICAgeworICAgICAgICBzZWxl
Y3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7Cisg
ICAgfQorICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnI25vbi1lbGVtZW50Jyk7CisK
KyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdbV09OVCBTRUxFQ1RF
RF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOworICAgIHRhcmdl
dC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1tXT05UIFNFTEVDVEVEXScpKTsKKwor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJn
ZXQpOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcEFnYWluKCkgeworICAg
IHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBhcHBlbmRT
aGFkb3dEZWVwKHRhcmdldCwgJyNjb21wbGV4LTQnKTsKKworICAgIHZhciBzZWxlY3RDb250ZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgIHNlbGVjdENvbnRlbnQuc2V0
QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTQnKTsKKyAgICB7CisgICAgICAgIHNlbGVjdENvbnRl
bnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RFRCcpKTsKKyAgICB9Cisg
ICAgYXBwZW5kU2hhZG93RGVlcChzZWxlY3RDb250ZW50LCAnI25vbi1lbGVtZW50Jyk7CisKKyAg
ICB0YXJnZXQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdbV09OVCBTRUxFQ1RFRF0n
KSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOworICAgIHRhcmdldC5h
cHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1tXT05UIFNFTEVDVEVEXScpKTsKKworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQp
OworfQorCit2YXIgdGVzdEZ1bmNzID0gWworICAgIHRlc3RGYWxsYmFjaywKKyAgICB0ZXN0RmFs
bGJhY2tEZWVwLAorICAgIHRlc3ROb25GYWxsYmFja1dpdGhMaWdodENoaWxkcmVuLAorICAgIHRl
c3ROb25GYWxsYmFja0RlZXBXaXRoTGlnaHRDaGlsZHJlbiwKKyAgICB0ZXN0Q29tcGxleEZhbGxi
YWNrLAorICAgIHRlc3RDb21wbGV4RmFsbGJhY2tEZWVwLAorICAgIHRlc3RDb21wbGV4RmFsbGJh
Y2tBZ2FpbiwKKyAgICB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcEFnYWluCitdCisKK2Z1bmN0aW9u
IGRvVGVzdCgpIHsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7ICsr
aSkKKyAgICAgICB0ZXN0RnVuY3NbaV0oKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkg
b25sb2FkPSJkb1Rlc3QoKSI+CisKKzxkaXYgaWQ9ImNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5l
ciI+PC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122904</attachid>
            <date>2012-01-18 05:28:33 -0800</date>
            <delta_ts>2012-01-18 20:35:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120118222831.patch</filename>
            <type>text/plain</type>
            <size>15893</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDNiYmQ5NTIzZTYxMTI0
YjVkYTI1ZWI4MTRkNzQ0ODgzMmM2MGRhMS4uMzNkNzc4ZWQ0ZDM5YWY2NzM3ZDNkYTViY2M5ZmNl
MzgwZTJjNzllZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTAxLTE4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CiAKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBzZWxlY3RlZCBieSBhIHNoYWRvdyBjb250ZW50IGVsZW1lbnQgc2VsZWN0b3IgcXVlcnks
CisgICAgICAgIGxpZ2h0IGNoaWxkcmVuIGFyZSBzZWxlY3RlZCBhcyBhIGZhbGxiYWNrIGVsZW1l
bnRzLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFs
bGJhY2suaHRtbAorCisgICAgICAgICogZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpOb2RlUmVuZGVyaW5nQ29udGV4
dCk6CisgICAgICAgICAgQ29uc2lkZXJzIGZhbGxiYWNrIHBoYXNlLiBXaGVuIG5vIGVsZW1lbnRz
IGFyZSBjaG9zZW4sIHRoZSBwaGFzZSBpcyBzZXQgdG8gJ2ZhbGxiYWNrJy4KKyAgICAgICAgKFdl
YkNvcmU6Ok5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIpOgorICAgICAgICAgIFRh
a2VzIGZhbGxiYWNrIHBoYXNlIGludG8gYWNjb3VudC4KKyAgICAgICAgKFdlYkNvcmU6Ok5vZGVS
ZW5kZXJpbmdDb250ZXh0OjpwcmV2aW91c1JlbmRlcmVyKTogZGl0dG8uCisgICAgICAgICogZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvSFRNTENvbnRl
bnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6YXR0
YWNoKToKKyAgICAgICAgICBDYWxjdWxhdGVzIGluY2x1c2lvbnMgYmVmb3JlIGF0dGFjaGluZyBs
aWdodCBjaGlsZHJlbi4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb250ZW50RWxlbWVudDo6aGFzSW5jbHVzaW9uKToK
KworMjAxMi0wMS0xOCAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCiAg
ICAgICAgIE1vdmUgU2hhZG93Q29udGVudEVsZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBt
YWtlIFNoYWRvd0NvbnRlbnRFbGVtZW50IHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50LgogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKaW5kZXggMjI2YzBmNGJlOGU1
NThmZjkwMGI5NDFkMDhiMjA1YTFjMjJjYTljYi4uNDY4YjhiYjg5OTQ3OGU5OGIzNGMwODllZGU2
N2FmMTdjMDMwNzYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRl
eHQuY3BwCkBAIC03MywxMiArNzMsMjEgQEAgTm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5k
ZXJpbmdDb250ZXh0KE5vZGUqIG5vZGUpCiAgICAgICAgICAgICAgICAgbV9waGFzZSA9IEF0dGFj
aENvbnRlbnRGb3J3YXJkZWQ7CiAgICAgICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29udGV4dChtX2luY2x1ZGVyKS5wYXJlbnROb2Rl
Rm9yUmVuZGVyaW5nQW5kU3R5bGUoKTsKICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
ICAgICB9IAotICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgfQorCiAgICAgICAgICAgICBt
X3BoYXNlID0gQXR0YWNoQ29udGVudExpZ2h0OwogICAgICAgICAgICAgbV9wYXJlbnROb2RlRm9y
UmVuZGVyaW5nQW5kU3R5bGUgPSBwYXJlbnQ7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KKworICAgICAgICBpZiAocGFyZW50LT5pc0NvbnRlbnRFbGVtZW50KCkpIHsKKyAgICAgICAg
ICAgIEhUTUxDb250ZW50RWxlbWVudCogc2hhZG93Q29udGVudEVsZW1lbnQgPSB0b0hUTUxDb250
ZW50RWxlbWVudChwYXJlbnQpOworICAgICAgICAgICAgaWYgKCFzaGFkb3dDb250ZW50RWxlbWVu
dC0+aGFzSW5jbHVzaW9uKCkpIHsKKyAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29u
dGVudEZhbGxiYWNrOworICAgICAgICAgICAgICAgIG1fcGFyZW50Tm9kZUZvclJlbmRlcmluZ0Fu
ZFN0eWxlID0gTm9kZVJlbmRlcmluZ0NvbnRleHQocGFyZW50KS5wYXJlbnROb2RlRm9yUmVuZGVy
aW5nQW5kU3R5bGUoKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KICAgICB9CiAKICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9
IHBhcmVudDsKQEAgLTE3Niw3ICsxODUsNyBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdD
b250ZXh0OjpuZXh0UmVuZGVyZXIoKSBjb25zdAogCiAgICAgLy8gQXZvaWQgYW4gTyhuXjIpIHBy
b2JsZW0gd2l0aCB0aGlzIGZ1bmN0aW9uIGJ5IG5vdCBjaGVja2luZyBmb3IKICAgICAvLyBuZXh0
UmVuZGVyZXIoKSB3aGVuIHRoZSBwYXJlbnQgZWxlbWVudCBoYXNuJ3QgYXR0YWNoZWQgeWV0Lgot
ICAgIGlmIChtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKSAmJiAhbV9ub2RlLT5wYXJlbnRPckhv
c3ROb2RlKCktPmF0dGFjaGVkKCkpCisgICAgaWYgKG1fbm9kZS0+cGFyZW50T3JIb3N0Tm9kZSgp
ICYmICFtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQoKSAmJiBtX3BoYXNlICE9
IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBmb3IgKE5v
ZGUqIG5vZGUgPSBtX25vZGUtPm5leHRTaWJsaW5nKCk7IG5vZGU7IG5vZGUgPSBub2RlLT5uZXh0
U2libGluZygpKSB7CkBAIC0xOTIsNiArMjAxLDkgQEAgUmVuZGVyT2JqZWN0KiBOb2RlUmVuZGVy
aW5nQ29udGV4dDo6bmV4dFJlbmRlcmVyKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAorICAg
IGlmIChtX3BoYXNlID09IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIE5v
ZGVSZW5kZXJpbmdDb250ZXh0KG1fbm9kZS0+cGFyZW50Tm9kZSgpKS5uZXh0UmVuZGVyZXIoKTsK
KwogICAgIHJldHVybiAwOwogfQogCkBAIC0yMjUsNiArMjM3LDkgQEAgUmVuZGVyT2JqZWN0KiBO
b2RlUmVuZGVyaW5nQ29udGV4dDo6cHJldmlvdXNSZW5kZXJlcigpIGNvbnN0CiAgICAgICAgIH0K
ICAgICB9CiAKKyAgICBpZiAobV9waGFzZSA9PSBBdHRhY2hDb250ZW50RmFsbGJhY2spCisgICAg
ICAgIHJldHVybiBOb2RlUmVuZGVyaW5nQ29udGV4dChtX25vZGUtPnBhcmVudE5vZGUoKSkucHJl
dmlvdXNSZW5kZXJlcigpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGVSZW5kZXJpbmdDb250ZXh0LmgKaW5kZXggZDMxNDExNzZmMjA1NDM0MjI3MGY2YTRlMTMx
Y2Y5ZDRiYmVkZTk4Zi4uNjEwNDIwZDM3N2M4MjM0ZjVmY2QyZjM4ZjE3OTkzMTRiMjFhNDkxZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJpbmdDb250ZXh0LmgKQEAgLTc5LDYgKzc5
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQXR0YWNoU3RyYWlnaHQsCiAgICAgICAgIEF0dGFjaENv
bnRlbnRMaWdodCwKICAgICAgICAgQXR0YWNoQ29udGVudEZvcndhcmRlZCwKKyAgICAgICAgQXR0
YWNoQ29udGVudEZhbGxiYWNrLAogICAgIH07CiAKICAgICBUcmVlTG9jYXRpb24gbV9sb2NhdGlv
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQu
Y3BwCmluZGV4IDFjMTRmZWNlOWFiYzM5MzJjMmY1YzE1MDZkMmVkYTAxOTlmMmY5NTUuLmQ0MTY1
MmYwZjI0MzgyM2Y2NGI2NzQxY2QxZWM1MzE0OGZlMjFlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcApAQCAtNTYsMTMgKzU2LDE4
IEBAIEhUTUxDb250ZW50RWxlbWVudDo6fkhUTUxDb250ZW50RWxlbWVudCgpCiAKIHZvaWQgSFRN
TENvbnRlbnRFbGVtZW50OjphdHRhY2goKQogewotICAgIEFTU0VSVCghZmlyc3RDaGlsZCgpKTsg
Ly8gQ3VycmVudGx5IGRvZXNuJ3Qgc3VwcG9ydCBhbnkgbGlnaHQgY2hpbGQuCi0gICAgSFRNTEVs
ZW1lbnQ6OmF0dGFjaCgpOworICAgIFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRvd1Jvb3Qoc2hh
ZG93VHJlZVJvb3ROb2RlKCkpOwogCi0gICAgaWYgKFNoYWRvd1Jvb3QqIHJvb3QgPSB0b1NoYWRv
d1Jvb3Qoc2hhZG93VHJlZVJvb3ROb2RlKCkpKSB7CisgICAgLy8gQmVmb3JlIGNhbGxpbmcgU3R5
bGVkRWxlbWVudDo6YXR0YWNoLCBzZWxlY3RvciBtdXN0IGJlIGNhbGN1bGF0ZWQuCisgICAgaWYg
KHJvb3QpIHsKICAgICAgICAgQ29udGVudEluY2x1c2lvblNlbGVjdG9yKiBzZWxlY3RvciA9IHJv
b3QtPmVuc3VyZUluY2x1c2lvbnMoKTsKICAgICAgICAgc2VsZWN0b3ItPnVuc2VsZWN0KG1faW5j
bHVzaW9ucy5nZXQoKSk7CiAgICAgICAgIHNlbGVjdG9yLT5zZWxlY3QodGhpcywgbV9pbmNsdXNp
b25zLmdldCgpKTsKKyAgICB9CisKKyAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7CisKKyAgICBp
ZiAocm9vdCkgewogICAgICAgICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9p
bmNsdXNpb25zLT5maXJzdCgpOyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4
dCgpKQogICAgICAgICAgICAgaW5jbHVzaW9uLT5jb250ZW50KCktPmRldGFjaCgpOwogICAgICAg
ICBmb3IgKFNoYWRvd0luY2x1c2lvbiogaW5jbHVzaW9uID0gbV9pbmNsdXNpb25zLT5maXJzdCgp
OyBpbmNsdXNpb247IGluY2x1c2lvbiA9IGluY2x1c2lvbi0+bmV4dCgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29udGVudEVsZW1lbnQuaAppbmRleCAzMzc3NzJiZDU4
YWJlNzJmMzlkODY3NGVhYTQ4YjVmZjEwNzA2OGE4Li5hMTE3YTQ4MWNmMWU0ODI1YzcxNDE3ZDQ0
Nzg3OTg2ZWI2MWQxZmU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9I
VE1MQ29udGVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1M
Q29udGVudEVsZW1lbnQuaApAQCAtMzEsNiArMzEsNyBAQAogI2lmbmRlZiBIVE1MQ29udGVudEVs
ZW1lbnRfaAogI2RlZmluZSBIVE1MQ29udGVudEVsZW1lbnRfaAogCisjaW5jbHVkZSAiQ29udGVu
dEluY2x1c2lvblNlbGVjdG9yLmgiCiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgogCkBAIC01OSw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dFNlbGVjdChjb25zdCBBdG9taWNTdHJpbmcmKTsKIAogICAgIGNvbnN0IFNoYWRvd0luY2x1c2lv
bkxpc3QqIGluY2x1c2lvbnMoKSBjb25zdCB7IHJldHVybiBtX2luY2x1c2lvbnMuZ2V0KCk7IH0K
KyAgICBib29sIGhhc0luY2x1c2lvbigpIGNvbnN0IHsgcmV0dXJuIGluY2x1c2lvbnMoKS0+Zmly
c3QoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgSFRNTENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxp
ZmllZE5hbWUmLCBEb2N1bWVudCopOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg2NzZkNjdkMTMyMzVlODQyMDk2MTY1NDkw
YzQ2MTdmYWMwNDk5NWUuLjlmZDNkODRjOWJlMTUwNzY0MGViODZhMzc1Y2ExODQ5M2EwMTAzZDgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMS0xOCAgU2hpbnlhIEthd2FuYWthICA8c2hp
bnlha0Bnb29nbGUuY29tPgogCisgICAgICAgIFNoYWRvd0NvbnRlbnQgcXVlcnkgc2hvdWxkIGJl
IGFibGUgdG8gaGF2ZSBmYWxsYmFjayBlbGVtZW50cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc1MzA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRz
LWZhbGxiYWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vc2hhZG93
L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sOiBBZGRlZC4KKworMjAxMi0wMS0xOCAgU2hp
bnlhIEthd2FuYWthICA8c2hpbnlha0Bnb29nbGUuY29tPgorCiAgICAgICAgIE1vdmUgU2hhZG93
Q29udGVudEVsZW1lbnQgZnJvbSBkb20vIHRvIGh0bWwvIGFuZCBtYWtlIFNoYWRvd0NvbnRlbnRF
bGVtZW50IHN1YmNsYXNzIG9mIEhUTUxFbGVtZW50LgogICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzYyNDEKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zOTUyMmI0Y2Q5YmE2NTU3MjQwNTk3MDUyNjQ3ODkxZjJkMjIw
NDU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitQQVNTCitQ
QVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitQQVNTCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2suaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5mYWJlNjRjMjk4M2QwOGYyOTE2Mzk1ZjE1NTE5ZDg0MjM0NDUzZjVhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250
ZW50cy1mYWxsYmFjay5odG1sCkBAIC0wLDAgKzEsMjQ3IEBACisgPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorLyogcmVsYXRpdmUgcG9zaXRpb25pbmcgZW5zdXJlcyB1
bmRlcmx5aW5nIFJlbmRlckxheWVyICovCisuY29udGFpbmVyIHsKKyAgICBwb3NpdGlvbjogcmVs
YXRpdmU7Cit9CisKKy5zcGFuIHsKKyAgICBkaXNwbGF5OiBib3hlZC1pbmxpbmU7CisgICAgbWFy
Z2luOiAycHg7CisgICAgYm9yZGVyOiBzb2xpZDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmlubmVySFRNTCArPSAobWVzc2FnZSArICJcbiIpOworfQorCitmdW5jdGlvbiByZW1vdmVB
bGxDaGlsZHJlbihlbGVtKSB7CisgICAgd2hpbGUgKGVsZW0uZmlyc3RDaGlsZCkKKyAgICAgICAg
ZWxlbS5yZW1vdmVDaGlsZChlbGVtLmZpcnN0Q2hpbGQpOworfQorCitmdW5jdGlvbiBjbGVhblVw
KCkgeworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykpOworICAgIHJlbW92ZUFsbENoaWxkcmVuKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykpOworfQorCitmdW5jdGlvbiByZW1vdmVDb250YWlu
ZXJMaW5lcyh0ZXh0KSB7CisgICAgdmFyIGxpbmVzID0gdGV4dC5zcGxpdCgnXG4nKTsKKyAgICBs
aW5lcy5zcGxpY2UoMCwgMik7CisgICAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xuJyk7Cit9CisKK2Z1
bmN0aW9uIGNoZWNrKCkgeworICAgIHZhciByZWZDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJu
YWxzLmVsZW1lbnRSZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBl
Y3QtY29udGFpbmVyJykpOworICAgIHZhciByZWZSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVy
TGluZXMocmVmQ29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICB2YXIgdGFyZ2V0Q29udGFpbmVy
UmVuZGVyVHJlZSA9IGludGVybmFscy5lbGVtZW50UmVuZGVyVHJlZUFzVGV4dChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpKTsKKyAgICB2YXIgdGFyZ2V0UmVuZGVy
VHJlZSA9IHJlbW92ZUNvbnRhaW5lckxpbmVzKHRhcmdldENvbnRhaW5lclJlbmRlclRyZWUpOwor
CisgICAgaWYgKHRhcmdldFJlbmRlclRyZWUgPT0gcmVmUmVuZGVyVHJlZSkKKyAgICAgICAgbG9n
KCJQQVNTIik7CisgICAgZWxzZSB7CisgICAgICAgIGxvZygiRkFJTCIpOworICAgICAgICBsb2co
IkV4cGVjdGVkOiAiKTsKKyAgICAgICAgbG9nKHJlZlJlbmRlclRyZWUpOworICAgICAgICBsb2co
IkFjdHVhbDogIik7CisgICAgICAgIGxvZyh0YXJnZXRSZW5kZXJUcmVlKTsKKyAgICB9CisKK30K
KworZnVuY3Rpb24gY3JlYXRlU3BhbldpdGhUZXh0KHRleHQpIHsKKyAgICB2YXIgc3BhbiA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzcGFuLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHRleHQpKTsKKyAgICByZXR1cm4gc3BhbjsKK30KKworZnVuY3Rp
b24gYXBwZW5kU2hhZG93KHRhcmdldCwgc2VsZWN0KSB7CisgICAgdmFyIHJvb3QgPSBpbnRlcm5h
bHMuZW5zdXJlU2hhZG93Um9vdCh0YXJnZXQpOworCisgICAgdmFyIGNvbnRlbnQgPSBpbnRlcm5h
bHMuY3JlYXRlQ29udGVudEVsZW1lbnQoZG9jdW1lbnQpOworICAgIGNvbnRlbnQuc2V0QXR0cmli
dXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bh
bldpdGhUZXh0KCJGQUxMQkFDSyIpKTsKKworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUoIntTSEFET1c6ICIpKTsKKyAgICByb290LmFwcGVuZENoaWxkKGNvbnRl
bnQpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7
Cit9CisKK2Z1bmN0aW9uIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCBzZWxlY3QpIHsKKyAgICB2
YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7CisKKyAgICB2YXIg
Y2hpbGQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgeworICAgICAgICB2
YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVudCk7Cisg
ICAgICAgIGNvbnRlbnQuc2V0QXR0cmlidXRlKCdzZWxlY3QnLCBzZWxlY3QpOworICAgICAgICBj
b250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgiRkFMTEJBQ0siKSk7CisKKyAg
ICAgICAgY2hpbGQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIntJTk5FUjog
IikpOworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChjb250ZW50KTsKKyAgICAgICAgY2hpbGQu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7CisgICAgfQorCisgICAg
cm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwor
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoY2hpbGQpOworICAgIHJvb3QuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUoIn0iKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RGYWxsYmFjaygpIHsK
KyAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFy
Z2V0LmlubmVySFRNTCA9ICI8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hh
ZG93KHRhcmdldCwgIiNub24tZWxlbWVudCIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAg
IjxkaXY+e1NIQURPVzogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvZGl2PiI7Cit9CisKK2Z1bmN0
aW9uIHRlc3RGYWxsYmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2RpdicpOworICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4+U0VMRUNURUQ8
L3NwYW4+IjsKKworICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAiI25vbi1lbGVtZW50Iik7
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250
YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6
IDxzcGFuPkZBTExCQUNLPC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Cit9CisKK2Z1bmN0aW9uIHRl
c3ROb25GYWxsYmFja1dpdGhMaWdodENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFu
IGlkPSdzZWxlY3RlZC0xJz5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93KHRh
cmdldCwgIiNzZWxlY3RlZC0xIik7CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0
dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj57
U0hBRE9XOiA8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj59PC9kaXY+IjsKK30KKworZnVuY3Rpb24gdGVz
dE5vbkZhbGxiYWNrRGVlcFdpdGhMaWdodENoaWxkcmVuKCkgeworICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxz
cGFuIGlkPSdzZWxlY3RlZC0yJz5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93
RGVlcCh0YXJnZXQsICIjc2VsZWN0ZWQtMiIpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAg
IjxkaXY+e1NIQURPVzogPHNwYW4+e0lOTkVSOiA8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj59PC9zcGFu
Pn08L2Rpdj4iOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrKCkgeworICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBhcHBlbmRTaGFk
b3codGFyZ2V0LCAnI2NvbXBsZXgtMScpOworCisgICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1
dGUoJ2lkJywgJ2NvbXBsZXgtMScpOworICAgIHsKKyAgICAgICAgc2VsZWN0Q29udGVudC5hcHBl
bmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NFTEVDVEVEJykpOworICAgIH0KKyAgICBhcHBl
bmRTaGFkb3coc2VsZWN0Q29udGVudCwgJ3NwYW4nKTsKKworICAgIHRhcmdldC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOworICAgIHRhcmdl
dC5hcHBlbmRDaGlsZChzZWxlY3RDb250ZW50KTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKKworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRN
TCA9CisgICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPntTSEFET1c6IDxzcGFuPlNFTEVDVEVE
PC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJh
Y2tEZWVwKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYn
KTsKKyAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgJyNjb21wbGV4LTInKTsKKworICAgIHZh
ciBzZWxlY3RDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOworICAgIHNl
bGVjdENvbnRlbnQuc2V0QXR0cmlidXRlKCdpZCcsICdjb21wbGV4LTInKTsKKyAgICB7CisgICAg
ICAgIHNlbGVjdENvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3BhbldpdGhUZXh0KCdTRUxFQ1RF
RCcpKTsKKyAgICB9CisgICAgYXBwZW5kU2hhZG93RGVlcChzZWxlY3RDb250ZW50LCAnc3Bhbicp
OworCisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09O
VCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOwor
ICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VM
RUNURURdJykpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgIjxkaXY+e1NIQURPVzogPHNw
YW4+e0lOTkVSOiA8c3Bhbj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPlNFTEVDVEVEPC9z
cGFuPn08L3NwYW4+fTwvc3Bhbj59PC9zcGFuPn08L3NwYW4+PC9kaXY+IjsKK30KKworZnVuY3Rp
b24gdGVzdENvbXBsZXhGYWxsYmFja0FnYWluKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAnI2NvbXBs
ZXgtMycpOworCisgICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCdzcGFuJyk7CisgICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NvbXBsZXgt
MycpOworICAgIHsKKyAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFu
V2l0aFRleHQoJ1NFTEVDVEVEJykpOworICAgIH0KKyAgICBhcHBlbmRTaGFkb3coc2VsZWN0Q29u
dGVudCwgJyNub24tZWxlbWVudCcpOworCisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENo
aWxkKHNlbGVjdENvbnRlbnQpOworICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAg
ICAgIjxkaXY+e1NIQURPVzogPHNwYW4+e1NIQURPVzogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwv
c3Bhbj59PC9zcGFuPjwvZGl2PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3RDb21wbGV4RmFsbGJhY2tE
ZWVwQWdhaW4oKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rp
dicpOworICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0LCAnI2NvbXBsZXgtNCcpOworCisgICAg
dmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7CisgICAg
c2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywgJ2NvbXBsZXgtNCcpOworICAgIHsKKyAg
ICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoJ1NFTEVD
VEVEJykpOworICAgIH0KKyAgICBhcHBlbmRTaGFkb3dEZWVwKHNlbGVjdENvbnRlbnQsICcjbm9u
LWVsZW1lbnQnKTsKKworICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOworICAgIHRhcmdldC5hcHBlbmRDaGlsZChzZWxlY3RD
b250ZW50KTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
J1tXT05UIFNFTEVDVEVEXScpKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1
YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9CisgICAgICAgICI8ZGl2PntT
SEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+e1NIQURPVzogPHNwYW4+e0lOTkVSOiA8c3Bhbj5G
QUxMQkFDSzwvc3Bhbj59PC9zcGFuPn08L3NwYW4+fTwvc3Bhbj59PC9zcGFuPjwvZGl2PiI7Cit9
CisKK3ZhciB0ZXN0RnVuY3MgPSBbCisgICAgdGVzdEZhbGxiYWNrLAorICAgIHRlc3RGYWxsYmFj
a0RlZXAsCisgICAgdGVzdE5vbkZhbGxiYWNrV2l0aExpZ2h0Q2hpbGRyZW4sCisgICAgdGVzdE5v
bkZhbGxiYWNrRGVlcFdpdGhMaWdodENoaWxkcmVuLAorICAgIHRlc3RDb21wbGV4RmFsbGJhY2ss
CisgICAgdGVzdENvbXBsZXhGYWxsYmFja0RlZXAsCisgICAgdGVzdENvbXBsZXhGYWxsYmFja0Fn
YWluLAorICAgIHRlc3RDb21wbGV4RmFsbGJhY2tEZWVwQWdhaW4KK10KKworZnVuY3Rpb24gZG9U
ZXN0KCkgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBjbGVh
blVwKCk7CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RGdW5jcy5sZW5ndGg7ICsraSkg
eworICAgICAgICB0ZXN0RnVuY3NbaV0oKTsKKyAgICAgICAgY2hlY2soKTsKKyAgICAgICAgY2xl
YW5VcCgpOworICAgIH0KK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJkb1Rl
c3QoKSI+CisKKzxkaXYgaWQ9ImFjdHVhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPjwv
ZGl2PgorPGRpdiBpZD0iZXhwZWN0LWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+
Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKworPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123061</attachid>
            <date>2012-01-18 20:35:42 -0800</date>
            <delta_ts>2012-01-18 23:06:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75306-20120119133541.patch</filename>
            <type>text/plain</type>
            <size>15691</size>
            <attacher name="Shinya Kawanaka">shinyak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1Mzc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTM4NTJkMmJlMGYwNTlj
MTZkNWMxZjFkZTExMjlhNDE0ODJjMmUxNi4uOTJiMTg0ZDUyMjViZGMwZWZjMjcyYzFhNWNmMTRj
NjYxNTZjZGU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAxLTE4ICBTaGlu
eWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAgICAgU2hhZG93Q29udGVu
dCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVsZW1lbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUzMDYKKworICAgICAg
ICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgIFdoZW4gbm8gZWxlbWVudHMg
YXJlIHNlbGVjdGVkIGJ5IGEgc2hhZG93IGNvbnRlbnQgZWxlbWVudCBzZWxlY3RvciBxdWVyeSwK
KyAgICAgICAgbGlnaHQgY2hpbGRyZW4gYXJlIHNlbGVjdGVkIGFzIGEgZmFsbGJhY2sgZWxlbWVu
dHMuCisKKyAgICAgICAgVGVzdDogZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxs
YmFjay5odG1sCisKKyAgICAgICAgKiBkb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Ok5vZGVSZW5kZXJpbmdDb250ZXh0
KToKKyAgICAgICAgICBDb25zaWRlcnMgZmFsbGJhY2sgcGhhc2UuIFdoZW4gbm8gZWxlbWVudHMg
YXJlIGNob3NlbiwgdGhlIHBoYXNlIGlzIHNldCB0byAnZmFsbGJhY2snLgorICAgICAgICAoV2Vi
Q29yZTo6Tm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcik6CisgICAgICAgICAgVGFr
ZXMgZmFsbGJhY2sgcGhhc2UgaW50byBhY2NvdW50LgorICAgICAgICAoV2ViQ29yZTo6Tm9kZVJl
bmRlcmluZ0NvbnRleHQ6OnByZXZpb3VzUmVuZGVyZXIpOiBkaXR0by4KKyAgICAgICAgKiBkb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBodG1sL3NoYWRvdy9IVE1MQ29udGVu
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjphdHRh
Y2gpOgorICAgICAgICAgIENhbGN1bGF0ZXMgaW5jbHVzaW9ucyBiZWZvcmUgYXR0YWNoaW5nIGxp
Z2h0IGNoaWxkcmVuLgorICAgICAgICAqIGh0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5o
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTENvbnRlbnRFbGVtZW50OjpoYXNJbmNsdXNpb24pOgor
CiAyMDEyLTAxLTE4ICBJYW4gVm9sbGljayAgPHZvbGxpY2tAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtjaHJvbWl1bV0gQ3JlYXRlIGEgYmFzZS1jbGFzcyBDQ0FuaW1hdGlvbiB0byByZXByZXNl
bnQgY29tcG9zaXRvciBhbmltYXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmNwcAppbmRleCAyMjZjMGY0YmU4ZTU1OGZmOTAwYjk0MWQwOGIyMDVhMWMyMmNh
OWNiLi40NjhiOGJiODk5NDc4ZTk4YjM0YzA4OWVkZTY3YWYxN2MwMzA3NjJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlUmVuZGVyaW5nQ29udGV4dC5jcHAKQEAgLTczLDEyICs3MywyMSBA
QCBOb2RlUmVuZGVyaW5nQ29udGV4dDo6Tm9kZVJlbmRlcmluZ0NvbnRleHQoTm9kZSogbm9kZSkK
ICAgICAgICAgICAgICAgICBtX3BoYXNlID0gQXR0YWNoQ29udGVudEZvcndhcmRlZDsKICAgICAg
ICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IE5vZGVSZW5kZXJp
bmdDb250ZXh0KG1faW5jbHVkZXIpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOwog
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIH0gCi0gICAgICAgICAgICAgICAg
CisgICAgICAgICAgICB9CisKICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hDb250ZW50TGln
aHQ7CiAgICAgICAgICAgICBtX3BhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSA9IHBhcmVu
dDsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAgIGlmIChwYXJlbnQt
PmlzQ29udGVudEVsZW1lbnQoKSkgeworICAgICAgICAgICAgSFRNTENvbnRlbnRFbGVtZW50KiBz
aGFkb3dDb250ZW50RWxlbWVudCA9IHRvSFRNTENvbnRlbnRFbGVtZW50KHBhcmVudCk7CisgICAg
ICAgICAgICBpZiAoIXNoYWRvd0NvbnRlbnRFbGVtZW50LT5oYXNJbmNsdXNpb24oKSkgeworICAg
ICAgICAgICAgICAgIG1fcGhhc2UgPSBBdHRhY2hDb250ZW50RmFsbGJhY2s7CisgICAgICAgICAg
ICAgICAgbV9wYXJlbnROb2RlRm9yUmVuZGVyaW5nQW5kU3R5bGUgPSBOb2RlUmVuZGVyaW5nQ29u
dGV4dChwYXJlbnQpLnBhcmVudE5vZGVGb3JSZW5kZXJpbmdBbmRTdHlsZSgpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAgIG1f
cGFyZW50Tm9kZUZvclJlbmRlcmluZ0FuZFN0eWxlID0gcGFyZW50OwpAQCAtMTc2LDcgKzE4NSw3
IEBAIFJlbmRlck9iamVjdCogTm9kZVJlbmRlcmluZ0NvbnRleHQ6Om5leHRSZW5kZXJlcigpIGNv
bnN0CiAKICAgICAvLyBBdm9pZCBhbiBPKG5eMikgcHJvYmxlbSB3aXRoIHRoaXMgZnVuY3Rpb24g
Ynkgbm90IGNoZWNraW5nIGZvcgogICAgIC8vIG5leHRSZW5kZXJlcigpIHdoZW4gdGhlIHBhcmVu
dCBlbGVtZW50IGhhc24ndCBhdHRhY2hlZCB5ZXQuCi0gICAgaWYgKG1fbm9kZS0+cGFyZW50T3JI
b3N0Tm9kZSgpICYmICFtX25vZGUtPnBhcmVudE9ySG9zdE5vZGUoKS0+YXR0YWNoZWQoKSkKKyAg
ICBpZiAobV9ub2RlLT5wYXJlbnRPckhvc3ROb2RlKCkgJiYgIW1fbm9kZS0+cGFyZW50T3JIb3N0
Tm9kZSgpLT5hdHRhY2hlZCgpICYmIG1fcGhhc2UgIT0gQXR0YWNoQ29udGVudEZhbGxiYWNrKQog
ICAgICAgICByZXR1cm4gMDsKIAogICAgIGZvciAoTm9kZSogbm9kZSA9IG1fbm9kZS0+bmV4dFNp
YmxpbmcoKTsgbm9kZTsgbm9kZSA9IG5vZGUtPm5leHRTaWJsaW5nKCkpIHsKQEAgLTE5Miw2ICsy
MDEsOSBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpuZXh0UmVuZGVyZXIo
KSBjb25zdAogICAgICAgICB9CiAgICAgfQogCisgICAgaWYgKG1fcGhhc2UgPT0gQXR0YWNoQ29u
dGVudEZhbGxiYWNrKQorICAgICAgICByZXR1cm4gTm9kZVJlbmRlcmluZ0NvbnRleHQobV9ub2Rl
LT5wYXJlbnROb2RlKCkpLm5leHRSZW5kZXJlcigpOworCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg
LTIyNSw2ICsyMzcsOSBAQCBSZW5kZXJPYmplY3QqIE5vZGVSZW5kZXJpbmdDb250ZXh0OjpwcmV2
aW91c1JlbmRlcmVyKCkgY29uc3QKICAgICAgICAgfQogICAgIH0KIAorICAgIGlmIChtX3BoYXNl
ID09IEF0dGFjaENvbnRlbnRGYWxsYmFjaykKKyAgICAgICAgcmV0dXJuIE5vZGVSZW5kZXJpbmdD
b250ZXh0KG1fbm9kZS0+cGFyZW50Tm9kZSgpKS5wcmV2aW91c1JlbmRlcmVyKCk7CisKICAgICBy
ZXR1cm4gMDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGVSZW5kZXJp
bmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaApp
bmRleCBkMzE0MTE3NmYyMDU0MzQyMjcwZjZhNGUxMzFjZjlkNGJiZWRlOThmLi42MTA0MjBkMzc3
YzgyMzRmNWZjZDJmMzhmMTc5OTMxNGIyMWE0OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZVJlbmRlcmluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9k
ZVJlbmRlcmluZ0NvbnRleHQuaApAQCAtNzksNiArNzksNyBAQCBwcml2YXRlOgogICAgICAgICBB
dHRhY2hTdHJhaWdodCwKICAgICAgICAgQXR0YWNoQ29udGVudExpZ2h0LAogICAgICAgICBBdHRh
Y2hDb250ZW50Rm9yd2FyZGVkLAorICAgICAgICBBdHRhY2hDb250ZW50RmFsbGJhY2ssCiAgICAg
fTsKIAogICAgIFRyZWVMb2NhdGlvbiBtX2xvY2F0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9zaGFkb3cvSFRNTENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5jcHAKaW5kZXggMWMxNGZlY2U5YWJjMzkz
MmMyZjVjMTUwNmQyZWRhMDE5OWYyZjk1NS4uZDQxNjUyZjBmMjQzODIzZjY0YjY3NDFjZDFlYzUz
MTQ4ZmUyMWVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvSFRNTENv
bnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9IVE1MQ29u
dGVudEVsZW1lbnQuY3BwCkBAIC01NiwxMyArNTYsMTggQEAgSFRNTENvbnRlbnRFbGVtZW50Ojp+
SFRNTENvbnRlbnRFbGVtZW50KCkKIAogdm9pZCBIVE1MQ29udGVudEVsZW1lbnQ6OmF0dGFjaCgp
CiB7Ci0gICAgQVNTRVJUKCFmaXJzdENoaWxkKCkpOyAvLyBDdXJyZW50bHkgZG9lc24ndCBzdXBw
b3J0IGFueSBsaWdodCBjaGlsZC4KLSAgICBIVE1MRWxlbWVudDo6YXR0YWNoKCk7CisgICAgU2hh
ZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUoKSk7CiAKLSAg
ICBpZiAoU2hhZG93Um9vdCogcm9vdCA9IHRvU2hhZG93Um9vdChzaGFkb3dUcmVlUm9vdE5vZGUo
KSkpIHsKKyAgICAvLyBCZWZvcmUgY2FsbGluZyBTdHlsZWRFbGVtZW50OjphdHRhY2gsIHNlbGVj
dG9yIG11c3QgYmUgY2FsY3VsYXRlZC4KKyAgICBpZiAocm9vdCkgewogICAgICAgICBDb250ZW50
SW5jbHVzaW9uU2VsZWN0b3IqIHNlbGVjdG9yID0gcm9vdC0+ZW5zdXJlSW5jbHVzaW9ucygpOwog
ICAgICAgICBzZWxlY3Rvci0+dW5zZWxlY3QobV9pbmNsdXNpb25zLmdldCgpKTsKICAgICAgICAg
c2VsZWN0b3ItPnNlbGVjdCh0aGlzLCBtX2luY2x1c2lvbnMuZ2V0KCkpOworICAgIH0KKworICAg
IEhUTUxFbGVtZW50OjphdHRhY2goKTsKKworICAgIGlmIChyb290KSB7CiAgICAgICAgIGZvciAo
U2hhZG93SW5jbHVzaW9uKiBpbmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1
c2lvbjsgaW5jbHVzaW9uID0gaW5jbHVzaW9uLT5uZXh0KCkpCiAgICAgICAgICAgICBpbmNsdXNp
b24tPmNvbnRlbnQoKS0+ZGV0YWNoKCk7CiAgICAgICAgIGZvciAoU2hhZG93SW5jbHVzaW9uKiBp
bmNsdXNpb24gPSBtX2luY2x1c2lvbnMtPmZpcnN0KCk7IGluY2x1c2lvbjsgaW5jbHVzaW9uID0g
aW5jbHVzaW9uLT5uZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9IVE1MQ29udGVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxD
b250ZW50RWxlbWVudC5oCmluZGV4IDMzNzc3MmJkNThhYmU3MmYzOWQ4Njc0ZWFhNDhiNWZmMTA3
MDY4YTguLmExMTdhNDgxY2YxZTQ4MjVjNzE0MTdkNDQ3ODc5ODZlYjYxZDFmZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L0hUTUxDb250ZW50RWxlbWVudC5oCkBAIC0zMSw2
ICszMSw3IEBACiAjaWZuZGVmIEhUTUxDb250ZW50RWxlbWVudF9oCiAjZGVmaW5lIEhUTUxDb250
ZW50RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDb250ZW50SW5jbHVzaW9uU2VsZWN0b3IuaCIKICNp
bmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAKQEAgLTU5
LDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VsZWN0KGNvbnN0IEF0b21pY1N0cmlu
ZyYpOwogCiAgICAgY29uc3QgU2hhZG93SW5jbHVzaW9uTGlzdCogaW5jbHVzaW9ucygpIGNvbnN0
IHsgcmV0dXJuIG1faW5jbHVzaW9ucy5nZXQoKTsgfQorICAgIGJvb2wgaGFzSW5jbHVzaW9uKCkg
Y29uc3QgeyByZXR1cm4gaW5jbHVzaW9ucygpLT5maXJzdCgpOyB9CiAKIHByb3RlY3RlZDoKICAg
ICBIVE1MQ29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Kik7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggYzY2ODFlNzI3ZThmM2IzM2ZmYWQ0NGNmMGU5YmU0MjZhNDQyMzc3MC4uZGIzYjY1YmJh
NTI0NzY3MmY1NmRkMzI2MzI3MzM4YzQ2MjNlMThiZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDEyLTAxLTE4ICBTaGlueWEgS2F3YW5ha2EgIDxzaGlueWFrQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgU2hhZG93Q29udGVudCBxdWVyeSBzaG91bGQgYmUgYWJsZSB0byBoYXZlIGZhbGxiYWNrIGVs
ZW1lbnRzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzUzMDYKKworICAgICAgICBSZXZpZXdlZCBieSBIYWppbWUgTW9yaXRhLgorCisgICAgICAgICog
ZmFzdC9kb20vc2hhZG93L3NoYWRvdy1jb250ZW50cy1mYWxsYmFjay1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3NoYWRvdy9zaGFkb3ctY29udGVudHMtZmFsbGJhY2su
aHRtbDogQWRkZWQuCisKIDIwMTItMDEtMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5i
b3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDUzMzEu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRz
LWZhbGxiYWNrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3NoYWRvdy9zaGFk
b3ctY29udGVudHMtZmFsbGJhY2stZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5NTIyYjRjZDli
YTY1NTcyNDA1OTcwNTI2NDc4OTFmMmQyMjA0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDkgQEAKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BBU1MKK1BB
U1MKK1BBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3NoYWRv
dy1jb250ZW50cy1mYWxsYmFjay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vc2hhZG93L3No
YWRvdy1jb250ZW50cy1mYWxsYmFjay5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZhYmU2NGMyOTgzZDA4ZjI5
MTYzOTVmMTU1MTlkODQyMzQ0NTNmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9zaGFkb3cvc2hhZG93LWNvbnRlbnRzLWZhbGxiYWNrLmh0bWwKQEAgLTAsMCArMSwy
NDcgQEAKKyA8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisvKiByZWxh
dGl2ZSBwb3NpdGlvbmluZyBlbnN1cmVzIHVuZGVybHlpbmcgUmVuZGVyTGF5ZXIgKi8KKy5jb250
YWluZXIgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKK30KKworLnNwYW4geworICAgIGRpc3Bs
YXk6IGJveGVkLWlubGluZTsKKyAgICBtYXJnaW46IDJweDsKKyAgICBib3JkZXI6IHNvbGlkOwor
fQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJIVE1MICs9IChtZXNzYWdlICsgIlxu
Iik7Cit9CisKK2Z1bmN0aW9uIHJlbW92ZUFsbENoaWxkcmVuKGVsZW0pIHsKKyAgICB3aGlsZSAo
ZWxlbS5maXJzdENoaWxkKQorICAgICAgICBlbGVtLnJlbW92ZUNoaWxkKGVsZW0uZmlyc3RDaGls
ZCk7Cit9CisKK2Z1bmN0aW9uIGNsZWFuVXAoKSB7CisgICAgcmVtb3ZlQWxsQ2hpbGRyZW4oZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKSk7CisgICAgcmVtb3ZlQWxs
Q2hpbGRyZW4oZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7Cit9
CisKK2Z1bmN0aW9uIHJlbW92ZUNvbnRhaW5lckxpbmVzKHRleHQpIHsKKyAgICB2YXIgbGluZXMg
PSB0ZXh0LnNwbGl0KCdcbicpOworICAgIGxpbmVzLnNwbGljZSgwLCAyKTsKKyAgICByZXR1cm4g
bGluZXMuam9pbignXG4nKTsKK30KKworZnVuY3Rpb24gY2hlY2soKSB7CisgICAgdmFyIHJlZkNv
bnRhaW5lclJlbmRlclRyZWUgPSBpbnRlcm5hbHMuZWxlbWVudFJlbmRlclRyZWVBc1RleHQoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKSk7CisgICAgdmFyIHJlZlJl
bmRlclRyZWUgPSByZW1vdmVDb250YWluZXJMaW5lcyhyZWZDb250YWluZXJSZW5kZXJUcmVlKTsK
KworICAgIHZhciB0YXJnZXRDb250YWluZXJSZW5kZXJUcmVlID0gaW50ZXJuYWxzLmVsZW1lbnRS
ZW5kZXJUcmVlQXNUZXh0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVy
JykpOworICAgIHZhciB0YXJnZXRSZW5kZXJUcmVlID0gcmVtb3ZlQ29udGFpbmVyTGluZXModGFy
Z2V0Q29udGFpbmVyUmVuZGVyVHJlZSk7CisKKyAgICBpZiAodGFyZ2V0UmVuZGVyVHJlZSA9PSBy
ZWZSZW5kZXJUcmVlKQorICAgICAgICBsb2coIlBBU1MiKTsKKyAgICBlbHNlIHsKKyAgICAgICAg
bG9nKCJGQUlMIik7CisgICAgICAgIGxvZygiRXhwZWN0ZWQ6ICIpOworICAgICAgICBsb2cocmVm
UmVuZGVyVHJlZSk7CisgICAgICAgIGxvZygiQWN0dWFsOiAiKTsKKyAgICAgICAgbG9nKHRhcmdl
dFJlbmRlclRyZWUpOworICAgIH0KKworfQorCitmdW5jdGlvbiBjcmVhdGVTcGFuV2l0aFRleHQo
dGV4dCkgeworICAgIHZhciBzcGFuID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpOwor
ICAgIHNwYW4uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUodGV4dCkpOworICAg
IHJldHVybiBzcGFuOworfQorCitmdW5jdGlvbiBhcHBlbmRTaGFkb3codGFyZ2V0LCBzZWxlY3Qp
IHsKKyAgICB2YXIgcm9vdCA9IGludGVybmFscy5lbnN1cmVTaGFkb3dSb290KHRhcmdldCk7CisK
KyAgICB2YXIgY29udGVudCA9IGludGVybmFscy5jcmVhdGVDb250ZW50RWxlbWVudChkb2N1bWVu
dCk7CisgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3NlbGVjdCcsIHNlbGVjdCk7CisgICAgY29u
dGVudC5hcHBlbmRDaGlsZChjcmVhdGVTcGFuV2l0aFRleHQoIkZBTExCQUNLIikpOworCisgICAg
cm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgie1NIQURPVzogIikpOwor
ICAgIHJvb3QuYXBwZW5kQ2hpbGQoY29udGVudCk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKK30KKworZnVuY3Rpb24gYXBwZW5kU2hhZG93RGVl
cCh0YXJnZXQsIHNlbGVjdCkgeworICAgIHZhciByb290ID0gaW50ZXJuYWxzLmVuc3VyZVNoYWRv
d1Jvb3QodGFyZ2V0KTsKKworICAgIHZhciBjaGlsZCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
InNwYW4iKTsKKyAgICB7CisgICAgICAgIHZhciBjb250ZW50ID0gaW50ZXJuYWxzLmNyZWF0ZUNv
bnRlbnRFbGVtZW50KGRvY3VtZW50KTsKKyAgICAgICAgY29udGVudC5zZXRBdHRyaWJ1dGUoJ3Nl
bGVjdCcsIHNlbGVjdCk7CisgICAgICAgIGNvbnRlbnQuYXBwZW5kQ2hpbGQoY3JlYXRlU3Bhbldp
dGhUZXh0KCJGQUxMQkFDSyIpKTsKKworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZSgie0lOTkVSOiAiKSk7CisgICAgICAgIGNoaWxkLmFwcGVuZENoaWxk
KGNvbnRlbnQpOworICAgICAgICBjaGlsZC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgifSIpKTsKKyAgICB9CisKKyAgICByb290LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCJ7U0hBRE9XOiAiKSk7CisgICAgcm9vdC5hcHBlbmRDaGlsZChjaGlsZCk7Cisg
ICAgcm9vdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgifSIpKTsKK30KKwor
ZnVuY3Rpb24gdGVzdEZhbGxiYWNrKCkgeworICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdkaXYnKTsKKyAgICB0YXJnZXQuaW5uZXJIVE1MID0gIjxzcGFuPlNFTEVDVEVE
PC9zcGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI25vbi1lbGVtZW50Iik7CisK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj5GQUxMQkFDSzwv
c3Bhbj59PC9kaXY+IjsKK30KKworZnVuY3Rpb24gdGVzdEZhbGxiYWNrRGVlcCgpIHsKKyAgICB2
YXIgdGFyZ2V0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgdGFyZ2V0Lmlu
bmVySFRNTCA9ICI8c3Bhbj5TRUxFQ1RFRDwvc3Bhbj4iOworCisgICAgYXBwZW5kU2hhZG93RGVl
cCh0YXJnZXQsICIjbm9uLWVsZW1lbnQiKTsKKworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFyZ2V0KTsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlubmVySFRNTCA9CisgICAgICAgICI8
ZGl2PntTSEFET1c6IDxzcGFuPntJTk5FUjogPHNwYW4+RkFMTEJBQ0s8L3NwYW4+fTwvc3Bhbj59
PC9kaXY+IjsKK30KKworZnVuY3Rpb24gdGVzdE5vbkZhbGxiYWNrV2l0aExpZ2h0Q2hpbGRyZW4o
KSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAg
IHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NlbGVjdGVkLTEnPlNFTEVDVEVEPC9zcGFu
PiI7CisKKyAgICBhcHBlbmRTaGFkb3codGFyZ2V0LCAiI3NlbGVjdGVkLTEiKTsKKworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdhY3R1YWwtY29udGFpbmVyJykuYXBwZW5kQ2hpbGQodGFy
Z2V0KTsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhwZWN0LWNvbnRhaW5lcicpLmlu
bmVySFRNTCA9CisgICAgICAgICI8ZGl2PntTSEFET1c6IDxzcGFuPlNFTEVDVEVEPC9zcGFuPn08
L2Rpdj4iOworfQorCitmdW5jdGlvbiB0ZXN0Tm9uRmFsbGJhY2tEZWVwV2l0aExpZ2h0Q2hpbGRy
ZW4oKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwor
ICAgIHRhcmdldC5pbm5lckhUTUwgPSAiPHNwYW4gaWQ9J3NlbGVjdGVkLTInPlNFTEVDVEVEPC9z
cGFuPiI7CisKKyAgICBhcHBlbmRTaGFkb3dEZWVwKHRhcmdldCwgIiNzZWxlY3RlZC0yIik7CisK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENo
aWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWlu
ZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxz
cGFuPlNFTEVDVEVEPC9zcGFuPn08L3NwYW4+fTwvZGl2PiI7Cit9CisKK2Z1bmN0aW9uIHRlc3RD
b21wbGV4RmFsbGJhY2soKSB7CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvdyh0YXJnZXQsICcjY29tcGxleC0xJyk7CisKKyAg
ICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAg
ICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0xJyk7CisgICAgewor
ICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VM
RUNURUQnKSk7CisgICAgfQorICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnc3Bhbicp
OworCisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09O
VCBTRUxFQ1RFRF0nKSk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOwor
ICAgIHRhcmdldC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VM
RUNURURdJykpOworCisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWlu
ZXInKS5hcHBlbmRDaGlsZCh0YXJnZXQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdl
eHBlY3QtY29udGFpbmVyJykuaW5uZXJIVE1MID0KKyAgICAgICAgIjxkaXY+e1NIQURPVzogPHNw
YW4+e1NIQURPVzogPHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvc3Bhbj59PC9kaXY+IjsKK30KKwor
ZnVuY3Rpb24gdGVzdENvbXBsZXhGYWxsYmFja0RlZXAoKSB7CisgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFwcGVuZFNoYWRvd0RlZXAodGFyZ2V0
LCAnI2NvbXBsZXgtMicpOworCisgICAgdmFyIHNlbGVjdENvbnRlbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCdzcGFuJyk7CisgICAgc2VsZWN0Q29udGVudC5zZXRBdHRyaWJ1dGUoJ2lkJywg
J2NvbXBsZXgtMicpOworICAgIHsKKyAgICAgICAgc2VsZWN0Q29udGVudC5hcHBlbmRDaGlsZChj
cmVhdGVTcGFuV2l0aFRleHQoJ1NFTEVDVEVEJykpOworICAgIH0KKyAgICBhcHBlbmRTaGFkb3dE
ZWVwKHNlbGVjdENvbnRlbnQsICdzcGFuJyk7CisKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVEXScpKTsKKyAgICB0YXJnZXQuYXBw
ZW5kQ2hpbGQoc2VsZWN0Q29udGVudCk7CisgICAgdGFyZ2V0LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7CisKKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVuZENoaWxkKHRhcmdldCk7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250YWluZXInKS5pbm5lckhUTUwgPQor
ICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPntTSEFET1c6IDxzcGFu
PntJTk5FUjogPHNwYW4+U0VMRUNURUQ8L3NwYW4+fTwvc3Bhbj59PC9zcGFuPn08L3NwYW4+fTwv
c3Bhbj48L2Rpdj4iOworfQorCitmdW5jdGlvbiB0ZXN0Q29tcGxleEZhbGxiYWNrQWdhaW4oKSB7
CisgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgIGFw
cGVuZFNoYWRvdyh0YXJnZXQsICcjY29tcGxleC0zJyk7CisKKyAgICB2YXIgc2VsZWN0Q29udGVu
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzZWxlY3RDb250ZW50LnNl
dEF0dHJpYnV0ZSgnaWQnLCAnY29tcGxleC0zJyk7CisgICAgeworICAgICAgICBzZWxlY3RDb250
ZW50LmFwcGVuZENoaWxkKGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7CisgICAgfQor
ICAgIGFwcGVuZFNoYWRvdyhzZWxlY3RDb250ZW50LCAnI25vbi1lbGVtZW50Jyk7CisKKyAgICB0
YXJnZXQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoJ1tXT05UIFNFTEVDVEVE
XScpKTsKKyAgICB0YXJnZXQuYXBwZW5kQ2hpbGQoc2VsZWN0Q29udGVudCk7CisgICAgdGFyZ2V0
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7
CisKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYWN0dWFsLWNvbnRhaW5lcicpLmFwcGVu
ZENoaWxkKHRhcmdldCk7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2V4cGVjdC1jb250
YWluZXInKS5pbm5lckhUTUwgPQorICAgICAgICAiPGRpdj57U0hBRE9XOiA8c3Bhbj57U0hBRE9X
OiA8c3Bhbj5GQUxMQkFDSzwvc3Bhbj59PC9zcGFuPn08L3NwYW4+PC9kaXY+IjsKK30KKworZnVu
Y3Rpb24gdGVzdENvbXBsZXhGYWxsYmFja0RlZXBBZ2FpbigpIHsKKyAgICB2YXIgdGFyZ2V0ID0g
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgYXBwZW5kU2hhZG93RGVlcCh0YXJn
ZXQsICcjY29tcGxleC00Jyk7CisKKyAgICB2YXIgc2VsZWN0Q29udGVudCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBzZWxlY3RDb250ZW50LnNldEF0dHJpYnV0ZSgnaWQn
LCAnY29tcGxleC00Jyk7CisgICAgeworICAgICAgICBzZWxlY3RDb250ZW50LmFwcGVuZENoaWxk
KGNyZWF0ZVNwYW5XaXRoVGV4dCgnU0VMRUNURUQnKSk7CisgICAgfQorICAgIGFwcGVuZFNoYWRv
d0RlZXAoc2VsZWN0Q29udGVudCwgJyNub24tZWxlbWVudCcpOworCisgICAgdGFyZ2V0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdbV09OVCBTRUxFQ1RFRF0nKSk7CisgICAg
dGFyZ2V0LmFwcGVuZENoaWxkKHNlbGVjdENvbnRlbnQpOworICAgIHRhcmdldC5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgnW1dPTlQgU0VMRUNURURdJykpOworCisgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2FjdHVhbC1jb250YWluZXInKS5hcHBlbmRDaGlsZCh0YXJn
ZXQpOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdleHBlY3QtY29udGFpbmVyJykuaW5u
ZXJIVE1MID0KKyAgICAgICAgIjxkaXY+e1NIQURPVzogPHNwYW4+e0lOTkVSOiA8c3Bhbj57U0hB
RE9XOiA8c3Bhbj57SU5ORVI6IDxzcGFuPkZBTExCQUNLPC9zcGFuPn08L3NwYW4+fTwvc3Bhbj59
PC9zcGFuPn08L3NwYW4+PC9kaXY+IjsKK30KKwordmFyIHRlc3RGdW5jcyA9IFsKKyAgICB0ZXN0
RmFsbGJhY2ssCisgICAgdGVzdEZhbGxiYWNrRGVlcCwKKyAgICB0ZXN0Tm9uRmFsbGJhY2tXaXRo
TGlnaHRDaGlsZHJlbiwKKyAgICB0ZXN0Tm9uRmFsbGJhY2tEZWVwV2l0aExpZ2h0Q2hpbGRyZW4s
CisgICAgdGVzdENvbXBsZXhGYWxsYmFjaywKKyAgICB0ZXN0Q29tcGxleEZhbGxiYWNrRGVlcCwK
KyAgICB0ZXN0Q29tcGxleEZhbGxiYWNrQWdhaW4sCisgICAgdGVzdENvbXBsZXhGYWxsYmFja0Rl
ZXBBZ2FpbgorXQorCitmdW5jdGlvbiBkb1Rlc3QoKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGNsZWFuVXAoKTsKKworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGVzdEZ1bmNzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHRlc3RGdW5jc1tpXSgpOworICAg
ICAgICBjaGVjaygpOworICAgICAgICBjbGVhblVwKCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImRvVGVzdCgpIj4KKworPGRpdiBpZD0iYWN0dWFsLWNvbnRh
aW5lciIgY2xhc3M9ImNvbnRhaW5lciI+PC9kaXY+Cis8ZGl2IGlkPSJleHBlY3QtY29udGFpbmVy
IiBjbGFzcz0iY29udGFpbmVyIj48L2Rpdj4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorCis8
L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>