<?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>54381</bug_id>
          
          <creation_ts>2011-02-14 02:08:32 -0800</creation_ts>
          <short_desc>Sketch script-src for Content Security Policy</short_desc>
          <delta_ts>2011-02-15 08:48:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53572</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jochen</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>350564</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 02:08:32 -0800</bug_when>
    <thetext>Sketch script-src for Content Security Policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350565</commentid>
    <comment_count>1</comment_count>
      <attachid>82299</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 02:09:30 -0800</bug_when>
    <thetext>Created attachment 82299
work-in-progress (needs test)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350566</commentid>
    <comment_count>2</comment_count>
      <attachid>82299</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-14 02:16:36 -0800</bug_when>
    <thetext>Comment on attachment 82299
work-in-progress (needs test)

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

I think i&apos;m too tired/sick to review this for real.  But I look forward to the tested patch.

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:151
&gt; +        m_scriptSrc = adoptPtr(new ScriptSrcDirective(value));

Should we have a default case?  Like logging to the console?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>350571</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 02:26:47 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 82299 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=82299&amp;action=review
&gt;
&gt; &gt; Source/WebCore/page/ContentSecurityPolicy.cpp:151
&gt; &gt; +        m_scriptSrc = adoptPtr(new ScriptSrcDirective(value));
&gt; 
&gt; Should we have a default case?  Like logging to the console?

Maybe...  I haven&apos;t really thought about what to do for unsupported directives.  My plan was just to ignore them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351012</commentid>
    <comment_count>4</comment_count>
      <attachid>82395</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 17:40:33 -0800</bug_when>
    <thetext>Created attachment 82395
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351028</commentid>
    <comment_count>5</comment_count>
      <attachid>82395</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-14 18:00:38 -0800</bug_when>
    <thetext>Comment on attachment 82395
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:130
&gt; +        emitDirective(String(name), String(value));
&gt; +        name.clear();
&gt; +        value.clear();

This still feels strange.  Seems you should have an emitAndClear function to wrap this copy/paste.

&gt; Source/WebCore/page/ContentSecurityPolicy.h:49
&gt;      bool m_isEnabled;

This name doesn&apos;t make much sense.  Seems you could have parsed already and not have &quot;enabled&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351037</commentid>
    <comment_count>6</comment_count>
      <attachid>82402</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 18:19:29 -0800</bug_when>
    <thetext>Created attachment 82402
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351039</commentid>
    <comment_count>7</comment_count>
      <attachid>82402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-14 18:27:51 -0800</bug_when>
    <thetext>Comment on attachment 82402
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:83
&gt; +        pos = parseDirective(pos, end);

I think I would have designed this to return the name and value from this function and then call emitDirective from within this loop.  That would get rid of the goto, and might make it more clear who is doing what.

I think this is OK though.  It&apos;s not immediately clear from reading that calling &quot;parseDirective&quot; will end up calling emitDirective.

Actually, in what I proposed then the Vectors are managed by the outer loop and they auto-clear then the loop loops.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351040</commentid>
    <comment_count>8</comment_count>
      <attachid>82402</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-14 18:29:41 -0800</bug_when>
    <thetext>Comment on attachment 82402
Patch

Please consider my alternate design when landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351046</commentid>
    <comment_count>9</comment_count>
      <attachid>82403</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 18:50:43 -0800</bug_when>
    <thetext>Created attachment 82403
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351047</commentid>
    <comment_count>10</comment_count>
      <attachid>82403</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-14 18:54:23 -0800</bug_when>
    <thetext>Comment on attachment 82403
Patch

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

&gt; Source/WebCore/page/ContentSecurityPolicy.cpp:87
&gt; +        parseDirective(pos, end, name, value);
&gt; +        if (name.isEmpty())
&gt; +            continue;

I would have probably had this return true/false for success.  But this is good too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351048</commentid>
    <comment_count>11</comment_count>
      <attachid>82403</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-14 18:57:25 -0800</bug_when>
    <thetext>Comment on attachment 82403
Patch

Yeah, it&apos;s a bit philosophical.  Parsing can never &quot;fail&quot; per se.  It&apos;s just that unnamed directives don&apos;t have any meaning, e.g., &quot;;;;;&quot; parses fine by has a bunch of unnamed directives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351302</commentid>
    <comment_count>12</comment_count>
      <attachid>82403</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-15 08:47:57 -0800</bug_when>
    <thetext>Comment on attachment 82403
Patch

Clearing flags on attachment: 82403

Committed r78569: &lt;http://trac.webkit.org/changeset/78569&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>351303</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-15 08:48:01 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82299</attachid>
            <date>2011-02-14 02:09:30 -0800</date>
            <delta_ts>2011-02-14 17:40:31 -0800</delta_ts>
            <desc>work-in-progress (needs test)</desc>
            <filename>bug-54381-20110214020929.patch</filename>
            <type>text/plain</type>
            <size>4546</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYzM3OTRkMjI0OGVjNGE3
OTdmN2U0OTU2ZGNlNzViYTcwNjcwMTgyLi40MjdiMDU3Mzc1OWI0YmMyNWMzNzE3NjA2YjY0MmU5
Mzk1NDg0ZjgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjIgQEAKIDIwMTEtMDItMTQgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTa2V0Y2ggc2NyaXB0LXNyYyBmb3IgQ29udGVudCBTZWN1cml0
eSBQb2xpY3kKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTU0MzgxCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBwYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3Rp
dmU6On5DU1BEaXJlY3RpdmUpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9s
aWN5OjpkaWRSZWNlaXZlSGVhZGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRTZWN1cml0
eVBvbGljeTo6Y2FuTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNyYyk6CisgICAgICAgIChXZWJDb3Jl
OjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRl
bnRTZWN1cml0eVBvbGljeTo6ZW1pdERpcmVjdGl2ZSk6CisgICAgICAgICogcGFnZS9Db250ZW50
U2VjdXJpdHlQb2xpY3kuaDoKKworMjAxMS0wMi0xNCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgogCiAgICAgICAgIEFk
ZCBiYXNpYyBwYXJzZXIgZm9yIENvbnRlbnQgU2VjdXJpdHkgUG9saWN5CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggODgxMTBlNjIwZjY2OTE5
NzlmNTYwNzdlYTg5MjhjMDA4MTdiYmFhYS4uMGNkNzk5MmVkYzJiZDVhNTMyODE2NTQwNGQ4ZTgw
MjIyZjkxMWNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9s
aWN5LmNwcApAQCAtMzEsMjAgKzMxLDM4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q1NQRGlyZWN0aXZlIHsKIHB1YmxpYzoKLSAgICBDU1BEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBu
YW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQotICAgICAgICA6IG1fbmFtZShuYW1lKQotICAgICAg
ICAsIG1fdmFsdWUodmFsdWUpCisgICAgdmlydHVhbCB+Q1NQRGlyZWN0aXZlKCkKICAgICB7CiAg
ICAgfQogCi0gICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9
Ci0gICAgY29uc3QgU3RyaW5nJiB2YWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmFsdWU7IH0KKyAg
ICB2aXJ0dWFsIGJvb2wgYWxsb3dzKGNvbnN0IEtVUkwmKSA9IDA7Cit9OworCituYW1lc3BhY2Ug
eworCitjbGFzcyBTY3JpcHRTcmNEaXJlY3RpdmUgOiBwdWJsaWMgQ1NQRGlyZWN0aXZlIHsKK3B1
YmxpYzoKKyAgICBleHBsaWNpdCBTY3JpcHRTcmNEaXJlY3RpdmUoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKKyAgICAgICAgOiBtX3ZhbHVlKHZhbHVlKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IFBh
cnNlIHZhbHVlLgorICAgIH0KKworICAgIHZpcnR1YWwgflNjcmlwdFNyY0RpcmVjdGl2ZSgpCisg
ICAgeworICAgIH0KKworICAgIHZpcnR1YWwgYm9vbCBhbGxvd3MoY29uc3QgS1VSTCYpCisgICAg
eworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQogCiBwcml2YXRlOgotICAgIFN0cmluZyBt
X25hbWU7CiAgICAgU3RyaW5nIG1fdmFsdWU7CiB9OwogCit9CisKIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6Q29udGVudFNlY3VyaXR5UG9saWN5KCkKICAgICA6IG1faXNFbmFibGVkKGZhbHNlKQog
ewpAQCAtNTYsMjEgKzc0LDIxIEBAIENvbnRlbnRTZWN1cml0eVBvbGljeTo6fkNvbnRlbnRTZWN1
cml0eVBvbGljeSgpCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRSZWNlaXZlSGVh
ZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyKQogewotICAgIGlmICghbV9kaXJlY3RpdmVzLmlzRW1w
dHkoKSkKKyAgICBpZiAobV9pc0VuYWJsZWQpCiAgICAgICAgIHJldHVybjsgLy8gVGhlIGZpcnN0
IHBvbGljeSB3aW5zLgogCi0gICAgbV9pc0VuYWJsZWQgPSB0cnVlOwogICAgIHBhcnNlKGhlYWRl
cik7CisgICAgbV9pc0VuYWJsZWQgPSB0cnVlOwogfQogCi1ib29sIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6Y2FuTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNyYyhjb25zdCBTdHJpbmcmKSBjb25zdAor
Ym9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMo
Y29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiB7Ci0gICAgcmV0dXJuICFtX2lzRW5hYmxlZDsKKyAg
ICByZXR1cm4gIW1fc2NyaXB0U3JjIHx8IG1fc2NyaXB0U3JjLT5hbGxvd3MoS1VSTChQYXJzZWRV
UkxTdHJpbmcsIHVybCkpOwogfQogCiB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2Uo
Y29uc3QgU3RyaW5nJiBwb2xpY3kpCiB7Ci0gICAgQVNTRVJUKG1fZGlyZWN0aXZlcy5pc0VtcHR5
KCkpOworICAgIEFTU0VSVCghbV9pc0VuYWJsZWQpOwogCiAgICAgaWYgKHBvbGljeS5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybjsKQEAgLTExNiw4ICsxMzQsNyBAQCB2b2lkIENvbnRlbnRTZWN1
cml0eVBvbGljeTo6cGFyc2UoY29uc3QgU3RyaW5nJiBwb2xpY3kpCiAgICAgICAgICAgICAvLyBX
ZSB1c2UgYSBjb3B5IGhlcmUgaW5zdGVhZCBvZiBTdHJpbmc6OmFkb3B0IGJlY2F1c2Ugd2UgZXhw
ZWN0CiAgICAgICAgICAgICAvLyB0aGUgbmFtZSBhbmQgdGhlIHZhbHVlIHRvIGJlIHJlbGF0aXZl
bHkgc2hvcnQsIHNvIHRoZSBjb3B5IHdpbGwKICAgICAgICAgICAgIC8vIGJlIGNoZWFwZXIgdGhh
biB0aGUgZXh0cmEgbWFsbG9jLgotICAgICAgICAgICAgLy8gRklYTUU6IFBlcmZvcm0gZGlyZWN0
aXZlLXNwZWNpZmljIHBhcnNpbmcgb2YgdGhlIHZhbHVlLgotICAgICAgICAgICAgbV9kaXJlY3Rp
dmVzLmFwcGVuZChDU1BEaXJlY3RpdmUoU3RyaW5nKG5hbWUpLCBTdHJpbmcodmFsdWUpKSk7Cisg
ICAgICAgICAgICBlbWl0RGlyZWN0aXZlKFN0cmluZyhuYW1lKSwgU3RyaW5nKHZhbHVlKSk7CiAg
ICAgICAgICAgICBuYW1lLmNsZWFyKCk7CiAgICAgICAgICAgICB2YWx1ZS5jbGVhcigpOwogICAg
ICAgICAgICAgc3RhdGUgPSBCZWZvcmVEaXJlY3RpdmVOYW1lOwpAQCAtMTI2LDQgKzE0MywxMiBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2UoY29uc3QgU3RyaW5nJiBwb2xpY3kp
CiAgICAgfQogfQogCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZW1pdERpcmVjdGl2ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAgREVGSU5FX1NU
QVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywgKCJzY3JpcHQtc3JjIikpOworCisgICAgaWYg
KCFtX3NjcmlwdFNyYyAmJiBlcXVhbElnbm9yaW5nQ2FzZShuYW1lLCBzY3JpcHRTcmMpKQorICAg
ICAgICBtX3NjcmlwdFNyYyA9IGFkb3B0UHRyKG5ldyBTY3JpcHRTcmNEaXJlY3RpdmUodmFsdWUp
KTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJp
dHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgK
aW5kZXggODQzNTE2NmU2MjNmNjA5YTc5ZDQxOGI0MTNhOTUzYjY3OTRiY2JkZS4uNDQyMzU3YWFm
YjMzMWE3YmFkYzYyZDUwMjAxZjY2ODQ4ZTQ0N2I4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC00MywxMiArNDMsMTEgQEAgcHVibGljOgogICAg
IGJvb2wgY2FuTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNyYyhjb25zdCBTdHJpbmcmIHVybCkgY29u
c3Q7CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBWZWN0b3I8Q1NQRGlyZWN0aXZlPiBEaXJlY3Rp
dmVMaXN0OwotCiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIGVtaXRE
aXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsKIAogICAg
IGJvb2wgbV9pc0VuYWJsZWQ7Ci0gICAgRGlyZWN0aXZlTGlzdCBtX2RpcmVjdGl2ZXM7CisgICAg
T3duUHRyPENTUERpcmVjdGl2ZT4gbV9zY3JpcHRTcmM7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82395</attachid>
            <date>2011-02-14 17:40:33 -0800</date>
            <delta_ts>2011-02-14 18:19:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54381-20110214174032.patch</filename>
            <type>text/plain</type>
            <size>11123</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWI0NGE2ODAwMWE4NmZhMmQ0YzVj
NjJjMmM1ODJmZjRmN2EyOThmLi5jYTVhY2NlYTg2ZjA3MTdiYmJiNzE1OGFhNGM5YTQyMjZmZTcy
MjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTa2V0Y2ggc2NyaXB0LXNyYyBmb3IgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzgxCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQt
bG9hZHMtd2l0aC1pbWctc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1n
LXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgIC0gVGVzdCB0aGF0IHdlIGRvbid0IGJsb2Nr
IHNjcmlwdHMgd2hlbiB0aGUgcG9saWN5IGlzIGp1c3QgaW1nLXNyYy4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbDoKKyAgICAgICAg
ICAgIC0gVHVybnMgb3V0IHdlIG5lZWQgdG8gZXNjYXBlIHRoZSA7IGNoYXJhY3RlciBpbiBvcmRl
ciBmb3IgaXQgdG8gYmUKKyAgICAgICAgICAgICAgZWNob2VkIGJhY2sgY29ycmVjdGx5IGluIHRo
ZSBoZWFkZXIuCisKIDIwMTEtMDItMTMgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgY2hyb21pdW0ncyB0ZXN0IGV4cGVjdGF0aW9ucyBm
b3IgZmFzdC9pbmxpbmUvaW5saW5lLWJveC1iYWNrZ3JvdW5kLSoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjMjJiODU3YjkxODA1ODVkOTI4MzVkYzA3YjQwNWU3
MTgxZjE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2EzOTYwZDlkOWE4N2M3MDBiNmJlNzBjMmVmMTM4MDBhZDEzMjcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy5odG1sCkBAIC0wLDAgKzEsMTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3Jp
cHQtc3JjLnBsP3Nob3VsZF9ydW49eWVzJnE9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LmpzJmNzcD1zY3JpcHQtaW1n
JTIwJ25vbmUnIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1z
cmMtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFtZS5odG1sCmluZGV4IDM4ZTEyMzZi
OGFlMDVjMDcyYjNjY2VjZTRhMzc0ZThmNTU0ZDY1NzEuLmNlZGE2NDI3MTc4NjM4YzQ3NDdiMTU4
MjVhMGRiZDQ3NWVjOGIyOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtaW4taWZyYW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1pbi1pZnJhbWUuaHRtbApAQCAtMTIsNiArMTIsNiBAQCBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgIDxwPgogICAgIExvYWRzIGFuIGlmcmFtZSAoYSkgd2hp
Y2ggbG9hZHMgYW4gaWZyYW1lIChiKSB3aGljaCBpbiB0dXJucyB0cmllcyB0byBsb2FkIGFuIGV4
dGVybmFsIHNjcmlwdC4gVGhlIGlmcmFtZSAoYSkgaGFzIGEgY29udGVudCBzZWN1cml0eSBwb2xp
Y3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMuIEFzIHRoaXMgcG9saWN5IGRvZXMgbm90IGFw
cGx5IHRvIChiKSwgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXhlY3V0ZWQuCiAgIDwvcD4KLSAgPGlm
cmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL2VjaG8taWZyYW1lLnBsP3E9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LXNyYy5odG1sJmNz
cD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CisgIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLWlmcmFtZS5wbD9xPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC1zcmMuaHRtbCZjc3A9YWxs
b3clMjAqJTNCJTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCmlu
ZGV4IDJjMjAwYzliYjI5YjNmOGJjYjBjZjAxNmE3MGI2MDgzMTlkYWZmYTMuLjE2MGQzYzkxZTA2
Y2UyNDVlMTFmMDIwYjdiMjFmNjU3MjM2MDU1YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCkBAIC0xMiw2ICsxMiw2IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgPHA+CiAgICAgTG9hZHMgYW4gaWZyYW1lIHdoaWNo
IGluIHR1cm5zIHRyaWVzIHRvIGxvYWQgYW4gZXh0ZXJuYWwgc2NyaXB0LiBUaGUgaWZyYW1lIGhh
cyBhIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IGRpc2FibGluZyBleHRlcm5hbCBzY3JpcHRzLiBT
byB0aGUgc2NyaXB0IHNob3VsZCBub3QgZ2V0IGV4ZWN1dGVkLgogICA8L3A+Ci0gIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj1ubyZxPWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3Njcmlw
dC5qcyZjc3A9YWxsb3clMjAqOyUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZyYW1lPgorICA8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49bm8mcT1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9zY3JpcHQuanMmY3NwPWFsbG93JTIwKiUzQiUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZy
YW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LXNyYy1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1yZWRpcmVjdC5odG1sCmluZGV4IGI0ZTQyNGZkNjAyYjliODA3NmJkNzFmOTZj
M2E0MzVkYzk1MGVmMzEuLmQwYzMxYTVhMjI0ZWU0YmE5OWQwNjdiNGIzMDMyNDBkOWM1MTA0ZDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLXJlZGlyZWN0
Lmh0bWwKQEAgLTEyLDYgKzEyLDYgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICA8cD4KICAgICBMb2FkcyBhbiBpZnJhbWUgd2hpY2ggaW4gdHVybnMgdHJpZXMgdG8gbG9h
ZCBhbiBleHRlcm5hbCBzY3JpcHQuIFRoZSByZXF1ZXN0IGZvciB0aGUgc2NyaXB0IGlzIHJlZGly
ZWN0ZWQgdG8gJ2xvY2FsaG9zdCcuIFRoZSBpZnJhbWUgaGFzIGEgY29udGVudCBzZWN1cml0eSBw
b2xpY3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMgZnJvbSBob3N0cyBvdGhlciB0aGFuICds
b2NhbGhvc3QnLiBTbyB0aGUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkIHRvIHJ1bi4KICAgPC9w
PgotICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49eWVz
JmNzcD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdsb2NhbGhvc3QnJnE9aHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvcmVkaXIu
cGhwJTNmdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcyI+PC9pZnJhbWU+CisgIDxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj15ZXMmY3NwPWFsbG93JTIwKiUzQiUyMHNj
cmlwdC1zcmMlMjAnbG9jYWxob3N0JyZxPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3JlZGlyLnBocCUzZnVybD1odHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3Jp
cHQuanMiPjwvaWZyYW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFjMzc5NGQy
MjQ4ZWM0YTc5N2Y3ZTQ5NTZkY2U3NWJhNzA2NzAxODIuLmUwMjA1NDU4ZDQ2YjUwZjhlZTBjZWY1
ZTg4Y2ViMDMwNzdmNWVhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMS0wMi0x
NCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNrZXRjaCBzY3JpcHQtc3JjIGZvciBDb250ZW50
IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQzODEKKworICAgICAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIGEgc2tldGNoIG9m
IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gIFdlIHN0aWxsIGRvCisgICAgICAgIG5vdCBwYXJz
ZSB0aGUgdmFsdWUgb2YgdGhlIGRpcmVjdGl2ZSwgYW5kIHRoZSB3aXJpbmcgaW50byB0aGUgcmVz
dCBvZgorICAgICAgICBXZWJDb3JlIGlzIGluY29ycmVjdCwgYnV0IHRob3NlIGFyZSB0aGluZ3Mg
d2UgY2FuIGZpeCBpbiBmdXR1cmUKKyAgICAgICAgcGF0Y2hlcy4gIEZvciB0aGUgbW9tZW1udCwg
dGhpcyBwYXRjaCBsZXRzIHVzIHRlc3Qgd2hhdCB3ZSdyZSBkb2luZy4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtbG9hZHMt
d2l0aC1pbWctc3JjLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6Q1NQRGlyZWN0aXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6YWxsb3dzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVtaXREaXJlY3RpdmUpOgorICAg
ICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisKKzIwMTEtMDItMTQgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KIAogICAgICAgICBBZGQgYmFzaWMgcGFyc2VyIGZvciBDb250ZW50IFNlY3VyaXR5IFBv
bGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmlu
ZGV4IDg4MTEwZTYyMGY2NjkxOTc5ZjU2MDc3ZWE4OTI4YzAwODE3YmJhYWEuLjZhMWRjN2ZhMGMw
MDg1NTIzN2ExMDBhM2VlYjE1MzdkYmFiMmEzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTMxLDE3ICszMSwxNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENTUERpcmVjdGl2ZSB7CiBwdWJsaWM6Ci0gICAgQ1NQRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICAgICAgOiBt
X25hbWUobmFtZSkKLSAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgIGV4cGxpY2l0IENTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAg
ICAgewogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQotICAgIGNvbnN0IFN0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
OyB9CisgICAgYm9vbCBhbGxvd3MoY29uc3QgS1VSTCYpCisgICAgeworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQogCiBwcml2YXRlOgotICAgIFN0cmluZyBtX25hbWU7CiAgICAgU3RyaW5n
IG1fdmFsdWU7CiB9OwogCkBAIC01NiwyMSArNTYsMjEgQEAgQ29udGVudFNlY3VyaXR5UG9saWN5
Ojp+Q29udGVudFNlY3VyaXR5UG9saWN5KCkKIAogdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6
OmRpZFJlY2VpdmVIZWFkZXIoY29uc3QgU3RyaW5nJiBoZWFkZXIpCiB7Ci0gICAgaWYgKCFtX2Rp
cmVjdGl2ZXMuaXNFbXB0eSgpKQorICAgIGlmIChtX2lzRW5hYmxlZCkKICAgICAgICAgcmV0dXJu
OyAvLyBUaGUgZmlyc3QgcG9saWN5IHdpbnMuCiAKLSAgICBtX2lzRW5hYmxlZCA9IHRydWU7CiAg
ICAgcGFyc2UoaGVhZGVyKTsKKyAgICBtX2lzRW5hYmxlZCA9IHRydWU7CiB9CiAKLWJvb2wgQ29u
dGVudFNlY3VyaXR5UG9saWN5OjpjYW5Mb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjKGNvbnN0IFN0
cmluZyYpIGNvbnN0Citib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y2FuTG9hZEV4dGVybmFs
U2NyaXB0RnJvbVNyYyhjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1f
aXNFbmFibGVkOworICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgbV9zY3JpcHRTcmMtPmFsbG93
cyhLVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSk7CiB9CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKIHsKLSAgICBBU1NFUlQobV9kaXJl
Y3RpdmVzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX2lzRW5hYmxlZCk7CiAKICAgICBpZiAo
cG9saWN5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTE2LDE0ICsxMTYsMjkgQEAg
dm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnBhcnNlKGNvbnN0IFN0cmluZyYgcG9saWN5KQog
ICAgICAgICAgICAgLy8gV2UgdXNlIGEgY29weSBoZXJlIGluc3RlYWQgb2YgU3RyaW5nOjphZG9w
dCBiZWNhdXNlIHdlIGV4cGVjdAogICAgICAgICAgICAgLy8gdGhlIG5hbWUgYW5kIHRoZSB2YWx1
ZSB0byBiZSByZWxhdGl2ZWx5IHNob3J0LCBzbyB0aGUgY29weSB3aWxsCiAgICAgICAgICAgICAv
LyBiZSBjaGVhcGVyIHRoYW4gdGhlIGV4dHJhIG1hbGxvYy4KLSAgICAgICAgICAgIC8vIEZJWE1F
OiBQZXJmb3JtIGRpcmVjdGl2ZS1zcGVjaWZpYyBwYXJzaW5nIG9mIHRoZSB2YWx1ZS4KLSAgICAg
ICAgICAgIG1fZGlyZWN0aXZlcy5hcHBlbmQoQ1NQRGlyZWN0aXZlKFN0cmluZyhuYW1lKSwgU3Ry
aW5nKHZhbHVlKSkpOworICAgICAgICAgICAgZW1pdERpcmVjdGl2ZShTdHJpbmcobmFtZSksIFN0
cmluZyh2YWx1ZSkpOwogICAgICAgICAgICAgbmFtZS5jbGVhcigpOwogICAgICAgICAgICAgdmFs
dWUuY2xlYXIoKTsKICAgICAgICAgICAgIHN0YXRlID0gQmVmb3JlRGlyZWN0aXZlTmFtZTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgfQorCisgICAgaWYgKCFuYW1lLmlz
RW1wdHkoKSkgeworICAgICAgICBlbWl0RGlyZWN0aXZlKFN0cmluZyhuYW1lKSwgU3RyaW5nKHZh
bHVlKSk7CisgICAgICAgIG5hbWUuY2xlYXIoKTsKKyAgICAgICAgdmFsdWUuY2xlYXIoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjplbWl0RGlyZWN0aXZlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBERUZJTkVfU1RBVElD
X0xPQ0FMKFN0cmluZywgc2NyaXB0U3JjLCAoInNjcmlwdC1zcmMiKSk7CisKKyAgICBBU1NFUlQo
IW5hbWUuaXNFbXB0eSgpKTsKKworICAgIGlmICghbV9zY3JpcHRTcmMgJiYgZXF1YWxJZ25vcmlu
Z0Nhc2UobmFtZSwgc2NyaXB0U3JjKSkKKyAgICAgICAgbV9zY3JpcHRTcmMgPSBhZG9wdFB0cihu
ZXcgQ1NQRGlyZWN0aXZlKHZhbHVlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IDg0MzUxNjZlNjIzZjYwOWE3OWQ0MThiNDEzYTk1
M2I2Nzk0YmNiZGUuLjQ0MjM1N2FhZmIzMzFhN2JhZGM2MmQ1MDIwMWY2Njg0OGU0NDdiOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtNDMsMTIg
KzQzLDExIEBAIHB1YmxpYzoKICAgICBib29sIGNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMo
Y29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIHR5cGVkZWYgVmVjdG9y
PENTUERpcmVjdGl2ZT4gRGlyZWN0aXZlTGlzdDsKLQogICAgIHZvaWQgcGFyc2UoY29uc3QgU3Ry
aW5nJik7CisgICAgdm9pZCBlbWl0RGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3Qg
U3RyaW5nJiB2YWx1ZSk7CiAKICAgICBib29sIG1faXNFbmFibGVkOwotICAgIERpcmVjdGl2ZUxp
c3QgbV9kaXJlY3RpdmVzOworICAgIE93blB0cjxDU1BEaXJlY3RpdmU+IG1fc2NyaXB0U3JjOwog
fTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82402</attachid>
            <date>2011-02-14 18:19:29 -0800</date>
            <delta_ts>2011-02-14 18:50:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54381-20110214181927.patch</filename>
            <type>text/plain</type>
            <size>12372</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWI0NGE2ODAwMWE4NmZhMmQ0YzVj
NjJjMmM1ODJmZjRmN2EyOThmLi5jYTVhY2NlYTg2ZjA3MTdiYmJiNzE1OGFhNGM5YTQyMjZmZTcy
MjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTa2V0Y2ggc2NyaXB0LXNyYyBmb3IgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzgxCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQt
bG9hZHMtd2l0aC1pbWctc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1n
LXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgIC0gVGVzdCB0aGF0IHdlIGRvbid0IGJsb2Nr
IHNjcmlwdHMgd2hlbiB0aGUgcG9saWN5IGlzIGp1c3QgaW1nLXNyYy4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbDoKKyAgICAgICAg
ICAgIC0gVHVybnMgb3V0IHdlIG5lZWQgdG8gZXNjYXBlIHRoZSA7IGNoYXJhY3RlciBpbiBvcmRl
ciBmb3IgaXQgdG8gYmUKKyAgICAgICAgICAgICAgZWNob2VkIGJhY2sgY29ycmVjdGx5IGluIHRo
ZSBoZWFkZXIuCisKIDIwMTEtMDItMTMgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgY2hyb21pdW0ncyB0ZXN0IGV4cGVjdGF0aW9ucyBm
b3IgZmFzdC9pbmxpbmUvaW5saW5lLWJveC1iYWNrZ3JvdW5kLSoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjMjJiODU3YjkxODA1ODVkOTI4MzVkYzA3YjQwNWU3
MTgxZjE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2EzOTYwZDlkOWE4N2M3MDBiNmJlNzBjMmVmMTM4MDBhZDEzMjcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy5odG1sCkBAIC0wLDAgKzEsMTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3Jp
cHQtc3JjLnBsP3Nob3VsZF9ydW49eWVzJnE9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LmpzJmNzcD1zY3JpcHQtaW1n
JTIwJ25vbmUnIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1z
cmMtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFtZS5odG1sCmluZGV4IDM4ZTEyMzZi
OGFlMDVjMDcyYjNjY2VjZTRhMzc0ZThmNTU0ZDY1NzEuLmNlZGE2NDI3MTc4NjM4YzQ3NDdiMTU4
MjVhMGRiZDQ3NWVjOGIyOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtaW4taWZyYW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1pbi1pZnJhbWUuaHRtbApAQCAtMTIsNiArMTIsNiBAQCBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgIDxwPgogICAgIExvYWRzIGFuIGlmcmFtZSAoYSkgd2hp
Y2ggbG9hZHMgYW4gaWZyYW1lIChiKSB3aGljaCBpbiB0dXJucyB0cmllcyB0byBsb2FkIGFuIGV4
dGVybmFsIHNjcmlwdC4gVGhlIGlmcmFtZSAoYSkgaGFzIGEgY29udGVudCBzZWN1cml0eSBwb2xp
Y3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMuIEFzIHRoaXMgcG9saWN5IGRvZXMgbm90IGFw
cGx5IHRvIChiKSwgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXhlY3V0ZWQuCiAgIDwvcD4KLSAgPGlm
cmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL2VjaG8taWZyYW1lLnBsP3E9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LXNyYy5odG1sJmNz
cD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CisgIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLWlmcmFtZS5wbD9xPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC1zcmMuaHRtbCZjc3A9YWxs
b3clMjAqJTNCJTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCmlu
ZGV4IDJjMjAwYzliYjI5YjNmOGJjYjBjZjAxNmE3MGI2MDgzMTlkYWZmYTMuLjE2MGQzYzkxZTA2
Y2UyNDVlMTFmMDIwYjdiMjFmNjU3MjM2MDU1YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCkBAIC0xMiw2ICsxMiw2IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgPHA+CiAgICAgTG9hZHMgYW4gaWZyYW1lIHdoaWNo
IGluIHR1cm5zIHRyaWVzIHRvIGxvYWQgYW4gZXh0ZXJuYWwgc2NyaXB0LiBUaGUgaWZyYW1lIGhh
cyBhIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IGRpc2FibGluZyBleHRlcm5hbCBzY3JpcHRzLiBT
byB0aGUgc2NyaXB0IHNob3VsZCBub3QgZ2V0IGV4ZWN1dGVkLgogICA8L3A+Ci0gIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj1ubyZxPWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3Njcmlw
dC5qcyZjc3A9YWxsb3clMjAqOyUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZyYW1lPgorICA8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49bm8mcT1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9zY3JpcHQuanMmY3NwPWFsbG93JTIwKiUzQiUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZy
YW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LXNyYy1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1yZWRpcmVjdC5odG1sCmluZGV4IGI0ZTQyNGZkNjAyYjliODA3NmJkNzFmOTZj
M2E0MzVkYzk1MGVmMzEuLmQwYzMxYTVhMjI0ZWU0YmE5OWQwNjdiNGIzMDMyNDBkOWM1MTA0ZDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLXJlZGlyZWN0
Lmh0bWwKQEAgLTEyLDYgKzEyLDYgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICA8cD4KICAgICBMb2FkcyBhbiBpZnJhbWUgd2hpY2ggaW4gdHVybnMgdHJpZXMgdG8gbG9h
ZCBhbiBleHRlcm5hbCBzY3JpcHQuIFRoZSByZXF1ZXN0IGZvciB0aGUgc2NyaXB0IGlzIHJlZGly
ZWN0ZWQgdG8gJ2xvY2FsaG9zdCcuIFRoZSBpZnJhbWUgaGFzIGEgY29udGVudCBzZWN1cml0eSBw
b2xpY3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMgZnJvbSBob3N0cyBvdGhlciB0aGFuICds
b2NhbGhvc3QnLiBTbyB0aGUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkIHRvIHJ1bi4KICAgPC9w
PgotICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49eWVz
JmNzcD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdsb2NhbGhvc3QnJnE9aHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvcmVkaXIu
cGhwJTNmdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcyI+PC9pZnJhbWU+CisgIDxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj15ZXMmY3NwPWFsbG93JTIwKiUzQiUyMHNj
cmlwdC1zcmMlMjAnbG9jYWxob3N0JyZxPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3JlZGlyLnBocCUzZnVybD1odHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3Jp
cHQuanMiPjwvaWZyYW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFjMzc5NGQy
MjQ4ZWM0YTc5N2Y3ZTQ5NTZkY2U3NWJhNzA2NzAxODIuLmUwMjA1NDU4ZDQ2YjUwZjhlZTBjZWY1
ZTg4Y2ViMDMwNzdmNWVhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMS0wMi0x
NCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNrZXRjaCBzY3JpcHQtc3JjIGZvciBDb250ZW50
IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQzODEKKworICAgICAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIGEgc2tldGNoIG9m
IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gIFdlIHN0aWxsIGRvCisgICAgICAgIG5vdCBwYXJz
ZSB0aGUgdmFsdWUgb2YgdGhlIGRpcmVjdGl2ZSwgYW5kIHRoZSB3aXJpbmcgaW50byB0aGUgcmVz
dCBvZgorICAgICAgICBXZWJDb3JlIGlzIGluY29ycmVjdCwgYnV0IHRob3NlIGFyZSB0aGluZ3Mg
d2UgY2FuIGZpeCBpbiBmdXR1cmUKKyAgICAgICAgcGF0Y2hlcy4gIEZvciB0aGUgbW9tZW1udCwg
dGhpcyBwYXRjaCBsZXRzIHVzIHRlc3Qgd2hhdCB3ZSdyZSBkb2luZy4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtbG9hZHMt
d2l0aC1pbWctc3JjLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6Q1NQRGlyZWN0aXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6YWxsb3dzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVtaXREaXJlY3RpdmUpOgorICAg
ICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisKKzIwMTEtMDItMTQgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KIAogICAgICAgICBBZGQgYmFzaWMgcGFyc2VyIGZvciBDb250ZW50IFNlY3VyaXR5IFBv
bGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmlu
ZGV4IDg4MTEwZTYyMGY2NjkxOTc5ZjU2MDc3ZWE4OTI4YzAwODE3YmJhYWEuLmVlOTNkYzllMTFk
OGVlNjA0YjgzYjUyMTgyYmIyMWE3MTlkZjQxMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTMxLDIyICszMSwyMiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENTUERpcmVjdGl2ZSB7CiBwdWJsaWM6Ci0gICAgQ1NQRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICAgICAgOiBt
X25hbWUobmFtZSkKLSAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgIGV4cGxpY2l0IENTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAg
ICAgewogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQotICAgIGNvbnN0IFN0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
OyB9CisgICAgYm9vbCBhbGxvd3MoY29uc3QgS1VSTCYpCisgICAgeworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQogCiBwcml2YXRlOgotICAgIFN0cmluZyBtX25hbWU7CiAgICAgU3RyaW5n
IG1fdmFsdWU7CiB9OwogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBv
bGljeSgpCi0gICAgOiBtX2lzRW5hYmxlZChmYWxzZSkKKyAgICA6IG1faGF2ZVBvbGljeShmYWxz
ZSkKIHsKIH0KIApAQCAtNTYsMjUgKzU2LDQwIEBAIENvbnRlbnRTZWN1cml0eVBvbGljeTo6fkNv
bnRlbnRTZWN1cml0eVBvbGljeSgpCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRS
ZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyKQogewotICAgIGlmICghbV9kaXJlY3Rp
dmVzLmlzRW1wdHkoKSkKKyAgICBpZiAobV9oYXZlUG9saWN5KQogICAgICAgICByZXR1cm47IC8v
IFRoZSBmaXJzdCBwb2xpY3kgd2lucy4KIAotICAgIG1faXNFbmFibGVkID0gdHJ1ZTsKICAgICBw
YXJzZShoZWFkZXIpOworICAgIG1faGF2ZVBvbGljeSA9IHRydWU7CiB9CiAKLWJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpjYW5Mb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0Citib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y2FuTG9hZEV4dGVybmFsU2Ny
aXB0RnJvbVNyYyhjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1faXNF
bmFibGVkOworICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgbV9zY3JpcHRTcmMtPmFsbG93cyhL
VVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSk7CiB9CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKIHsKLSAgICBBU1NFUlQobV9kaXJlY3Rp
dmVzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX2hhdmVQb2xpY3kpOwogCiAgICAgaWYgKHBv
bGljeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorCisgICAgY29uc3QgVUNoYXIqIHBv
cyA9IHBvbGljeS5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9IHBvcyArIHBv
bGljeS5sZW5ndGgoKTsKKworICAgIHdoaWxlIChwb3MgPCBlbmQpCisgICAgICAgIHBvcyA9IHBh
cnNlRGlyZWN0aXZlKHBvcywgZW5kKTsKK30KKworY29uc3QgVUNoYXIqIENvbnRlbnRTZWN1cml0
eVBvbGljeTo6cGFyc2VEaXJlY3RpdmUoY29uc3QgVUNoYXIqIHN0YXJ0LCBjb25zdCBVQ2hhciog
ZW5kKQoreworICAgIEFTU0VSVChzdGFydCA8IGVuZCk7CisKKyAgICBWZWN0b3I8VUNoYXIsIDMy
PiBuYW1lOworICAgIFZlY3RvcjxVQ2hhciwgNjQ+IHZhbHVlOworCiAgICAgZW51bSB7CiAgICAg
ICAgIEJlZm9yZURpcmVjdGl2ZU5hbWUsCiAgICAgICAgIERpcmVjdGl2ZU5hbWUsCkBAIC04Miwx
MSArOTcsNyBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2UoY29uc3QgU3RyaW5n
JiBwb2xpY3kpCiAgICAgICAgIERpcmVjdGl2ZVZhbHVlLAogICAgIH0gc3RhdGUgPSBCZWZvcmVE
aXJlY3RpdmVOYW1lOwogCi0gICAgY29uc3QgVUNoYXIqIHBvcyA9IHBvbGljeS5jaGFyYWN0ZXJz
KCk7Ci0gICAgY29uc3QgVUNoYXIqIGVuZCA9IHBvcyArIHBvbGljeS5sZW5ndGgoKTsKLQotICAg
IFZlY3RvcjxVQ2hhciwgMzI+IG5hbWU7Ci0gICAgVmVjdG9yPFVDaGFyLCA2ND4gdmFsdWU7Cisg
ICAgY29uc3QgVUNoYXIqIHBvcyA9IHN0YXJ0OwogCiAgICAgd2hpbGUgKHBvcyA8IGVuZCkgewog
ICAgICAgICBVQ2hhciBjdXJyZW50Q2hhcmFjdGVyID0gKnBvcysrOwpAQCAtMTEzLDE3ICsxMjQs
MzAgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnBhcnNlKGNvbnN0IFN0cmluZyYgcG9s
aWN5KQogICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZChjdXJyZW50Q2hhcmFjdGVyKTsKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIC8vIFdl
IHVzZSBhIGNvcHkgaGVyZSBpbnN0ZWFkIG9mIFN0cmluZzo6YWRvcHQgYmVjYXVzZSB3ZSBleHBl
Y3QKLSAgICAgICAgICAgIC8vIHRoZSBuYW1lIGFuZCB0aGUgdmFsdWUgdG8gYmUgcmVsYXRpdmVs
eSBzaG9ydCwgc28gdGhlIGNvcHkgd2lsbAotICAgICAgICAgICAgLy8gYmUgY2hlYXBlciB0aGFu
IHRoZSBleHRyYSBtYWxsb2MuCi0gICAgICAgICAgICAvLyBGSVhNRTogUGVyZm9ybSBkaXJlY3Rp
dmUtc3BlY2lmaWMgcGFyc2luZyBvZiB0aGUgdmFsdWUuCi0gICAgICAgICAgICBtX2RpcmVjdGl2
ZXMuYXBwZW5kKENTUERpcmVjdGl2ZShTdHJpbmcobmFtZSksIFN0cmluZyh2YWx1ZSkpKTsKLSAg
ICAgICAgICAgIG5hbWUuY2xlYXIoKTsKLSAgICAgICAgICAgIHZhbHVlLmNsZWFyKCk7Ci0gICAg
ICAgICAgICBzdGF0ZSA9IEJlZm9yZURpcmVjdGl2ZU5hbWU7Ci0gICAgICAgICAgICBjb250aW51
ZTsKKyAgICAgICAgICAgIGdvdG8gZW1pdDsKICAgICAgICAgfQogICAgIH0KKworZW1pdDoKKyAg
ICBpZiAoIW5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIC8vIFdlIHVzZSBhIGNvcHkgaGVyZSBp
bnN0ZWFkIG9mIFN0cmluZzo6YWRvcHQgYmVjYXVzZSB3ZSBleHBlY3QKKyAgICAgICAgLy8gdGhl
IG5hbWUgYW5kIHRoZSB2YWx1ZSB0byBiZSByZWxhdGl2ZWx5IHNob3J0LCBzbyB0aGUgY29weSB3
aWxsCisgICAgICAgIC8vIGJlIGNoZWFwZXIgdGhhbiB0aGUgZXh0cmEgbWFsbG9jLgorICAgICAg
ICBlbWl0RGlyZWN0aXZlKFN0cmluZyhuYW1lKSwgU3RyaW5nKHZhbHVlKSk7CisgICAgfQorCisg
ICAgcmV0dXJuIHBvczsKK30KKworCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZW1pdERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpCit7CisgICAg
REVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIHNjcmlwdFNyYywgKCJzY3JpcHQtc3JjIikpOwor
CisgICAgQVNTRVJUKCFuYW1lLmlzRW1wdHkoKSk7CisKKyAgICBpZiAoIW1fc2NyaXB0U3JjICYm
IGVxdWFsSWdub3JpbmdDYXNlKG5hbWUsIHNjcmlwdFNyYykpCisgICAgICAgIG1fc2NyaXB0U3Jj
ID0gYWRvcHRQdHIobmV3IENTUERpcmVjdGl2ZSh2YWx1ZSkpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAppbmRleCA4NDM1MTY2ZTYyM2Y2MDlh
NzlkNDE4YjQxM2E5NTNiNjc5NGJjYmRlLi4zMGMxMTlkMDQwM2ZkYTMwYWE5NWNjYjhlZGMyNzVl
OGMzZWYzNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0
eVBvbGljeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmgKQEAgLTQzLDEyICs0MywxMiBAQCBwdWJsaWM6CiAgICAgYm9vbCBjYW5Mb2FkRXh0ZXJuYWxT
Y3JpcHRGcm9tU3JjKGNvbnN0IFN0cmluZyYgdXJsKSBjb25zdDsKIAogcHJpdmF0ZToKLSAgICB0
eXBlZGVmIFZlY3RvcjxDU1BEaXJlY3RpdmU+IERpcmVjdGl2ZUxpc3Q7Ci0KICAgICB2b2lkIHBh
cnNlKGNvbnN0IFN0cmluZyYpOworICAgIGNvbnN0IFVDaGFyKiBwYXJzZURpcmVjdGl2ZShjb25z
dCBVQ2hhciogc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQpOworICAgIHZvaWQgZW1pdERpcmVjdGl2
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgdmFsdWUpOwogCi0gICAgYm9vbCBt
X2lzRW5hYmxlZDsKLSAgICBEaXJlY3RpdmVMaXN0IG1fZGlyZWN0aXZlczsKKyAgICBib29sIG1f
aGF2ZVBvbGljeTsKKyAgICBPd25QdHI8Q1NQRGlyZWN0aXZlPiBtX3NjcmlwdFNyYzsKIH07CiAK
IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82403</attachid>
            <date>2011-02-14 18:50:43 -0800</date>
            <delta_ts>2011-02-15 08:47:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54381-20110214185041.patch</filename>
            <type>text/plain</type>
            <size>12517</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzg0MzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NWI0NGE2ODAwMWE4NmZhMmQ0YzVj
NjJjMmM1ODJmZjRmN2EyOThmLi5jYTVhY2NlYTg2ZjA3MTdiYmJiNzE1OGFhNGM5YTQyMjZmZTcy
MjIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTQgIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTa2V0Y2ggc2NyaXB0LXNyYyBmb3IgQ29udGVudCBTZWN1cml0eSBQb2xpY3kKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0MzgxCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQt
bG9hZHMtd2l0aC1pbWctc3JjLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1n
LXNyYy5odG1sOiBBZGRlZC4KKyAgICAgICAgICAgIC0gVGVzdCB0aGF0IHdlIGRvbid0IGJsb2Nr
IHNjcmlwdHMgd2hlbiB0aGUgcG9saWN5IGlzIGp1c3QgaW1nLXNyYy4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFt
ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbDoKKyAgICAgICAg
ICAgIC0gVHVybnMgb3V0IHdlIG5lZWQgdG8gZXNjYXBlIHRoZSA7IGNoYXJhY3RlciBpbiBvcmRl
ciBmb3IgaXQgdG8gYmUKKyAgICAgICAgICAgICAgZWNob2VkIGJhY2sgY29ycmVjdGx5IGluIHRo
ZSBoZWFkZXIuCisKIDIwMTEtMDItMTMgIFNoaW5pY2hpcm8gSGFtYWppICA8aGFtYWppQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVcGRhdGUgY2hyb21pdW0ncyB0ZXN0IGV4cGVjdGF0aW9ucyBm
b3IgZmFzdC9pbmxpbmUvaW5saW5lLWJveC1iYWNrZ3JvdW5kLSoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjMjJiODU3YjkxODA1ODVkOTI4MzVkYzA3YjQwNWU3
MTgxZjE2MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBh
dGggLy88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1s
b2Fkcy13aXRoLWltZy1zcmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1sb2Fkcy13aXRoLWltZy1zcmMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45Y2EzOTYwZDlkOWE4N2M3MDBiNmJlNzBjMmVmMTM4MDBhZDEzMjcyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvc2NyaXB0LWxvYWRzLXdpdGgtaW1nLXNyYy5odG1sCkBAIC0wLDAgKzEsMTQgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3Jp
cHQtc3JjLnBsP3Nob3VsZF9ydW49eWVzJnE9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LmpzJmNzcD1zY3JpcHQtaW1n
JTIwJ25vbmUnIj48L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1z
cmMtaW4taWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLWluLWlmcmFtZS5odG1sCmluZGV4IDM4ZTEyMzZi
OGFlMDVjMDcyYjNjY2VjZTRhMzc0ZThmNTU0ZDY1NzEuLmNlZGE2NDI3MTc4NjM4YzQ3NDdiMTU4
MjVhMGRiZDQ3NWVjOGIyOGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtaW4taWZyYW1lLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1pbi1pZnJhbWUuaHRtbApAQCAtMTIsNiArMTIsNiBAQCBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7CiAgIDxwPgogICAgIExvYWRzIGFuIGlmcmFtZSAoYSkgd2hp
Y2ggbG9hZHMgYW4gaWZyYW1lIChiKSB3aGljaCBpbiB0dXJucyB0cmllcyB0byBsb2FkIGFuIGV4
dGVybmFsIHNjcmlwdC4gVGhlIGlmcmFtZSAoYSkgaGFzIGEgY29udGVudCBzZWN1cml0eSBwb2xp
Y3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMuIEFzIHRoaXMgcG9saWN5IGRvZXMgbm90IGFw
cGx5IHRvIChiKSwgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXhlY3V0ZWQuCiAgIDwvcD4KLSAgPGlm
cmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL2VjaG8taWZyYW1lLnBsP3E9aHR0cDovLzEyNy4wLjAuMTo4MDAwL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2NyaXB0LXNyYy5odG1sJmNz
cD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CisgIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLWlmcmFtZS5wbD9xPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NjcmlwdC1zcmMuaHRtbCZjc3A9YWxs
b3clMjAqJTNCJTIwc2NyaXB0LXNyYyUyMCdub25lJyI+PC9pZnJhbWU+CiA8L2JvZHk+CiA8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLW5vbmUuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCmlu
ZGV4IDJjMjAwYzliYjI5YjNmOGJjYjBjZjAxNmE3MGI2MDgzMTlkYWZmYTMuLjE2MGQzYzkxZTA2
Y2UyNDVlMTFmMDIwYjdiMjFmNjU3MjM2MDU1YTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3NjcmlwdC1zcmMtbm9uZS5odG1sCkBAIC0xMiw2ICsxMiw2IEBAIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgPHA+CiAgICAgTG9hZHMgYW4gaWZyYW1lIHdoaWNo
IGluIHR1cm5zIHRyaWVzIHRvIGxvYWQgYW4gZXh0ZXJuYWwgc2NyaXB0LiBUaGUgaWZyYW1lIGhh
cyBhIGNvbnRlbnQgc2VjdXJpdHkgcG9saWN5IGRpc2FibGluZyBleHRlcm5hbCBzY3JpcHRzLiBT
byB0aGUgc2NyaXB0IHNob3VsZCBub3QgZ2V0IGV4ZWN1dGVkLgogICA8L3A+Ci0gIDxpZnJhbWUg
c3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3Jlc291cmNlcy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj1ubyZxPWh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3Njcmlw
dC5qcyZjc3A9YWxsb3clMjAqOyUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZyYW1lPgorICA8
aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49bm8mcT1odHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9zY3JpcHQuanMmY3NwPWFsbG93JTIwKiUzQiUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwvaWZy
YW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2NyaXB0LXNyYy1yZWRpcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2NyaXB0LXNyYy1yZWRpcmVjdC5odG1sCmluZGV4IGI0ZTQyNGZkNjAyYjliODA3NmJkNzFmOTZj
M2E0MzVkYzk1MGVmMzEuLmQwYzMxYTVhMjI0ZWU0YmE5OWQwNjdiNGIzMDMyNDBkOWM1MTA0ZDQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3NjcmlwdC1zcmMtcmVkaXJlY3QuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtc3JjLXJlZGlyZWN0
Lmh0bWwKQEAgLTEyLDYgKzEyLDYgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICA8cD4KICAgICBMb2FkcyBhbiBpZnJhbWUgd2hpY2ggaW4gdHVybnMgdHJpZXMgdG8gbG9h
ZCBhbiBleHRlcm5hbCBzY3JpcHQuIFRoZSByZXF1ZXN0IGZvciB0aGUgc2NyaXB0IGlzIHJlZGly
ZWN0ZWQgdG8gJ2xvY2FsaG9zdCcuIFRoZSBpZnJhbWUgaGFzIGEgY29udGVudCBzZWN1cml0eSBw
b2xpY3kgZGlzYWJsaW5nIGV4dGVybmFsIHNjcmlwdHMgZnJvbSBob3N0cyBvdGhlciB0aGFuICds
b2NhbGhvc3QnLiBTbyB0aGUgc2NyaXB0IHNob3VsZCBiZSBhbGxvd2VkIHRvIHJ1bi4KICAgPC9w
PgotICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvZWNoby1zY3JpcHQtc3JjLnBsP3Nob3VsZF9ydW49eWVz
JmNzcD1hbGxvdyUyMCo7JTIwc2NyaXB0LXNyYyUyMCdsb2NhbGhvc3QnJnE9aHR0cDovLzEyNy4w
LjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvcmVkaXIu
cGhwJTNmdXJsPWh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvcmVzb3VyY2VzL3NjcmlwdC5qcyI+PC9pZnJhbWU+CisgIDxpZnJhbWUgc3JjPSJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9lY2hvLXNjcmlwdC1zcmMucGw/c2hvdWxkX3J1bj15ZXMmY3NwPWFsbG93JTIwKiUzQiUyMHNj
cmlwdC1zcmMlMjAnbG9jYWxob3N0JyZxPWh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3JlZGlyLnBocCUzZnVybD1odHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9zY3Jp
cHQuanMiPjwvaWZyYW1lPgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGFjMzc5NGQy
MjQ4ZWM0YTc5N2Y3ZTQ5NTZkY2U3NWJhNzA2NzAxODIuLmUwMjA1NDU4ZDQ2YjUwZjhlZTBjZWY1
ZTg4Y2ViMDMwNzdmNWVhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyOCBAQAogMjAxMS0wMi0x
NCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNrZXRjaCBzY3JpcHQtc3JjIGZvciBDb250ZW50
IFNlY3VyaXR5IFBvbGljeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTQzODEKKworICAgICAgICBUaGlzIHBhdGNoIHByb3ZpZGVzIGEgc2tldGNoIG9m
IHRoZSBzY3JpcHQtc3JjIGRpcmVjdGl2ZS4gIFdlIHN0aWxsIGRvCisgICAgICAgIG5vdCBwYXJz
ZSB0aGUgdmFsdWUgb2YgdGhlIGRpcmVjdGl2ZSwgYW5kIHRoZSB3aXJpbmcgaW50byB0aGUgcmVz
dCBvZgorICAgICAgICBXZWJDb3JlIGlzIGluY29ycmVjdCwgYnV0IHRob3NlIGFyZSB0aGluZ3Mg
d2UgY2FuIGZpeCBpbiBmdXR1cmUKKyAgICAgICAgcGF0Y2hlcy4gIEZvciB0aGUgbW9tZW1udCwg
dGhpcyBwYXRjaCBsZXRzIHVzIHRlc3Qgd2hhdCB3ZSdyZSBkb2luZy4KKworICAgICAgICBUZXN0
OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zY3JpcHQtbG9hZHMt
d2l0aC1pbWctc3JjLmh0bWwKKworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6Q1NQRGlyZWN0aXZlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTUERpcmVjdGl2ZTo6YWxsb3dzKToKKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMp
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpwYXJzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVtaXREaXJlY3RpdmUpOgorICAg
ICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5Lmg6CisKKzIwMTEtMDItMTQgIEFkYW0g
QmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNl
aWRlbC4KIAogICAgICAgICBBZGQgYmFzaWMgcGFyc2VyIGZvciBDb250ZW50IFNlY3VyaXR5IFBv
bGljeQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3BwCmlu
ZGV4IDg4MTEwZTYyMGY2NjkxOTc5ZjU2MDc3ZWE4OTI4YzAwODE3YmJhYWEuLjY2YTBiZDYzZjYw
ZDM0OTFlNzkzNDA3ODhhZDI3NTY4MjRlNjg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKQEAgLTMxLDIyICszMSwyMiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENTUERpcmVjdGl2ZSB7CiBwdWJsaWM6Ci0gICAgQ1NQRGlyZWN0
aXZlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKLSAgICAgICAgOiBt
X25hbWUobmFtZSkKLSAgICAgICAgLCBtX3ZhbHVlKHZhbHVlKQorICAgIGV4cGxpY2l0IENTUERp
cmVjdGl2ZShjb25zdCBTdHJpbmcmIHZhbHVlKQorICAgICAgICA6IG1fdmFsdWUodmFsdWUpCiAg
ICAgewogICAgIH0KIAotICAgIGNvbnN0IFN0cmluZyYgbmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1f
bmFtZTsgfQotICAgIGNvbnN0IFN0cmluZyYgdmFsdWUoKSBjb25zdCB7IHJldHVybiBtX3ZhbHVl
OyB9CisgICAgYm9vbCBhbGxvd3MoY29uc3QgS1VSTCYpCisgICAgeworICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQogCiBwcml2YXRlOgotICAgIFN0cmluZyBtX25hbWU7CiAgICAgU3RyaW5n
IG1fdmFsdWU7CiB9OwogCiBDb250ZW50U2VjdXJpdHlQb2xpY3k6OkNvbnRlbnRTZWN1cml0eVBv
bGljeSgpCi0gICAgOiBtX2lzRW5hYmxlZChmYWxzZSkKKyAgICA6IG1faGF2ZVBvbGljeShmYWxz
ZSkKIHsKIH0KIApAQCAtNTYsMjUgKzU2LDQ5IEBAIENvbnRlbnRTZWN1cml0eVBvbGljeTo6fkNv
bnRlbnRTZWN1cml0eVBvbGljeSgpCiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9saWN5OjpkaWRS
ZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYgaGVhZGVyKQogewotICAgIGlmICghbV9kaXJlY3Rp
dmVzLmlzRW1wdHkoKSkKKyAgICBpZiAobV9oYXZlUG9saWN5KQogICAgICAgICByZXR1cm47IC8v
IFRoZSBmaXJzdCBwb2xpY3kgd2lucy4KIAotICAgIG1faXNFbmFibGVkID0gdHJ1ZTsKICAgICBw
YXJzZShoZWFkZXIpOworICAgIG1faGF2ZVBvbGljeSA9IHRydWU7CiB9CiAKLWJvb2wgQ29udGVu
dFNlY3VyaXR5UG9saWN5OjpjYW5Mb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjKGNvbnN0IFN0cmlu
ZyYpIGNvbnN0Citib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y2FuTG9hZEV4dGVybmFsU2Ny
aXB0RnJvbVNyYyhjb25zdCBTdHJpbmcmIHVybCkgY29uc3QKIHsKLSAgICByZXR1cm4gIW1faXNF
bmFibGVkOworICAgIHJldHVybiAhbV9zY3JpcHRTcmMgfHwgbV9zY3JpcHRTcmMtPmFsbG93cyhL
VVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKSk7CiB9CiAKIHZvaWQgQ29udGVudFNlY3VyaXR5UG9s
aWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKIHsKLSAgICBBU1NFUlQobV9kaXJlY3Rp
dmVzLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX2hhdmVQb2xpY3kpOwogCiAgICAgaWYgKHBv
bGljeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIGNvbnN0IFVDaGFyKiBwb3Mg
PSBwb2xpY3kuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBwb3MgKyBwb2xp
Y3kubGVuZ3RoKCk7CisKKyAgICB3aGlsZSAocG9zIDwgZW5kKSB7CisgICAgICAgIFZlY3RvcjxV
Q2hhciwgMzI+IG5hbWU7CisgICAgICAgIFZlY3RvcjxVQ2hhciwgNjQ+IHZhbHVlOworCisgICAg
ICAgIHBhcnNlRGlyZWN0aXZlKHBvcywgZW5kLCBuYW1lLCB2YWx1ZSk7CisgICAgICAgIGlmIChu
YW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIFdlIHVz
ZSBhIGNvcHkgaGVyZSBpbnN0ZWFkIG9mIFN0cmluZzo6YWRvcHQgYmVjYXVzZSB3ZSBleHBlY3QK
KyAgICAgICAgLy8gdGhlIG5hbWUgYW5kIHRoZSB2YWx1ZSB0byBiZSByZWxhdGl2ZWx5IHNob3J0
LCBzbyB0aGUgY29weSB3aWxsCisgICAgICAgIC8vIGJlIGNoZWFwZXIgdGhhbiB0aGUgZXh0cmEg
bWFsbG9jLgorICAgICAgICBlbWl0RGlyZWN0aXZlKFN0cmluZyhuYW1lKSwgU3RyaW5nKHZhbHVl
KSk7CisgICAgfQorfQorCit2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6cGFyc2VEaXJlY3Rp
dmUoY29uc3QgVUNoYXIqJiBwb3MsIGNvbnN0IFVDaGFyKiBlbmQsIFZlY3RvcjxVQ2hhciwgMzI+
JiBuYW1lLCBWZWN0b3I8VUNoYXIsIDY0PiYgdmFsdWUpCit7CisgICAgQVNTRVJUKHBvcyA8IGVu
ZCk7CisgICAgQVNTRVJUKG5hbWUuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQodmFsdWUuaXNFbXB0
eSgpKTsKKwogICAgIGVudW0gewogICAgICAgICBCZWZvcmVEaXJlY3RpdmVOYW1lLAogICAgICAg
ICBEaXJlY3RpdmVOYW1lLApAQCAtODIsMTIgKzEwNiw2IEBAIHZvaWQgQ29udGVudFNlY3VyaXR5
UG9saWN5OjpwYXJzZShjb25zdCBTdHJpbmcmIHBvbGljeSkKICAgICAgICAgRGlyZWN0aXZlVmFs
dWUsCiAgICAgfSBzdGF0ZSA9IEJlZm9yZURpcmVjdGl2ZU5hbWU7CiAKLSAgICBjb25zdCBVQ2hh
ciogcG9zID0gcG9saWN5LmNoYXJhY3RlcnMoKTsKLSAgICBjb25zdCBVQ2hhciogZW5kID0gcG9z
ICsgcG9saWN5Lmxlbmd0aCgpOwotCi0gICAgVmVjdG9yPFVDaGFyLCAzMj4gbmFtZTsKLSAgICBW
ZWN0b3I8VUNoYXIsIDY0PiB2YWx1ZTsKLQogICAgIHdoaWxlIChwb3MgPCBlbmQpIHsKICAgICAg
ICAgVUNoYXIgY3VycmVudENoYXJhY3RlciA9ICpwb3MrKzsKICAgICAgICAgc3dpdGNoIChzdGF0
ZSkgewpAQCAtMTEzLDE3ICsxMzEsMTkgQEAgdm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OnBh
cnNlKGNvbnN0IFN0cmluZyYgcG9saWN5KQogICAgICAgICAgICAgICAgIHZhbHVlLmFwcGVuZChj
dXJyZW50Q2hhcmFjdGVyKTsKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgIC8vIFdlIHVzZSBhIGNvcHkgaGVyZSBpbnN0ZWFkIG9mIFN0cmluZzo6
YWRvcHQgYmVjYXVzZSB3ZSBleHBlY3QKLSAgICAgICAgICAgIC8vIHRoZSBuYW1lIGFuZCB0aGUg
dmFsdWUgdG8gYmUgcmVsYXRpdmVseSBzaG9ydCwgc28gdGhlIGNvcHkgd2lsbAotICAgICAgICAg
ICAgLy8gYmUgY2hlYXBlciB0aGFuIHRoZSBleHRyYSBtYWxsb2MuCi0gICAgICAgICAgICAvLyBG
SVhNRTogUGVyZm9ybSBkaXJlY3RpdmUtc3BlY2lmaWMgcGFyc2luZyBvZiB0aGUgdmFsdWUuCi0g
ICAgICAgICAgICBtX2RpcmVjdGl2ZXMuYXBwZW5kKENTUERpcmVjdGl2ZShTdHJpbmcobmFtZSks
IFN0cmluZyh2YWx1ZSkpKTsKLSAgICAgICAgICAgIG5hbWUuY2xlYXIoKTsKLSAgICAgICAgICAg
IHZhbHVlLmNsZWFyKCk7Ci0gICAgICAgICAgICBzdGF0ZSA9IEJlZm9yZURpcmVjdGl2ZU5hbWU7
Ci0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KIH0KIAordm9pZCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmVtaXREaXJlY3RpdmUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKQoreworICAgIERFRklORV9TVEFU
SUNfTE9DQUwoU3RyaW5nLCBzY3JpcHRTcmMsICgic2NyaXB0LXNyYyIpKTsKKworICAgIEFTU0VS
VCghbmFtZS5pc0VtcHR5KCkpOworCisgICAgaWYgKCFtX3NjcmlwdFNyYyAmJiBlcXVhbElnbm9y
aW5nQ2FzZShuYW1lLCBzY3JpcHRTcmMpKQorICAgICAgICBtX3NjcmlwdFNyYyA9IGFkb3B0UHRy
KG5ldyBDU1BEaXJlY3RpdmUodmFsdWUpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGVudFNlY3VyaXR5UG9saWN5LmgKaW5kZXggODQzNTE2NmU2MjNmNjA5YTc5ZDQxOGI0MTNh
OTUzYjY3OTRiY2JkZS4uYzlmODk3YjYyZTFiOTc0YzZjZDIzMDE5NTIyYTUwMDUzOTYzYmY2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCkBAIC00Mywx
MiArNDMsMTIgQEAgcHVibGljOgogICAgIGJvb2wgY2FuTG9hZEV4dGVybmFsU2NyaXB0RnJvbVNy
Yyhjb25zdCBTdHJpbmcmIHVybCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBWZWN0
b3I8Q1NQRGlyZWN0aXZlPiBEaXJlY3RpdmVMaXN0OwotCiAgICAgdm9pZCBwYXJzZShjb25zdCBT
dHJpbmcmKTsKKyAgICB2b2lkIHBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiYgcG9zLCBjb25z
dCBVQ2hhciogZW5kLCBWZWN0b3I8VUNoYXIsIDMyPiYgbmFtZSwgVmVjdG9yPFVDaGFyLCA2ND4m
IHZhbHVlKTsKKyAgICB2b2lkIGVtaXREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25z
dCBTdHJpbmcmIHZhbHVlKTsKIAotICAgIGJvb2wgbV9pc0VuYWJsZWQ7Ci0gICAgRGlyZWN0aXZl
TGlzdCBtX2RpcmVjdGl2ZXM7CisgICAgYm9vbCBtX2hhdmVQb2xpY3k7CisgICAgT3duUHRyPENT
UERpcmVjdGl2ZT4gbV9zY3JpcHRTcmM7CiB9OwogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>