<?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>54787</bug_id>
          
          <creation_ts>2011-02-18 18:00:34 -0800</creation_ts>
          <short_desc>CSP&apos;s script-src should block JavaScript URLs</short_desc>
          <delta_ts>2011-02-24 05:24:31 -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>353953</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-18 18:00:34 -0800</bug_when>
    <thetext>CSP&apos;s script-src should block JavaScript URLs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353954</commentid>
    <comment_count>1</comment_count>
      <attachid>83041</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-18 18:05:15 -0800</bug_when>
    <thetext>Created attachment 83041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354093</commentid>
    <comment_count>2</comment_count>
      <attachid>83063</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-19 00:12:24 -0800</bug_when>
    <thetext>Created attachment 83063
Needs tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354094</commentid>
    <comment_count>3</comment_count>
      <attachid>83063</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-02-19 00:13:13 -0800</bug_when>
    <thetext>Comment on attachment 83063
Needs tests

Oops.  Wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356741</commentid>
    <comment_count>4</comment_count>
      <attachid>83041</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-02-24 00:57:33 -0800</bug_when>
    <thetext>Comment on attachment 83041
Patch

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

&gt; Source/WebCore/dom/Document.h:1416
&gt; +    RefPtr&lt;ContentSecurityPolicy&gt; m_contentSecurityPolicy;

No longer needs to be included from Document.h now I bet. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356889</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 04:50:34 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 83041:

media/invalid-media-url-crash.html bug 51138 (author: inferno@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356890</commentid>
    <comment_count>6</comment_count>
      <attachid>83041</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 04:52:46 -0800</bug_when>
    <thetext>Comment on attachment 83041
Patch

Clearing flags on attachment: 83041

Committed r79547: &lt;http://trac.webkit.org/changeset/79547&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356891</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 04:52:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>356908</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-24 05:24:31 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 83041:

http/tests/xmlhttprequest/basic-auth.html bug 51613 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83041</attachid>
            <date>2011-02-18 18:05:15 -0800</date>
            <delta_ts>2011-02-24 04:52:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54787-20110218180513.patch</filename>
            <type>text/plain</type>
            <size>10452</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkwNDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2JmNTIyZGU3Y2U4NjdhM2JhMTBh
Mzk4ZmZkNDgyNDU5NjQ0YmQ4Li45N2E3YWQzYTI0ZTA2YzI4NmNlMTA4OTNlMzQ4ZmZlOGUwMDFk
YjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTggIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDU1AncyBzY3JpcHQtc3JjIHNob3VsZCBibG9jayBKYXZhU2NyaXB0IFVSTHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0Nzg3CisKKyAg
ICAgICAgVGVzdCBob3cgdmFyaW91cyBDU1AgcG9saWNpZXMgYWZmZWN0IEphdmFTY3JpcHQgVVJM
cy4gIFdlIGNvdWxkIHRlc3QKKyAgICAgICAgbW9yZSBjb250ZXh0cyBpbiB0aGUgZnV0dXJlLCBi
dXQgdGhpcyBpcyBhIHN0YXJ0LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9qYXZhc2Ny
aXB0LXVybC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGw6IEFkZGVkLgorCiAy
MDExLTAyLTE4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFz
Y3JpcHQtdXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWUyZjk2ZWZkYzAxMzE5ODk4MDk2
ZDJmNzEyZDc5NzNlNmZiMjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvamF2YXNjcmlwdC11cmwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6IFBBU1MKK0xvYWRzIGFuIGlmcmFtZSB3aGlj
aCBpbiB0dXJucyB0cmllcyB0byBydW4gSmF2YVNjcmlwdCBVUkxzLiBUaGUgdGVzdCBwYXNzZXMg
aWYgdGhlIGlmcmFtZSBkb2Vzbid0IGFsZXJ0ICdmYWlsJy4KKworICAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFz
Y3JpcHQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9qYXZhc2NyaXB0LXVybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MzIwNzIzYTdi
NTIwYWVlNjYxM2E5MzNiNGNjZmE0Yjg4YWQyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9qYXZhc2NyaXB0
LXVybC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICA8cD4KKyAgICBMb2FkcyBhbiBpZnJhbWUgd2hpY2ggaW4gdHVybnMgdHJpZXMgdG8gcnVuIEph
dmFTY3JpcHQgVVJMcy4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBpZnJhbWUgZG9lc24ndCBhbGVy
dCAnZmFpbCcuCisgIDwvcD4KKyAgPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2phdmFzY3JpcHQtdXJsLnBs
P3Nob3VsZF9ydW49bm8mY3NwPWFsbG93JTIwKiUzQiUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwv
aWZyYW1lPgorICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGw/c2hvdWxkX3J1
bj15ZXMmY3NwPWFsbG93JTIwKiUzQiI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwu
cGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWZkNTg1YjM0NjlhYzU4MWYzYmU4NWVmNWNkYTg0MGVlMTM3YjQ3Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9qYXZhc2NyaXB0LXVybC5wbApAQCAtMCwwICsxLDE5
IEBACisjIS91c3IvYmluL3BlcmwgLXdUCit1c2Ugc3RyaWN0OwordXNlIENHSTsKKworbXkgJGNn
aSA9IG5ldyBDR0k7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOFxuIjsKK3ByaW50ICJYLVdlYktpdC1DU1A6ICIuJGNnaS0+cGFyYW0oJ2NzcCcpLiJcblxu
IjsKKworbXkgJHRleHQgPSAiUEFTUyI7CiskdGV4dCA9ICJGQUlMIiBpZiAkY2dpLT5wYXJhbSgn
c2hvdWxkX3J1bicpIGVxICdubyc7CisKK3ByaW50ICI8IURPQ1RZUEUgaHRtbD5cbiI7Citwcmlu
dCAiPGh0bWw+XG4iOworcHJpbnQgIjxib2R5PlxuIjsKK3ByaW50ICI8aWZyYW1lIHNyYz1cImph
dmFzY3JpcHQ6YWxlcnQoJyIuJHRleHQuIicpO1wiPjwvaWZyYW1lPlxuIjsKK3ByaW50ICI8b2Jq
ZWN0IGRhdGE9XCJqYXZhc2NyaXB0OmFsZXJ0KCciLiR0ZXh0LiInKTtcIj48L29iamVjdD5cbiI7
CitwcmludCAiPGVtYmVkIHNyYz1cImphdmFzY3JpcHQ6YWxlcnQoJyIuJHRleHQuIicpO1wiPjwv
ZW1iZWQ+XG4iOworcHJpbnQgIjwvaHRtbD5cbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlNjZkZWFhNGYy
MTM4NDJmNDM1ZWEwMzI0MGQxOGEwYjBiNTc2Yy4uNWM2M2FjYWVhZGY4MzZkMTZiMDBiOTJmYWNl
YTJjMWViOWFmNDFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDExLTAyLTE4ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQ1NQJ3Mgc2NyaXB0LXNyYyBzaG91bGQgYmxvY2sgSmF2
YVNjcmlwdCBVUkxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01NDc4NworCisgICAgICAgIEJsb2NraW5nIEphdmFTY3JpcHQgVVJMcyByZXF1aXJlZCBz
b21lIHJlLWFyY2hpdGVjdGluZyBvZiB0aGUgbGlmZXRpbWUKKyAgICAgICAgb2YgdGhlIENvbnRl
bnRTZWN1cml0eVBvbGljeSBvYmplY3QuICBXZSBub3cgbWFuYWdlIHRoZSBsaWZldGltZSB0aGUK
KyAgICAgICAgc2FtZSB3YXkgd2UgbWFuYWdlIHRoZSBsaWZldGltZSBvZiB0aGUgU2VjdXJpdHlP
cmlnaW4gb2JqZWN0LiAgSW4KKyAgICAgICAgcGFydGljdWxhciwgd2hlbiBTZWN1cml0eU9yaWdp
biBpbmhlcml0cyBpbnRvIGFuIGFib3V0OmJsYW5rIGlmcmFtZSwgd2UKKyAgICAgICAgaW5oZXJp
dCB0aGUgQ1NQIG9iamVjdCBhcyB3ZWxsLiAgKFRoaXMgaXMgY292ZXJlZCBieSB0aGUgdGVzdCBh
ZGRlZCBpbgorICAgICAgICB0aGlzIHBhdGNoLikgSW4gdGhlIGZ1dHVyZSwgd2UgbWlnaHQgY29u
c2lkZXIgbWFraW5nCisgICAgICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSBhIGNvbXBvbmVudCBv
ZiBTZWN1cml0eU9yaWdpbiBpbnN0ZWFkIG9mIGEKKyAgICAgICAgY29tcG9uZW50IG9mIERvY3Vt
ZW50LgorCisgICAgICAgIEkgbm90ZWQgdGhlIHRyaWNraW5lc3MgaW4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvU2VjdXJpdHkvd2lraS9Db250ZW50X1NlY3VyaXR5X1BvbGljaWVzIHNvIHRo
YXQgd2UnbGwKKyAgICAgICAgbWFrZSBzdXJlIGl0IGdldHMgZGVmaW5lZCBwcm9wZXJseSBpbiB0
aGUgc3BlYy4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9qYXZhc2NyaXB0LXVybC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9TY3Jp
cHRDb250cm9sbGVyQmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVy
OjpleGVjdXRlSWZKYXZhU2NyaXB0VVJMKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNvbnRlbnRT
ZWN1cml0eVBvbGljeSk6CisgICAgICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjphbGxvd0phdmFTY3Jp
cHRVUkxzKToKKyAgICAgICAgKiBwYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Q29udGVudFNlY3VyaXR5UG9saWN5OjpjcmVhdGUpOgorCiAyMDExLTAyLTE1
ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgSmFtZXMgUm9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9T
Y3JpcHRDb250cm9sbGVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9TY3JpcHRD
b250cm9sbGVyQmFzZS5jcHAKaW5kZXggZTEyOGQxMTMyZmE1Y2VjYjRlMjNkYzkxM2QzNDZmODdh
MWNlYWRiYS4uZDY5YmZjOWFhNjQ3ZGZhMTExMWJjNjM2ZjUwYmViMGJmMTEzM2FiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcApAQCAt
NzEsMTMgKzcxLDEwIEBAIGJvb2wgU2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2YVNjcmlw
dFVSTChjb25zdCBLVVJMJiB1cmwsIFNob3VsZFJlcGxhY2VEb2N1CiAgICAgaWYgKCFwcm90b2Nv
bElzSmF2YVNjcmlwdCh1cmwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIW1f
ZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIW1fZnJhbWUt
PnBhZ2UoKS0+amF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkKCkpCi0gICAgICAgIHJldHVybiB0cnVl
OwotCi0gICAgaWYgKG1fZnJhbWUtPmluVmlld1NvdXJjZU1vZGUoKSkKKyAgICBpZiAoIW1fZnJh
bWUtPnBhZ2UoKQorICAgICAgICB8fCAhbV9mcmFtZS0+cGFnZSgpLT5qYXZhU2NyaXB0VVJMc0Fy
ZUFsbG93ZWQoKQorICAgICAgICB8fCAhbV9mcmFtZS0+ZG9jdW1lbnQoKS0+Y29udGVudFNlY3Vy
aXR5UG9saWN5KCktPmFsbG93SmF2YVNjcmlwdFVSTHMoKQorICAgICAgICB8fCBtX2ZyYW1lLT5p
blZpZXdTb3VyY2VNb2RlKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gV2UgbmVl
ZCB0byBob2xkIG9udG8gdGhlIEZyYW1lIGhlcmUgYmVjYXVzZSBleGVjdXRpbmcgc2NyaXB0IGNh
bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYTdiYjg1YTFmMmFlNzRjZjRkM2UxMmFjYWFm
NjUxZTRmZTNjYjNiZi4uNzg5NTZjNzkzNWM4NDIxOWQ2YzRlNTlhMDgwZWYzODE2YzBmNDEwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC00NDE5LDEzICs0NDE5LDE1IEBAIHZvaWQgRG9j
dW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQogICAgICAgICAvLyBUaGlzIGNhbiBvY2N1ciB2
aWEgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoKS4KICAgICAgICAgbV9j
b29raWVVUkwgPSBLVVJMKFBhcnNlZFVSTFN0cmluZywgIiIpOwogICAgICAgICBTY3JpcHRFeGVj
dXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRW1w
dHkoKSk7CisgICAgICAgIG1fY29udGVudFNlY3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5
UG9saWN5OjpjcmVhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIEluIHRo
ZSBjb21tb24gY2FzZSwgY3JlYXRlIHRoZSBzZWN1cml0eSBjb250ZXh0IGZyb20gdGhlIGN1cnJl
bnRseQotICAgIC8vIGxvYWRpbmcgVVJMLgorICAgIC8vIGxvYWRpbmcgVVJMIHdpdGggYSBmcmVz
aCBjb250ZW50IHNlY3VyaXR5IHBvbGljeS4KICAgICBtX2Nvb2tpZVVSTCA9IG1fdXJsOwogICAg
IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGUobV91cmwsIG1fZnJhbWUtPmxvYWRlcigpLT5zYW5kYm94RmxhZ3MoKSkpOworICAg
IG1fY29udGVudFNlY3VyaXR5UG9saWN5ID0gQ29udGVudFNlY3VyaXR5UG9saWN5OjpjcmVhdGUo
KTsKIAogICAgIGlmIChTZWN1cml0eU9yaWdpbjo6YWxsb3dTdWJzdGl0dXRlRGF0YUFjY2Vzc1Rv
TG9jYWwoKSkgewogICAgICAgICAvLyBJZiB0aGlzIGRvY3VtZW50IHdhcyBsb2FkZWQgd2l0aCBz
dWJzdGl0dXRlRGF0YSwgdGhlbiB0aGUgZG9jdW1lbnQgY2FuCkBAIC00NDY5LDYgKzQ0NzEsOCBA
QCB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KCkKICAgICAgICAgLy8gV2UgYWxp
YXMgdGhlIFNlY3VyaXR5T3JpZ2lucyB0byBtYXRjaCBGaXJlZm94LCBzZWUgQnVnIDE1MzEzCiAg
ICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxMwog
ICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihvd25lckZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICAgICAgLy8gRklYTUU6IENv
bnNpZGVyIG1vdmluZyBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSBpbnRvIFNlY3VyaXR5T3JpZ2lu
LgorICAgICAgICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IG93bmVyRnJhbWUtPmRvY3VtZW50
KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
aAppbmRleCA5ZTE1YWM3ZmRiZjgxNTRmYWMzMGM0MzdhZTNmODM1MzU3ZTM1NTU5Li44MjhmOGE2
NDZiYzBjMzZjMmYxZTg0YzJiOGU0OWRkMTk5NjJiMjk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApA
QCAtMTEwNyw3ICsxMTA3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBpbml0RE5TUHJlZmV0Y2go
KTsKIAotICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVudFNlY3VyaXR5UG9saWN5KCkg
eyByZXR1cm4gJm1fY29udGVudFNlY3VyaXR5UG9saWN5OyB9CisgICAgQ29udGVudFNlY3VyaXR5
UG9saWN5KiBjb250ZW50U2VjdXJpdHlQb2xpY3koKSB7IHJldHVybiBtX2NvbnRlbnRTZWN1cml0
eVBvbGljeS5nZXQoKTsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRG9jdW1lbnQoRnJhbWUqLCBjb25z
dCBLVVJMJiwgYm9vbCBpc1hIVE1MLCBib29sIGlzSFRNTCk7CkBAIC0xNDEzLDcgKzE0MTMsNyBA
QCBwcml2YXRlOgogICAgIE93blB0cjxTY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXI+IG1fc2Ny
aXB0ZWRBbmltYXRpb25Db250cm9sbGVyOwogI2VuZGlmCiAKLSAgICBDb250ZW50U2VjdXJpdHlQ
b2xpY3kgbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CisgICAgUmVmUHRyPENvbnRlbnRTZWN1cml0
eVBvbGljeT4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3k7CiB9OwogCiBpbmxpbmUgYm9vbCBEb2N1
bWVudDo6aGFzRWxlbWVudFdpdGhJZChBdG9taWNTdHJpbmdJbXBsKiBpZCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcAppbmRleCA2NmEwYmQ2
M2Y2MGQzNDkxZTc5MzQwNzg4YWQyNzU2ODI0ZTY4N2I5Li45N2NkNDQ3MGVjYjk2MTIwMDc3MWM4
ZTZlOGI0YTY1M2RkOTVmOWI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRl
bnRTZWN1cml0eVBvbGljeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2Vj
dXJpdHlQb2xpY3kuY3BwCkBAIC02Myw2ICs2MywxMSBAQCB2b2lkIENvbnRlbnRTZWN1cml0eVBv
bGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikKICAgICBtX2hhdmVQ
b2xpY3kgPSB0cnVlOwogfQogCitib29sIENvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dKYXZh
U2NyaXB0VVJMcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX3NjcmlwdFNyYzsKK30KKwogYm9v
bCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMoY29u
c3QgU3RyaW5nJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0dXJuICFtX3NjcmlwdFNyYyB8fCBtX3Nj
cmlwdFNyYy0+YWxsb3dzKEtVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5oCmluZGV4IGM5Zjg5N2I2MmUxYjk3NGM2
Y2QyMzAxOTUyMmE1MDA1Mzk2M2JmNjMuLjBlZWJkMDU4ZmVmOTk2ZWY3N2EyZTM5OWYyNmNiYjg0
MWY4MTNkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5
UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3ku
aApAQCAtMzMsMTYgKzMzLDIwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ1NQRGly
ZWN0aXZlOwogCi1jbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3kgewotICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKENvbnRlbnRTZWN1cml0eVBvbGljeSk7CitjbGFzcyBDb250ZW50U2VjdXJpdHlQ
b2xpY3kgOiBwdWJsaWMgUmVmQ291bnRlZDxDb250ZW50U2VjdXJpdHlQb2xpY3k+IHsKIHB1Ymxp
YzoKLSAgICBDb250ZW50U2VjdXJpdHlQb2xpY3koKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxD
b250ZW50U2VjdXJpdHlQb2xpY3k+IGNyZWF0ZSgpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBDb250
ZW50U2VjdXJpdHlQb2xpY3kpOyB9CiAgICAgfkNvbnRlbnRTZWN1cml0eVBvbGljeSgpOwogCiAg
ICAgdm9pZCBkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0cmluZyYpOworCisgICAgYm9vbCBhbGxv
d0phdmFTY3JpcHRVUkxzKCkgY29uc3Q7CisgICAgLy8gRklYTUU6IFJlbmFtZSBjYW5Mb2FkRXh0
ZXJuYWxTY3JpcHRGcm9tU3JjIHRvIGFsbG93U2NyaXB0RnJvbVVSTC4KICAgICBib29sIGNhbkxv
YWRFeHRlcm5hbFNjcmlwdEZyb21TcmMoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0OwogCiBwcml2
YXRlOgorICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSgpOworCiAgICAgdm9pZCBwYXJzZShjb25z
dCBTdHJpbmcmKTsKICAgICB2b2lkIHBhcnNlRGlyZWN0aXZlKGNvbnN0IFVDaGFyKiYgcG9zLCBj
b25zdCBVQ2hhciogZW5kLCBWZWN0b3I8VUNoYXIsIDMyPiYgbmFtZSwgVmVjdG9yPFVDaGFyLCA2
ND4mIHZhbHVlKTsKICAgICB2b2lkIGVtaXREaXJlY3RpdmUoY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83063</attachid>
            <date>2011-02-19 00:12:24 -0800</date>
            <delta_ts>2011-02-19 00:13:13 -0800</delta_ts>
            <desc>Needs tests</desc>
            <filename>bug-54787-20110219001223.patch</filename>
            <type>text/plain</type>
            <size>16632</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzkwNDUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmM2JmNTIyZGU3Y2U4NjdhM2JhMTBh
Mzk4ZmZkNDgyNDU5NjQ0YmQ4Li45N2E3YWQzYTI0ZTA2YzI4NmNlMTA4OTNlMzQ4ZmZlOGUwMDFk
YjM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDItMTggIEFkYW0gQmFydGggIDxhYmFy
dGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBDU1AncyBzY3JpcHQtc3JjIHNob3VsZCBibG9jayBKYXZhU2NyaXB0IFVSTHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0Nzg3CisKKyAg
ICAgICAgVGVzdCBob3cgdmFyaW91cyBDU1AgcG9saWNpZXMgYWZmZWN0IEphdmFTY3JpcHQgVVJM
cy4gIFdlIGNvdWxkIHRlc3QKKyAgICAgICAgbW9yZSBjb250ZXh0cyBpbiB0aGUgZnV0dXJlLCBi
dXQgdGhpcyBpcyBhIHN0YXJ0LgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kvamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9qYXZhc2Ny
aXB0LXVybC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGw6IEFkZGVkLgorCiAy
MDExLTAyLTE4ICBDc2FiYSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFz
Y3JpcHQtdXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZWUyZjk2ZWZkYzAxMzE5ODk4MDk2
ZDJmNzEyZDc5NzNlNmZiMjRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvamF2YXNjcmlwdC11cmwtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQUxFUlQ6IFBBU1MKK0xvYWRzIGFuIGlmcmFtZSB3aGlj
aCBpbiB0dXJucyB0cmllcyB0byBydW4gSmF2YVNjcmlwdCBVUkxzLiBUaGUgdGVzdCBwYXNzZXMg
aWYgdGhlIGlmcmFtZSBkb2Vzbid0IGFsZXJ0ICdmYWlsJy4KKworICAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2phdmFz
Y3JpcHQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9qYXZhc2NyaXB0LXVybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA3MzIwNzIzYTdi
NTIwYWVlNjYxM2E5MzNiNGNjZmE0Yjg4YWQyMTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9qYXZhc2NyaXB0
LXVybC5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICA8cD4KKyAgICBMb2FkcyBhbiBpZnJhbWUgd2hpY2ggaW4gdHVybnMgdHJpZXMgdG8gcnVuIEph
dmFTY3JpcHQgVVJMcy4gVGhlIHRlc3QgcGFzc2VzIGlmIHRoZSBpZnJhbWUgZG9lc24ndCBhbGVy
dCAnZmFpbCcuCisgIDwvcD4KKyAgPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL2phdmFzY3JpcHQtdXJsLnBs
P3Nob3VsZF9ydW49bm8mY3NwPWFsbG93JTIwKiUzQiUyMHNjcmlwdC1zcmMlMjAnbm9uZSciPjwv
aWZyYW1lPgorICA8aWZyYW1lIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGw/c2hvdWxkX3J1
bj15ZXMmY3NwPWFsbG93JTIwKiUzQiI+PC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwucGwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvamF2YXNjcmlwdC11cmwu
cGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWZkNTg1YjM0NjlhYzU4MWYzYmU4NWVmNWNkYTg0MGVlMTM3YjQ3Ngot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3Jlc291cmNlcy9qYXZhc2NyaXB0LXVybC5wbApAQCAtMCwwICsxLDE5
IEBACisjIS91c3IvYmluL3BlcmwgLXdUCit1c2Ugc3RyaWN0OwordXNlIENHSTsKKworbXkgJGNn
aSA9IG5ldyBDR0k7CisKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1V
VEYtOFxuIjsKK3ByaW50ICJYLVdlYktpdC1DU1A6ICIuJGNnaS0+cGFyYW0oJ2NzcCcpLiJcblxu
IjsKKworbXkgJHRleHQgPSAiUEFTUyI7CiskdGV4dCA9ICJGQUlMIiBpZiAkY2dpLT5wYXJhbSgn
c2hvdWxkX3J1bicpIGVxICdubyc7CisKK3ByaW50ICI8IURPQ1RZUEUgaHRtbD5cbiI7Citwcmlu
dCAiPGh0bWw+XG4iOworcHJpbnQgIjxib2R5PlxuIjsKK3ByaW50ICI8aWZyYW1lIHNyYz1cImph
dmFzY3JpcHQ6YWxlcnQoJyIuJHRleHQuIicpO1wiPjwvaWZyYW1lPlxuIjsKK3ByaW50ICI8b2Jq
ZWN0IGRhdGE9XCJqYXZhc2NyaXB0OmFsZXJ0KCciLiR0ZXh0LiInKTtcIj48L29iamVjdD5cbiI7
CitwcmludCAiPGVtYmVkIHNyYz1cImphdmFzY3JpcHQ6YWxlcnQoJyIuJHRleHQuIicpO1wiPjwv
ZW1iZWQ+XG4iOworcHJpbnQgIjwvaHRtbD5cbiI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTVlNjZkZWFhNGYy
MTM4NDJmNDM1ZWEwMzI0MGQxOGEwYjBiNTc2Yy4uNTUwNmQwN2YzNTk0Yjg2ZTk0NjA0ZTE3MWE0
OGNhYjA5ZWNlMmMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDExLTAyLTE5ICBB
ZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVhY2ggQ29udGVudCBTZWN1cml0eSBQb2xpY3kgaG93
IHRvIHBhcnNlIG9yaWdpbi1wYXR0ZXJucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3OTkKKworICAgICAgICBObyBuZXcgdGVzdHMuIChPT1BTISkK
KworICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok9yaWdpblBhdHRlcm46Ok9yaWdpblBhdHRlcm4pOgorICAgICAgICAoV2ViQ29yZTo6
T3JpZ2luUGF0dGVybjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZ2luUGF0dGVybjo6
bWF0Y2hlcyk6CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmU6OkNTUERpcmVjdGl2ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDU1BEaXJlY3RpdmU6OmFsbG93cyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1BEaXJlY3RpdmU6OnBhcnNlKToKKworMjAxMS0wMi0xOCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIENTUCdzIHNjcmlwdC1zcmMgc2hvdWxkIGJsb2NrIEphdmFTY3JpcHQgVVJMcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTQ3ODcKKwor
ICAgICAgICBCbG9ja2luZyBKYXZhU2NyaXB0IFVSTHMgcmVxdWlyZWQgc29tZSByZS1hcmNoaXRl
Y3Rpbmcgb2YgdGhlIGxpZmV0aW1lCisgICAgICAgIG9mIHRoZSBDb250ZW50U2VjdXJpdHlQb2xp
Y3kgb2JqZWN0LiAgV2Ugbm93IG1hbmFnZSB0aGUgbGlmZXRpbWUgdGhlCisgICAgICAgIHNhbWUg
d2F5IHdlIG1hbmFnZSB0aGUgbGlmZXRpbWUgb2YgdGhlIFNlY3VyaXR5T3JpZ2luIG9iamVjdC4g
IEluCisgICAgICAgIHBhcnRpY3VsYXIsIHdoZW4gU2VjdXJpdHlPcmlnaW4gaW5oZXJpdHMgaW50
byBhbiBhYm91dDpibGFuayBpZnJhbWUsIHdlCisgICAgICAgIGluaGVyaXQgdGhlIENTUCBvYmpl
Y3QgYXMgd2VsbC4gIChUaGlzIGlzIGNvdmVyZWQgYnkgdGhlIHRlc3QgYWRkZWQgaW4KKyAgICAg
ICAgdGhpcyBwYXRjaC4pIEluIHRoZSBmdXR1cmUsIHdlIG1pZ2h0IGNvbnNpZGVyIG1ha2luZwor
ICAgICAgICBDb250ZW50U2VjdXJpdHlQb2xpY3kgYSBjb21wb25lbnQgb2YgU2VjdXJpdHlPcmln
aW4gaW5zdGVhZCBvZiBhCisgICAgICAgIGNvbXBvbmVudCBvZiBEb2N1bWVudC4KKworICAgICAg
ICBJIG5vdGVkIHRoZSB0cmlja2luZXNzIGluCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1Nl
Y3VyaXR5L3dpa2kvQ29udGVudF9TZWN1cml0eV9Qb2xpY2llcyBzbyB0aGF0IHdlJ2xsCisgICAg
ICAgIG1ha2Ugc3VyZSBpdCBnZXRzIGRlZmluZWQgcHJvcGVybHkgaW4gdGhlIHNwZWMuCisKKyAg
ICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvamF2
YXNjcmlwdC11cmwuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXhlY3V0ZUlmSmF2
YVNjcmlwdFVSTCk6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0KToKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb250ZW50U2VjdXJpdHlQb2xpY3kp
OgorICAgICAgICAqIHBhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRTZWN1cml0eVBvbGljeTo6YWxsb3dKYXZhU2NyaXB0VVJMcyk6CisgICAg
ICAgICogcGFnZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRTZWN1cml0eVBvbGljeTo6Y3JlYXRlKToKKwogMjAxMS0wMi0xNSAgQWRyaWVubmUgV2Fs
a2VyICA8ZW5uZUBnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEphbWVzIFJvYmlu
c29uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxl
ckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvU2NyaXB0Q29udHJvbGxlckJhc2Uu
Y3BwCmluZGV4IGUxMjhkMTEzMmZhNWNlY2I0ZTIzZGM5MTNkMzQ2Zjg3YTFjZWFkYmEuLmQ2OWJm
YzlhYTY0N2RmYTExMTFiYzYzNmY1MGJlYjBiZjExMzNhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL1NjcmlwdENvbnRyb2xsZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9TY3JpcHRDb250cm9sbGVyQmFzZS5jcHAKQEAgLTcxLDEzICs3MSwxMCBA
QCBib29sIFNjcmlwdENvbnRyb2xsZXI6OmV4ZWN1dGVJZkphdmFTY3JpcHRVUkwoY29uc3QgS1VS
TCYgdXJsLCBTaG91bGRSZXBsYWNlRG9jdQogICAgIGlmICghcHJvdG9jb2xJc0phdmFTY3JpcHQo
dXJsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmphdmFT
Y3JpcHRVUkxzQXJlQWxsb3dlZCgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIGlmICht
X2ZyYW1lLT5pblZpZXdTb3VyY2VNb2RlKCkpCisgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkKKyAg
ICAgICAgfHwgIW1fZnJhbWUtPnBhZ2UoKS0+amF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkKCkKKyAg
ICAgICAgfHwgIW1fZnJhbWUtPmRvY3VtZW50KCktPmNvbnRlbnRTZWN1cml0eVBvbGljeSgpLT5h
bGxvd0phdmFTY3JpcHRVUkxzKCkKKyAgICAgICAgfHwgbV9mcmFtZS0+aW5WaWV3U291cmNlTW9k
ZSgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFdlIG5lZWQgdG8gaG9sZCBvbnRv
IHRoZSBGcmFtZSBoZXJlIGJlY2F1c2UgZXhlY3V0aW5nIHNjcmlwdCBjYW4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCmluZGV4IGE3YmI4NWExZjJhZTc0Y2Y0ZDNlMTJhY2FhZjY1MWU0ZmUzY2IzYmYu
Ljc4OTU2Yzc5MzVjODQyMTlkNmM0ZTU5YTA4MGVmMzgxNmMwZjQxMDUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcApAQCAtNDQxOSwxMyArNDQxOSwxNSBAQCB2b2lkIERvY3VtZW50Ojppbml0U2Vj
dXJpdHlDb250ZXh0KCkKICAgICAgICAgLy8gVGhpcyBjYW4gb2NjdXIgdmlhIGRvY3VtZW50Lmlt
cGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCkuCiAgICAgICAgIG1fY29va2llVVJMID0gS1VS
TChQYXJzZWRVUkxTdHJpbmcsICIiKTsKICAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6
c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUVtcHR5KCkpOworICAgICAg
ICBtX2NvbnRlbnRTZWN1cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y3JlYXRl
KCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICAvLyBJbiB0aGUgY29tbW9uIGNhc2Us
IGNyZWF0ZSB0aGUgc2VjdXJpdHkgY29udGV4dCBmcm9tIHRoZSBjdXJyZW50bHkKLSAgICAvLyBs
b2FkaW5nIFVSTC4KKyAgICAvLyBsb2FkaW5nIFVSTCB3aXRoIGEgZnJlc2ggY29udGVudCBzZWN1
cml0eSBwb2xpY3kuCiAgICAgbV9jb29raWVVUkwgPSBtX3VybDsKICAgICBTY3JpcHRFeGVjdXRp
b25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJs
LCBtX2ZyYW1lLT5sb2FkZXIoKS0+c2FuZGJveEZsYWdzKCkpKTsKKyAgICBtX2NvbnRlbnRTZWN1
cml0eVBvbGljeSA9IENvbnRlbnRTZWN1cml0eVBvbGljeTo6Y3JlYXRlKCk7CiAKICAgICBpZiAo
U2VjdXJpdHlPcmlnaW46OmFsbG93U3Vic3RpdHV0ZURhdGFBY2Nlc3NUb0xvY2FsKCkpIHsKICAg
ICAgICAgLy8gSWYgdGhpcyBkb2N1bWVudCB3YXMgbG9hZGVkIHdpdGggc3Vic3RpdHV0ZURhdGEs
IHRoZW4gdGhlIGRvY3VtZW50IGNhbgpAQCAtNDQ2OSw2ICs0NDcxLDggQEAgdm9pZCBEb2N1bWVu
dDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAgICAgICAgIC8vIFdlIGFsaWFzIHRoZSBTZWN1cml0
eU9yaWdpbnMgdG8gbWF0Y2ggRmlyZWZveCwgc2VlIEJ1ZyAxNTMxMwogICAgICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKICAgICAgICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4ob3duZXJGcmFtZS0+ZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgICAgIC8vIEZJWE1FOiBDb25zaWRlciBtb3Zpbmcg
bV9jb250ZW50U2VjdXJpdHlQb2xpY3kgaW50byBTZWN1cml0eU9yaWdpbi4KKyAgICAgICAgbV9j
b250ZW50U2VjdXJpdHlQb2xpY3kgPSBvd25lckZyYW1lLT5kb2N1bWVudCgpLT5jb250ZW50U2Vj
dXJpdHlQb2xpY3koKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggOWUxNWFj
N2ZkYmY4MTU0ZmFjMzBjNDM3YWUzZjgzNTM1N2UzNTU1OS4uODI4ZjhhNjQ2YmMwYzM2YzJmMWU4
NGMyYjhlNDlkZDE5OTYyYjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTExMDcsNyArMTEw
Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgaW5pdEROU1ByZWZldGNoKCk7CiAKLSAgICBDb250
ZW50U2VjdXJpdHlQb2xpY3kqIGNvbnRlbnRTZWN1cml0eVBvbGljeSgpIHsgcmV0dXJuICZtX2Nv
bnRlbnRTZWN1cml0eVBvbGljeTsgfQorICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSogY29udGVu
dFNlY3VyaXR5UG9saWN5KCkgeyByZXR1cm4gbV9jb250ZW50U2VjdXJpdHlQb2xpY3kuZ2V0KCk7
IH0KIAogcHJvdGVjdGVkOgogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgS1VSTCYsIGJvb2wg
aXNYSFRNTCwgYm9vbCBpc0hUTUwpOwpAQCAtMTQxMyw3ICsxNDEzLDcgQEAgcHJpdmF0ZToKICAg
ICBPd25QdHI8U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyPiBtX3NjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjsKICNlbmRpZgogCi0gICAgQ29udGVudFNlY3VyaXR5UG9saWN5IG1fY29udGVu
dFNlY3VyaXR5UG9saWN5OworICAgIFJlZlB0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IG1fY29u
dGVudFNlY3VyaXR5UG9saWN5OwogfTsKIAogaW5saW5lIGJvb2wgRG9jdW1lbnQ6Omhhc0VsZW1l
bnRXaXRoSWQoQXRvbWljU3RyaW5nSW1wbCogaWQpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5jcHAKaW5kZXggNjZhMGJkNjNmNjBkMzQ5MWU3OTM0
MDc4OGFkMjc1NjgyNGU2ODdiOS4uZTQyYWM3NzBhZjQ4ODkyNWU2MDI5OTY0YWI2MzIxZThhYzI0
NDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZW50U2VjdXJpdHlQb2xp
Y3kuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmNw
cApAQCAtMjksMjAgKzI5LDIzNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK25hbWVzcGFj
ZSB7CisKK2lubGluZSBib29sIGlzU2NoZW1lQ2hhcmFjdGVyKFVDaGFyIGMpCit7CisgICAgcmV0
dXJuIGlzQVNDSUlBbHBoYShjKSB8fCBpc0FTQ0lJRGlnaXQoYykgfHwgYyA9PSAnKycgfHwgYyA9
PSAnLScgfHwgYyA9PSAnLic7Cit9CisKK2Jvb2wgZXh0cmFjdFNjaGVtZShjb25zdCBVQ2hhciom
IHBvcywgY29uc3QgVUNoYXIqIGVuZCwgU3RyaW5nJiByZXN1bHQpCit7CisgICAgQVNTRVJUKHBv
cyA8IGVuZCk7CisKKyAgICBpZiAoIWlzQVNDSUlBbHBoYSgqcG9zKSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgVmVjdG9yPFVDaGFyLCAzMj4gc2NoZW1lOworCisgICAgVUNoYXIgY3Vy
cmVudENoYXJhdGVyID0gKnBvczsKKyAgICB3aGlsZSAoaXNTY2hlbWVDaGFyYWN0ZXIoY3VycmVu
dENoYXJhdGVyKSkgeworICAgICAgICBzY2hlbWUuYXBwZW5kKHRvQVNDSUlMb3dlcihjdXJyZW50
Q2hhcmF0ZXIpKTsKKyAgICAgICAgKytwb3M7CisgICAgICAgIGlmIChwb3MgPT0gZW5kKQorICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1cnJlbnRDaGFyYXRlciA9ICpwb3M7CisgICAgfQor
CisgICAgcmVzdWx0ID0gU3RyaW5nKHNjaGVtZSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2lu
bGluZSBib29sIGlzSG9zdENvbnRpbnVlQ2hhcmFjdGVyKFVDaGFyIGMpCit7CisgICAgcmV0dXJu
ICFpc0FTQ0lJU3BhY2UoYykgJiYgYyAhPSAnOicgJiYgYyAhPSAnLyc7Cit9CisKK2lubGluZSBi
b29sIGlzSG9zdFN0YXJ0Q2hhcmFjdGVyKFVDaGFyIGMpCit7CisgICAgcmV0dXJuIGlzSG9zdENv
bnRpbnVlQ2hhcmFjdGVyKGMpICYmIGMgIT0gJyonOworfQorCitib29sIGV4dHJhY3RIb3N0KGNv
bnN0IFVDaGFyKiYgcG9zLCBjb25zdCBVQ2hhciogZW5kLCBTdHJpbmcmIHJlc3VsdCkKK3sKKyAg
ICBBU1NFUlQocG9zIDwgZW5kKTsKKworICAgIGlmICghaXNIb3N0U3RhcnRDaGFyYWN0ZXIoKnBv
cykpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFZlY3RvcjxVQ2hhciwgMzI+IGhvc3Q7
CisKKyAgICBVQ2hhciBjdXJyZW50Q2hhcmFjdGVyID0gKnBvczsKKyAgICB3aGlsZSAoaXNIb3N0
Q29udGludWVDaGFyYWN0ZXIoY3VycmVudENoYXJhY3RlcikpIHsKKyAgICAgICAgaG9zdC5hcHBl
bmQodG9BU0NJSUxvd2VyKGN1cnJlbnRDaGFyYWN0ZXIpKTsKKyAgICAgICAgKytwb3M7CisgICAg
ICAgIGlmIChwb3MgPT0gZW5kKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGN1cnJlbnRD
aGFyYWN0ZXIgPSAqcG9zOworICAgIH0KKworICAgIHJlc3VsdCA9IFN0cmluZyhob3N0KTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBleHRyYWN0UG9ydChjb25zdCBVQ2hhciomIHBvcywg
Y29uc3QgVUNoYXIqIGVuZCwgdW5zaWduZWQmIHJlc3VsdCkKK3sKKyAgICBBU1NFUlQocG9zIDwg
ZW5kKTsKKworICAgIGlmICgqcG9zICE9ICc6JykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisK
KyAgICArK3BvczsKKworICAgIHVuc2lnbmVkIHBvcnQgPSAwOworCisgICAgaWYgKHBvcyA9PSBl
bmQpIHsKKyAgICAgICAgcmVzdWx0ID0gcG9ydDsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorCisgICAgVUNoYXIgY3VycmVudENoYXJhY3RlciA9ICpwb3M7CisgICAgd2hpbGUgKGlzQVND
SUlEaWdpdChjdXJyZW50Q2hhcmFjdGVyKSkKKyAgICAgICAgcG9ydCAqPSAxMDsKKyAgICAgICAg
cG9ydCArPSBjdXJyZW50Q2hhcmFjdGVyIC0gJzAnOworICAgICAgICArK3BvczsKKyAgICAgICAg
aWYgKHBvcyA9PSBlbmQpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY3VycmVudENoYXJh
Y3RlciA9ICpwb3M7CisgICAgfQorCisgICAgcmVzdWx0ID0gcG9ydDsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKworfQorCitjbGFzcyBPcmlnaW5QYXR0ZXJuIHsKK3B1YmxpYzoKKyAgICBPcmlnaW5Q
YXR0ZXJuKCkKKyAgICAgICAgOiBtX3BvcnQoMCkKKyAgICAgICAgLCBtX2hhc1dpbGRjYXJkKGZh
bHNlKQorICAgIHsKKyAgICB9CisKKyAgICBPcmlnaW5QYXR0ZXJuKGNvbnN0IFN0cmluZyYgc2No
ZW1lLCBjb25zdCBTdHJpbmcmIGhvc3QsIHVuc2lnbmVkIHBvcnQsIGJvb2wgaGFzV2lsZGNhcmQp
CisgICAgICAgIDogbV9zY2hlbWUoc2NoZW1lKQorICAgICAgICAsIG1faG9zdChob3N0KQorICAg
ICAgICAsIG1fcG9ydChwb3J0KQorICAgICAgICAsIG1faGFzV2lsZGNhcmQoaGFzV2lsZGNhcmQp
CisgICAgeworICAgICAgICBBU1NFUlQobV9zY2hlbWUubG93ZXIoKSA9PSBtX3NjaGVtZSk7Cisg
ICAgICAgIEFTU0VSVChtX2hvc3QubG93ZXIoKSA9PSBtX2hvc3QpOworICAgIH0KKworICAgIHN0
YXRpYyBib29sIHBhcnNlKGNvbnN0IFVDaGFyKiYgcG9zLCBjb25zdCBVQ2hhciogZW5kLCBPcmln
aW5QYXR0ZXJuJiByZXN1bHQpCisgICAgeworICAgICAgICBjb25zdCBVQ2hhciogc3RhcnQgPSBw
b3M7CisKKyAgICAgICAgU3RyaW5nIHNjaGVtZTsKKyAgICAgICAgU3RyaW5nIGhvc3Q7CisgICAg
ICAgIHVuc2lnbmVkIHBvcnQgPSAwOworICAgICAgICBib29sIGhhc1dpbGRjYXJkID0gZmFsc2U7
CisKKyAgICAgICAgaWYgKGV4dHJhY3RTY2hlbWUocG9zLCBlbmQsIHNjaGVtZSkpIHsKKyAgICAg
ICAgICAgIGlmIChlbmQgLSBwb3MgPCAzCisgICAgICAgICAgICAgICAgfHwgKnBvcysrICE9ICc6
JworICAgICAgICAgICAgICAgIHx8ICpwb3MrKyAhPSAnLycKKyAgICAgICAgICAgICAgICB8fCAq
cG9zKysgIT0gJy8nKSB7CisgICAgICAgICAgICAgICAgcG9zID0gc3RhcnQ7CisgICAgICAgICAg
ICAgICAgc2NoZW1lID0gU3RyaW5nKCk7CisgICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgaWYgKHBvcyA9PSBlbmQpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAg
ICAgaWYgKCpwb3MgPT0gJyonKSB7CisgICAgICAgICAgICBoYXNXaWxkY2FyZCA9IHRydWU7Cisg
ICAgICAgICAgICArK3BvczsKKyAgICAgICAgICAgIGlmIChwb3MgPT0gZW5kCisgICAgICAgICAg
ICAgICAgfHwgKnBvcysrICE9ICcuJworICAgICAgICAgICAgICAgIHx8IHBvcyA9PSBlbmQpCisg
ICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFl
eHRyYWN0SG9zdChwb3MsIGVuZCwgaG9zdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICAgICAgaWYgKHBvcyAhPSBlbmQgJiYgIWV4dHJhY3RQb3J0KHBvcywgZW5kLCBwb3J0KSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAocG9zICE9IGVuZCkKKyAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICByZXN1bHQgPSBPcmlnaW5QYXR0ZXJu
KHNjaGVtZSwgaG9zdCwgcG9ydCwgaGFzV2lsZGNhcmQpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBib29sIG1hdGNoZXMoY29uc3QgS1VSTCYgdXJsKQorICAgIHsKKyAgICAg
ICAgaWYgKCFtX3NjaGVtZS5pc0VtcHR5KCkgJiYgdXJsLnByb3RvY29sKCkubG93ZXIoKSAhPSBt
X3NjaGVtZSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlm
ICghbV9oYXNXaWxkY2FyZCAmJiAhZXF1YWxJZ25vcmluZ0Nhc2UobV9ob3N0LCB1cmwuaG9zdCgp
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCisgICAgICAgIGlmIChtX2hh
c1dpbGRjYXJkKSB7CisgICAgICAgICAgICBTdHJpbmcgbG93ZXJjYXNlSG9zdCA9IHVybC5ob3N0
KCkubG93ZXIoKTsKKyAgICAgICAgICAgIGlmICghbG93ZXJjYXNlSG9zdC5lbmRzV2l0aChtX2hv
c3QpKQorICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIAorICAgICAg
ICAgICAgaWYgKG1faG9zdC5sZW5ndGgoKSA8IGxvd2VyY2FzZUhvc3QubGVuZ3RoKCkKKyAgICAg
ICAgICAgICAgICAmJiBsb3dlcmNhc2VIb3N0W2xvd2VyY2FzZUhvc3QubGVuZ3RoKCkgLSBtX2hv
c3QubGVuZ3RoKCkgLSAxXSAhPSAnLicpCisgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgICAgICB9CisgICAgICAgIAorICAgICAgICBpZiAobV9wb3J0ICYmIHVybC5wb3J0KCkgIT0g
bV9wb3J0KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYg
KCFtX3BvcnQgJiYgIWlzRGVmYXVsdFBvcnRGb3JQcm90b2NvbCh1cmwucG9ydCgpLCB1cmwucHJv
dG9jb2woKSkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgU3RyaW5nIG1fc2NoZW1lOworICAg
IFN0cmluZyBtX2hvc3Q7CisgICAgdW5zaWduZWQgbV9wb3J0OworICAgIGJvb2wgbV9oYXNXaWxk
Y2FyZDsKK307CisKIGNsYXNzIENTUERpcmVjdGl2ZSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
Q1NQRGlyZWN0aXZlKGNvbnN0IFN0cmluZyYgdmFsdWUpCi0gICAgICAgIDogbV92YWx1ZSh2YWx1
ZSkKICAgICB7CisgICAgICAgIHBhcnNlKHZhbHVlKTsKICAgICB9CiAKLSAgICBib29sIGFsbG93
cyhjb25zdCBLVVJMJikKKyAgICBib29sIGFsbG93cyhjb25zdCBLVVJMJiB1cmwpCiAgICAgewor
ICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1fcGF0dGVybnMuc2l6ZSgpOyArK2kpIHsK
KyAgICAgICAgICAgIGlmIChtX3BhdHRlcm5zW2ldLm1hdGNoZXModXJsKSkKKyAgICAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQogCiBwcml2YXRlOgotICAgIFN0cmluZyBtX3ZhbHVlOworICAgIHZvaWQgcGFyc2UoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIGNvbnN0IFVDaGFyKiBwb3MgPSB2YWx1ZS5j
aGFyYWN0ZXJzKCk7CisgICAgICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBwb3MgKyB2YWx1ZS5sZW5n
dGgoKTsKKworICAgICAgICB3aGlsZSAocG9zIDwgZW5kKSB7CisgICAgICAgICAgICB3aGlsZSAo
cG9zIDwgZW5kICYmIGlzQVNDSUlTcGFjZSgqcG9zKSkKKyAgICAgICAgICAgICAgICArK3BvczsK
KworICAgICAgICAgICAgaWYgKHBvcyA9PSBlbmQpCisgICAgICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBwYXR0ZXJuU3RhcnQgPSBwb3M7CisgICAgICAgICAg
ICB3aGlsZSAocG9zIDwgZW5kICYmICFpc0FTQ0lJU3BhY2UoKnBvcykpCisgICAgICAgICAgICAg
ICAgKytwb3M7CisgICAgICAgICAgICBjb25zdCBVQ2hhciogcGF0dGVybkVuZCA9IHBvczsKKwor
ICAgICAgICAgICAgT3JpZ2luUGF0dGVybiBwYXR0ZXJuOworICAgICAgICAgICAgaWYgKE9yaWdp
blBhdHRlcm46OnBhcnNlKHBhdHRlcm5TdGFydCwgcGF0dGVybkVuZCwgcGF0dGVybikpCisgICAg
ICAgICAgICAgICAgbV9wYXR0ZXJucy5hcHBlbmQocGF0dGVybik7CisgICAgICAgIH0KKyAgICB9
CisKKyAgICBWZWN0b3I8T3JpZ2luUGF0dGVybj4gbV9wYXR0ZXJuczsKIH07CiAKIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6Q29udGVudFNlY3VyaXR5UG9saWN5KCkKQEAgLTYzLDYgKzI4MCwxMSBA
QCB2b2lkIENvbnRlbnRTZWN1cml0eVBvbGljeTo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJp
bmcmIGhlYWRlcikKICAgICBtX2hhdmVQb2xpY3kgPSB0cnVlOwogfQogCitib29sIENvbnRlbnRT
ZWN1cml0eVBvbGljeTo6YWxsb3dKYXZhU2NyaXB0VVJMcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
ICFtX3NjcmlwdFNyYzsKK30KKwogYm9vbCBDb250ZW50U2VjdXJpdHlQb2xpY3k6OmNhbkxvYWRF
eHRlcm5hbFNjcmlwdEZyb21TcmMoY29uc3QgU3RyaW5nJiB1cmwpIGNvbnN0CiB7CiAgICAgcmV0
dXJuICFtX3NjcmlwdFNyYyB8fCBtX3NjcmlwdFNyYy0+YWxsb3dzKEtVUkwoUGFyc2VkVVJMU3Ry
aW5nLCB1cmwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGVudFNlY3Vy
aXR5UG9saWN5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRlbnRTZWN1cml0eVBvbGljeS5o
CmluZGV4IGM5Zjg5N2I2MmUxYjk3NGM2Y2QyMzAxOTUyMmE1MDA1Mzk2M2JmNjMuLjBlZWJkMDU4
ZmVmOTk2ZWY3N2EyZTM5OWYyNmNiYjg0MWY4MTNkNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGVudFNlY3VyaXR5UG9saWN5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZW50U2VjdXJpdHlQb2xpY3kuaApAQCAtMzMsMTYgKzMzLDIwIEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQ1NQRGlyZWN0aXZlOwogCi1jbGFzcyBDb250ZW50U2VjdXJpdHlQ
b2xpY3kgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRlbnRTZWN1cml0eVBvbGljeSk7
CitjbGFzcyBDb250ZW50U2VjdXJpdHlQb2xpY3kgOiBwdWJsaWMgUmVmQ291bnRlZDxDb250ZW50
U2VjdXJpdHlQb2xpY3k+IHsKIHB1YmxpYzoKLSAgICBDb250ZW50U2VjdXJpdHlQb2xpY3koKTsK
KyAgICBzdGF0aWMgUGFzc1JlZlB0cjxDb250ZW50U2VjdXJpdHlQb2xpY3k+IGNyZWF0ZSgpIHsg
cmV0dXJuIGFkb3B0UmVmKG5ldyBDb250ZW50U2VjdXJpdHlQb2xpY3kpOyB9CiAgICAgfkNvbnRl
bnRTZWN1cml0eVBvbGljeSgpOwogCiAgICAgdm9pZCBkaWRSZWNlaXZlSGVhZGVyKGNvbnN0IFN0
cmluZyYpOworCisgICAgYm9vbCBhbGxvd0phdmFTY3JpcHRVUkxzKCkgY29uc3Q7CisgICAgLy8g
RklYTUU6IFJlbmFtZSBjYW5Mb2FkRXh0ZXJuYWxTY3JpcHRGcm9tU3JjIHRvIGFsbG93U2NyaXB0
RnJvbVVSTC4KICAgICBib29sIGNhbkxvYWRFeHRlcm5hbFNjcmlwdEZyb21TcmMoY29uc3QgU3Ry
aW5nJiB1cmwpIGNvbnN0OwogCiBwcml2YXRlOgorICAgIENvbnRlbnRTZWN1cml0eVBvbGljeSgp
OworCiAgICAgdm9pZCBwYXJzZShjb25zdCBTdHJpbmcmKTsKICAgICB2b2lkIHBhcnNlRGlyZWN0
aXZlKGNvbnN0IFVDaGFyKiYgcG9zLCBjb25zdCBVQ2hhciogZW5kLCBWZWN0b3I8VUNoYXIsIDMy
PiYgbmFtZSwgVmVjdG9yPFVDaGFyLCA2ND4mIHZhbHVlKTsKICAgICB2b2lkIGVtaXREaXJlY3Rp
dmUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>