<?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>15313</bug_id>
          
          <creation_ts>2007-09-28 18:18:07 -0700</creation_ts>
          <short_desc>Same-origin check wrong when document.domain set</short_desc>
          <delta_ts>2007-12-20 14:40:19 -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>WebCore JavaScript</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>16523</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>beidson</cc>
    
    <cc>collinj</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ian.eng.webkit</cc>
    
    <cc>mrowe</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>57287</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 18:18:07 -0700</bug_when>
    <thetext>There are two issues here:

1) Two pages that have set their document.domain to the same value should only be considered the same origin if their protocols and port numbers match.  This is particularly important isolation between HTTP and HTTPS pages.

2) Once a page sets its document.domain, it should no longer be able to access pages that have not set their document.domain to the same value.  Otherwise, another page could inject script into that page and access the original origin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57288</commentid>
    <comment_count>1</comment_count>
      <attachid>16438</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 18:19:41 -0700</bug_when>
    <thetext>Created attachment 16438
Patch to fix same-origin check

This patch fixes both issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57289</commentid>
    <comment_count>2</comment_count>
      <attachid>16439</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 18:26:58 -0700</bug_when>
    <thetext>Created attachment 16439
Improved patch

There was a mistake in my previous patch.  The host check should only occur if both pages have not set their document.domain.  Also moved that check first for performance (as it is the common case).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57290</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-09-28 18:37:03 -0700</bug_when>
    <thetext>This would certainly need an HTTP layout test to exercise this code.  There are some good tests in LayoutTests/http/tests/security that you can use for a reference as to how these should work.  You should also be sure to include a ChangeLog entry in your patch, and set the review flag to ? when attaching it so that it will be included in the review queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57292</commentid>
    <comment_count>4</comment_count>
      <attachid>16440</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 19:05:14 -0700</bug_when>
    <thetext>Created attachment 16440
Test for first issue

Looks like you already have tests for the first issue:

LayoutTests/http/tests/security/cross-frame-access-protocol-explicit-domain.html
LayoutTests/http/tests/security/cross-frame-access-port-explicit-domain.html

But these test are wrong because they believe the access should be permitted.  Here is the attack:
1) Suppose there is an HTTPS site (www.example.com) that sets document.domain = &quot;example.com&quot;.
2) A network attacker redirects the browser to http://www.example.com/ and
  a) injects script to set document.domain = &quot;example.com&quot;, and
  b) opens a window to https://www.example.com/
3) Now the network attacker can inject script into the HTTPS page, stealing cookies and issuing banking transactions.

Firefox does not permit this access, see nsScriptSecurityManager::CheckSameOriginPrincipalInternal.

I&apos;ve attached fixes for the tests.  (Tests for the second issue coming shortly.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57294</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-09-28 19:12:46 -0700</bug_when>
    <thetext>Can you please include the changes as part of your patch, along with the updated test results.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57296</commentid>
    <comment_count>6</comment_count>
      <attachid>16441</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 19:19:09 -0700</bug_when>
    <thetext>Created attachment 16441
Test for second issue

There is a test for the second issue.

It&apos;s hard for me to create updated test results because I neither have a Mac nor a Windows machine.  I can create one patch with all of these changes, but that will take some time as I&apos;ll need to pull the entire tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57297</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-09-28 19:28:42 -0700</bug_when>
    <thetext>Ok, someone else can easily generate the updated results once your complete patch is available.  Thanks for the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57298</commentid>
    <comment_count>8</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-09-28 19:35:38 -0700</bug_when>
    <thetext>I believe Firefox does ignore the port, but not the protocol, when both documents set document.domain. We added ignoring the port deliberately to match them. 

I don&apos;t understand the exploit scenario. How do you &quot;inject script&quot; unless you already have access to example.com, in which case an XSS exploit has already occurred?

I also don&apos;t see how #2 from the original description applies. document.domain can only be set to either the true domain or a suffix of the true domain. For example, www.foo.com can set document.domain to foo.com, but not to bar.com. How is it exploitable to still let it access documents where the true domain (from the URL) is www.foo.com?

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57299</commentid>
    <comment_count>9</comment_count>
      <attachid>16442</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-28 20:06:51 -0700</bug_when>
    <thetext>Created attachment 16442
Changes all rolled into one patch

I&apos;ve attached all the changes in one patch.

&gt; I believe Firefox does ignore the port, but not the protocol, when both
&gt; documents set document.domain.

This is possible.  I can run that test on Firefox.  It is essential, however, to check the protocol in order to avoid the HTTPS attack described.

&gt; I don&apos;t understand the exploit scenario. How do you &quot;inject script&quot; unless
&gt; you already have access to example.com

HTTPS is designed to be secure against an active network attacker.  An active network attacker can trivially inject script into an HTTP page as it travels across the network.  The issue is that he can then escalate to injecting script into an HTTPS page.  (Imagine a wireless HotSpot in a coffee shop or an airport.)

&gt; I also don&apos;t see how #2 from the original description applies.

I&apos;ve added an attack scenario in the ChangeLog.  The same-origin policy treats separate subdomains as mutually distrusting but allows a controlled form of communication via document.domain.  One common use of this is in mashups, where www.mashup.com and gadget.mashup.com communicate via iframes with document.domain set to &quot;mashup.com&quot; (but, of course, www.mashup.com doesn&apos;t fully trust gadget.mashup.com).  For detailed discussion, see &lt;http://www.collinjackson.com/research/papers/fp801-jackson.pdf&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57389</commentid>
    <comment_count>10</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-09-29 18:24:51 -0700</bug_when>
    <thetext>Can you provide attack scenarios in the form of test cases, not just a ChangeLog entry? Also, I am almost certain that your statement about how Firefox treats the port when document.domain is set are wrong. Given this, I&apos;d really like test scenarios that can be replicated so we can make sure the behavior is right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57396</commentid>
    <comment_count>11</comment_count>
      <attachid>16442</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-09-29 19:26:52 -0700</bug_when>
    <thetext>Comment on attachment 16442
Changes all rolled into one patch

Doing a port equality check for the domain relaxed case is inconsistent with FireFox and is known to break enterprise (SAP) apps.  Please also include tests for the second situation described in changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57413</commentid>
    <comment_count>12</comment_count>
      <attachid>16466</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-29 23:34:00 -0700</bug_when>
    <thetext>Created attachment 16466
Matches FF2 and IE6 with tests

Thanks go to Collin Jackson for running these test.  Here are how some other browsers behave:

Firefox 2:
Protocol mismatch, document.domain set: Denied.
Port mismatch, document.domain set: Allowed.
Only one page has set document.domain: Denied.

Internet Explorer 6:
Protocol mismatch, document.domain set: Denied.
Port mismatch, document.domain set: Allowed.
Only one page has set document.domain: Denied.

Internet Explorer 7:
Protocol mismatch, document.domain set: Denied.
Port mismatch, document.domain set: Denied.
Only one page has set document.domain: Denied.

Opera 9:
Protocol mismatch, document.domain set: Denied.
Port mismatch, document.domain set: Denied.
Only one page has set document.domain: Allowed.

I&apos;ve updated the patch to match the behavior of Firefox 2 and IE6.  The scenarios where only one page has set document.domain are covered by two new tests:

http/tests/security/cross-frame-access-child-explicit-domain.html
http/tests/security/cross-frame-access-parent-explicit-domain.html

Also, the patch updates the existing document.domain, protocol-mismatch test:

http/tests/security/cross-frame-access-protocol-explicit-domain.html

The port-mismatch case is already covered by a LayoutTest.

I&apos;m not marking the older patch as obsolete because you may decide to
follow IE7s lead and be more secure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57513</commentid>
    <comment_count>13</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-09-30 16:49:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/5514516&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57515</commentid>
    <comment_count>14</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-09-30 17:09:22 -0700</bug_when>
    <thetext>Adam, this patch is looking awesome, thanks for all your help.  The only comment I have left is that since this code is in question, it might be helpful to put a comment in the code (and in the changelog) as to how we differ from other browsers.  Again, great research and great patch!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57524</commentid>
    <comment_count>15</comment_count>
      <attachid>16481</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-09-30 21:38:01 -0700</bug_when>
    <thetext>Created attachment 16481
Added comments

Thanks.  I added a comment explaining how we differ from other browsers and noted the differences in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>57683</commentid>
    <comment_count>16</comment_count>
      <attachid>16481</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-10-02 16:36:55 -0700</bug_when>
    <thetext>Comment on attachment 16481
Added comments

r+ for the feature branch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58004</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2007-10-07 01:58:37 -0700</bug_when>
    <thetext>Wow.  Let me underscore Wenig&apos;s comment:  this is an awesome patch.  Nice comments, clean code.

I tried to land this tonight and when I ran run-webkit-tests it kept hanging on these test cases.  I think something is wrong with the tests (maybe missing a layoutTestController.notifyDone()?)

Anyway, we&apos;ll need to fix that before landing.  I assume you ran the tests locally?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58012</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-10-07 03:19:43 -0700</bug_when>
    <thetext>&gt; I assume you ran the tests locally?

Unfortunately, I&apos;m unable to run the tests locally because I only have a Linux box.  The tests are very similar to the existing cross-frame-access-* tests.  The issue could be something simple, but I don&apos;t have a good way to debug it here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>58313</commentid>
    <comment_count>19</comment_count>
      <attachid>16481</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-10-11 11:23:38 -0700</bug_when>
    <thetext>Comment on attachment 16481
Added comments

I believe there is a bug with this patch that is showing up in the layout test.  If you set document.domain it seems you can no longer access the contents of a frame without a domain, such as an iframe without a src.  I will continue to investigate this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>59765</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-10-28 22:12:50 -0700</bug_when>
    <thetext>If it would be helpful, I can track down a Windows machine and investigate this, but I don&apos;t want to duplicate effort if you&apos;re making progress.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60098</commentid>
    <comment_count>21</comment_count>
      <attachid>17002</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-11-02 15:18:35 -0700</bug_when>
    <thetext>Created attachment 17002
Update for SecurityOrigin class

The new SecurityOrigin::allowAccessFrom function has the same bugs that Window::isSafeScript used to.  Attached is an updated patch.  I haven&apos;t investigated whether there is still an issue with empty frames.

Also, the name of the new function is very confusing.  &quot;allowsAccessFrom&quot; sounds like the parameter going to act on the object, but the function is written (and called) in the reverse sense, i.e. &quot;allowAccessTo&quot;.  This only really matters for the &quot;file&quot; test (the others are symmetric):

if (m_protocol == &quot;file&quot;)
    return true;

Getting this backwards would allow web sites to read your local file system (for example, /etc/passwd).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60213</commentid>
    <comment_count>22</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-11-03 22:43:18 -0700</bug_when>
    <thetext>This updated patch unfortunately suffers from the same issue as the last one in that it breaks some tests.  I am going to try and fix the issues and get a new patch up for review shortly.  

You are correct that the name of the method allowsAccessFrom() is confusing.  After discussing it with Maciej, I think a better name would be canAccess() so that someOrigin.canAccess(otherOrigin).  Adam, does this seem clearer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60219</commentid>
    <comment_count>23</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-11-04 00:48:09 -0700</bug_when>
    <thetext>&gt; After discussing it with Maciej, I think a better name would be canAccess() so
&gt; that someOrigin.canAccess(otherOrigin).  Adam, does this seem clearer?

Yeah, that sounds great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>60266</commentid>
    <comment_count>24</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-11-04 17:51:47 -0800</bug_when>
    <thetext>Landed a change which changed the function name to canAccess in r27433.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63561</commentid>
    <comment_count>25</comment_count>
      <attachid>17765</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-12-06 23:08:09 -0800</bug_when>
    <thetext>Created attachment 17765
Work in progress patch

I think I understand why the tests were breaking.  In the empty frame case when one frame sets its document.domain, the old code &quot;worked&quot; because it incorrectly allowed access.  In Firefox, the empty frame shares an nsIPrincipal with its parent.  Thus, when one sets its document.domain, the other does as well.  See test case at:

http://crypto.stanford.edu/~abarth/research/webkit/empty-frame/

When a WebKit frame inherits its SecurityOrigin from another frame, it makes a copy, instead of taking a reference.  To match the Firefox behavior, the attached patch changes SecurityOrigin to be RefCounted and shares some SecurityOrigins between the Documents.

Another detail is that Documents can no longer cache their domain property.  Instead, they must obtain them from their SecurityOrigin so that changes made by one Document are reflected in the DOM of the other Documents.

This patch is still a work in progress because I don&apos;t understand the role setDomainInternal plays.  It&apos;s called exactly once (in FrameLoader::checkCallImplicitClose), but the explanation refers to rdar bugs to which I don&apos;t seem to have access.

This patch is really a bit more complex than I&apos;d like.  Is anyone with more experience interested in taking the ball from here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63639</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-12-07 16:52:30 -0800</bug_when>
    <thetext>Turns out the comments refer to KHTML bugs, not rdar bugs:

http://bugs.kde.org/show_bug.cgi?id=22039
http://bugs.kde.org/show_bug.cgi?id=44162

The code appears to just be completely wrong, see test case:

http://crypto.stanford.edu/~abarth/research/webkit/frames/

I&apos;ll finish up the patch and hopefully have something for review in a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>63847</commentid>
    <comment_count>27</comment_count>
      <attachid>17824</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-12-10 12:05:22 -0800</bug_when>
    <thetext>Created attachment 17824
Patch for this issue

Here is a patch for this issue.  Hopefully it fixes both the security issue and the broken tests.  There are two caveats:

1) I can&apos;t get the LayoutTests working on my Linux machine, so I haven&apos;t been able to run the patch through the regression suite.

2) I&apos;m not sure how threading works in storage/Database land.  It&apos;s possible the Database object needs to make a copy of the SecurityOrigin instead of just taking a reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64435</commentid>
    <comment_count>28</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-12-16 16:44:25 -0800</bug_when>
    <thetext>Sam says this looks good but he wants to discuss the database aspect with Brady.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64601</commentid>
    <comment_count>29</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2007-12-17 19:23:06 -0800</bug_when>
    <thetext>Great.

The existing calls to setDomainInternal that the patch removes are actually a pretty serve security vulnerability, sometimes leading to arbitrary script execution in the parent&apos;s origin.  (Although the attacker does need to do a bit more work than shown in the demo above.)

I don&apos;t know what your patching plans are, but you might consider pushing at least that part out to your customers at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64872</commentid>
    <comment_count>30</comment_count>
      <attachid>17824</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-12-20 14:36:57 -0800</bug_when>
    <thetext>Comment on attachment 17824
Patch for this issue

I think this looks great.  I am going to land it ASAP.  Thanks for all the hard work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64873</commentid>
    <comment_count>31</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2007-12-20 14:40:19 -0800</bug_when>
    <thetext>Landed in r28912.  Thanks again.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16438</attachid>
            <date>2007-09-28 18:19:41 -0700</date>
            <delta_ts>2007-09-28 18:26:58 -0700</delta_ts>
            <desc>Patch to fix same-origin check</desc>
            <filename>check-protocol.patch</filename>
            <type>text/plain</type>
            <size>1260</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqc193aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqc193aW5kb3cuY3BwCShyZXZp
c2lvbiAyNTgwMSkKKysrIGtqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjgsMTQg
KzkyOCwxNiBAQAogICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodGhpc1VSTC5wcm90b2NvbCgpLCAi
ZGF0YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCAiZGF0YSIpKQog
ICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAodGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJbkRP
TSgpICYmIGFjdERvY3VtZW50LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7Ci0gICAgaWYgKHRoaXNE
b2N1bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQotICAgICAgcmV0dXJu
IHRydWU7CisgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhY3RVUkwucHJvdG9jb2woKSwgdGhpc1VS
TC5wcm90b2NvbCgpKSAmJiBhY3RVUkwucG9ydCgpID09IHRoaXNVUkwucG9ydCgpKSB7CisgICAg
aWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSAmJiBhY3REb2N1bWVudC0+ZG9t
YWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluKCkgPT0g
YWN0RG9jdW1lbnQtPmRvbWFpbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9IGVsc2Ug
eworICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5ob3N0KCksIHRoaXNVUkwuaG9z
dCgpKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQogICB9CiAKLSAgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKGFjdFVSTC5ob3N0KCksIHRoaXNVUkwuaG9zdCgpKSAmJiBlcXVhbElnbm9yaW5n
Q2FzZShhY3RVUkwucHJvdG9jb2woKSwgdGhpc1VSTC5wcm90b2NvbCgpKSAmJiBhY3RVUkwucG9y
dCgpID09IHRoaXNVUkwucG9ydCgpKQotICAgIHJldHVybiB0cnVlOwotCiAgIGlmIChJbnRlcnBy
ZXRlcjo6c2hvdWxkUHJpbnRFeGNlcHRpb25zKCkpIHsKICAgICAgIHByaW50ZigiVW5zYWZlIEph
dmFTY3JpcHQgYXR0ZW1wdCB0byBhY2Nlc3MgZnJhbWUgd2l0aCBVUkwgJXMgZnJvbSBmcmFtZSB3
aXRoIFVSTCAlcy4gRG9tYWlucywgcHJvdG9jb2xzIGFuZCBwb3J0cyBtdXN0IG1hdGNoLlxuIiwg
CiAgICAgICAgICAgICAgdGhpc1VSTC51cmwoKS5sYXRpbjEoKSwgYWN0VVJMLnVybCgpLmxhdGlu
MSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16439</attachid>
            <date>2007-09-28 18:26:58 -0700</date>
            <delta_ts>2007-09-28 20:06:51 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>check-protocol.patch</filename>
            <type>text/plain</type>
            <size>1337</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IGtqc193aW5kb3cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqc193aW5kb3cuY3BwCShyZXZp
c2lvbiAyNTgwMSkKKysrIGtqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MjgsMTQg
KzkyOCwxNyBAQAogICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodGhpc1VSTC5wcm90b2NvbCgpLCAi
ZGF0YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCAiZGF0YSIpKQog
ICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAodGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJbkRP
TSgpICYmIGFjdERvY3VtZW50LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7Ci0gICAgaWYgKHRoaXNE
b2N1bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQotICAgICAgcmV0dXJu
IHRydWU7CisgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhY3RVUkwucHJvdG9jb2woKSwgdGhpc1VS
TC5wcm90b2NvbCgpKSAmJiBhY3RVUkwucG9ydCgpID09IHRoaXNVUkwucG9ydCgpKSB7CisgICAg
aWYgKCF0aGlzRG9jdW1lbnQtPmRvbWFpbldhc1NldEluRE9NKCkgJiYgIWFjdERvY3VtZW50LT5k
b21haW5XYXNTZXRJbkRPTSgpKSB7CisgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0VVJM
Lmhvc3QoKSwgdGhpc1VSTC5ob3N0KCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9Cisg
ICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSAmJiBhY3REb2N1bWVudC0+
ZG9tYWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluKCkg
PT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAg
IH0KIAotICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0VVJMLmhvc3QoKSwgdGhpc1VSTC5ob3N0
KCkpICYmIGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCB0aGlzVVJMLnByb3Rv
Y29sKCkpICYmIGFjdFVSTC5wb3J0KCkgPT0gdGhpc1VSTC5wb3J0KCkpCi0gICAgcmV0dXJuIHRy
dWU7Ci0KICAgaWYgKEludGVycHJldGVyOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkgewogICAg
ICAgcHJpbnRmKCJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3aXRo
IFVSTCAlcyBmcm9tIGZyYW1lIHdpdGggVVJMICVzLiBEb21haW5zLCBwcm90b2NvbHMgYW5kIHBv
cnRzIG11c3QgbWF0Y2guXG4iLCAKICAgICAgICAgICAgICB0aGlzVVJMLnVybCgpLmxhdGluMSgp
LCBhY3RVUkwudXJsKCkubGF0aW4xKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16440</attachid>
            <date>2007-09-28 19:05:14 -0700</date>
            <delta_ts>2007-09-28 20:06:51 -0700</delta_ts>
            <desc>Test for first issue</desc>
            <filename>test-for-issue1.patch</filename>
            <type>text/plain</type>
            <size>2147</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IGNyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBjcm9zcy1mcmFtZS1hY2Nlc3MtcHJvdG9jb2wtZXhwbGljaXQtZG9tYWlu
Lmh0bWwJKHJldmlzaW9uIDI1ODAxKQorKysgY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3RvY29sLWV4
cGxpY2l0LWRvbWFpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw5ICsxMiw5IEBACiAKICAg
ICB2YXIgdXJsID0gImh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWlmcmFtZS13aXRoLWV4cGxpY2l0LWRvbWFpbi1zZXQuaHRtbCI7CiAgICAgdmFy
IGlmcmFtZUlkID0iYUZyYW1lIjsKLSAgICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3Mg
ZnJhbWUgYWNjZXNzIHRvIGh0dHBzIGZyb20gaHR0cCwgYWZ0ZXIgZXhwbGljaXRseSBzZXR0aW5n
IGRvY3VtZW50LmRvbWFpbiwgd2FzIGFsbG93ZWQhIjsKLSAgICB2YXIgZmFpbE1lc3NhZ2UgPSAi
RmFpbDogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGh0dHBzIGZyb20gaHR0cCwgYWZ0ZXIgZXhwbGlj
aXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiwgd2FzIGRlbmllZC4iOwotICAgIGNhbkFjY2Vz
c0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBhc3NNZXNzYWdlLCBmYWlsTWVzc2FnZSk7CisgICAgdmFy
IHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0
dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQu
IjsKKyAgICB2YXIgZmFpbE1lc3NhZ2UgPSAiRmFpbDogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGh0
dHBzIGZyb20gaHR0cCwgYWZ0ZXIgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiwg
d2FzIGFsbG93ZWQuIjsKKyAgICBjYW5ub3RBY2Nlc3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNz
TWVzc2FnZSwgZmFpbE1lc3NhZ2UpOwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4
OiBjcm9zcy1mcmFtZS1hY2Nlc3MtcG9ydC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBjcm9zcy1mcmFtZS1hY2Nlc3MtcG9ydC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNp
b24gMjU4MDEpCisrKyBjcm9zcy1mcmFtZS1hY2Nlc3MtcG9ydC1leHBsaWNpdC1kb21haW4uaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTIsOSArMTIsOSBAQAogCiAgICAgdmFyIHVybCA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS13
aXRoLWV4cGxpY2l0LWRvbWFpbi1zZXQuaHRtbCI7CiAgICAgdmFyIGlmcmFtZUlkID0iYUZyYW1l
IjsKLSAgICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGEg
ZGlmZmVyZW50IHBvcnQsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4s
IHdhcyBhbGxvd2VkISI7Ci0gICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1l
IGFjY2VzcyB0byBhIGRpZmZlcmVudCBwb3J0LCBhZnRlciBleHBsaWNpdGx5IHNldHRpbmcgZG9j
dW1lbnQuZG9tYWluLCB3YXMgZGVuaWVkLiI7Ci0gICAgY2FuQWNjZXNzRnJhbWUodXJsLCBpZnJh
bWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKKyAgICB2YXIgcGFzc01lc3NhZ2UgPSAi
UEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGEgZGlmZmVyZW50IHBvcnQsIGFmdGVyIGV4cGxp
Y2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQuIjsKKyAgICB2YXIgZmFp
bE1lc3NhZ2UgPSAiRmFpbDogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGEgZGlmZmVyZW50IHBvcnQs
IGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBhbGxvd2VkLiI7
CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxN
ZXNzYWdlKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16441</attachid>
            <date>2007-09-28 19:19:09 -0700</date>
            <delta_ts>2007-09-28 20:06:51 -0700</delta_ts>
            <desc>Test for second issue</desc>
            <filename>test-for-issue2.patch</filename>
            <type>text/plain</type>
            <size>1797</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IGNyb3NzLWZyYW1lLWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRt
bAkocmV2aXNpb24gMCkKKysrIGNyb3NzLWZyYW1lLWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9t
YWluLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzxodG1sPgorPGhlYWQ+Cisg
ICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9jcm9zcy1mcmFtZS1hY2Nlc3MuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIGlkPSJhRnJhbWUiPjwvaWZyYW1lPgorPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorICAgIC8vIEV4cGxpY2l0bHkgc2V0IHRoZSBk
b21haW4uCisgICAgZG9jdW1lbnQuZG9tYWluID0gIjEyNy4wLjAuMSI7CisKKyAgICB2YXIgdXJs
ID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUt
aWZyYW1lLmh0bWwiOworICAgIHZhciBpZnJhbWVJZCA9ImFGcmFtZSI7CisgICAgdmFyIHBhc3NN
ZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyBmcm9tIGZyYW1lIGV4cGxpY2l0bHkg
c2V0dGluZyBkb2N1bWVudC5kb21haW4gd2FzIGRlbmllZC4iOworICAgIHZhciBmYWlsTWVzc2Fn
ZSA9ICJGYWlsOiBDcm9zcyBmcmFtZSBhY2Nlc3MgZnJvbSBmcmFtZSBleHBsaWNpdGx5IHNldHRp
bmcgZG9jdW1lbnQuZG9tYWluIHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUo
dXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRv
bWFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIGNyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNp
dC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIGNyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1l
eHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWFjY2Vzcy5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImFGcmFtZSI+PC9pZnJh
bWU+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgdmFyIHVybCA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFt
ZS13aXRoLWV4cGxpY2l0LWRvbWFpbi1zZXQuaHRtbCI7CisgICAgdmFyIGlmcmFtZUlkID0iYUZy
YW1lIjsKKyAgICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRv
IGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4gd2FzIGRlbmllZC4iOwor
ICAgIHZhciBmYWlsTWVzc2FnZSA9ICJGYWlsOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gZnJhbWUg
ZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgYWxsb3dlZC4iOworICAgIGNh
bm5vdEFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBhc3NNZXNzYWdlLCBmYWlsTWVzc2FnZSk7
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16442</attachid>
            <date>2007-09-28 20:06:51 -0700</date>
            <delta_ts>2007-11-02 15:18:35 -0700</delta_ts>
            <desc>Changes all rolled into one patch</desc>
            <filename>fix-document-domain.patch</filename>
            <type>text/plain</type>
            <size>9356</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24gMjU4MDEpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Mjgs
MTQgKzkyOCwxNyBAQAogICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodGhpc1VSTC5wcm90b2NvbCgp
LCAiZGF0YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCAiZGF0YSIp
KQogICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAodGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJ
bkRPTSgpICYmIGFjdERvY3VtZW50LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7Ci0gICAgaWYgKHRo
aXNEb2N1bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQotICAgICAgcmV0
dXJuIHRydWU7CisgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhY3RVUkwucHJvdG9jb2woKSwgdGhp
c1VSTC5wcm90b2NvbCgpKSAmJiBhY3RVUkwucG9ydCgpID09IHRoaXNVUkwucG9ydCgpKSB7Cisg
ICAgaWYgKCF0aGlzRG9jdW1lbnQtPmRvbWFpbldhc1NldEluRE9NKCkgJiYgIWFjdERvY3VtZW50
LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7CisgICAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0
VVJMLmhvc3QoKSwgdGhpc1VSTC5ob3N0KCkpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSAmJiBhY3REb2N1bWVu
dC0+ZG9tYWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWlu
KCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAgIH0KIAotICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0VVJMLmhvc3QoKSwgdGhpc1VSTC5o
b3N0KCkpICYmIGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCB0aGlzVVJMLnBy
b3RvY29sKCkpICYmIGFjdFVSTC5wb3J0KCkgPT0gdGhpc1VSTC5wb3J0KCkpCi0gICAgcmV0dXJu
IHRydWU7Ci0KICAgaWYgKEludGVycHJldGVyOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkgewog
ICAgICAgcHJpbnRmKCJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3
aXRoIFVSTCAlcyBmcm9tIGZyYW1lIHdpdGggVVJMICVzLiBEb21haW5zLCBwcm90b2NvbHMgYW5k
IHBvcnRzIG11c3QgbWF0Y2guXG4iLCAKICAgICAgICAgICAgICB0aGlzVVJMLnVybCgpLmxhdGlu
MSgpLCBhY3RVUkwudXJsKCkubGF0aW4xKCkpOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAxKQorKysgV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NCBAQAorMjAwNy0wOS0yOCAg
QWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUzMTMKKworICAgICAgICBUaGUgc2FtZS1vcmlnaW4gY2hlY2sgd2FzIGluY29ycmVj
dCBpbiB0d28gY2FzZXMgKGJvdGggZml4ZWQgaW4gdGhpcworICAgICAgICBwYXRjaCk6CisKKyAg
ICAgICAgQSkgSWYgYm90aCB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0IGhhdmUgc2V0IHRoZWly
IGRvY3VtZW50LmRvbWFpbgorICAgICAgICAgICB0byB0aGUgc2FtZSB2YWx1ZSwgdGhlIHByb3Rv
Y29sIGFuZCBwb3J0IG11c3QgYWxzbyBtYXRjaCBpbiBvcmRlcgorICAgICAgICAgICBmb3IgYWNj
ZXNzIHRvIGJlIGFsbG93ZWQuICBXaXRob3V0IHRoaXMgcmVxdWlyZW1lbnQsIHRoZSBicm93c2Vy
CisgICAgICAgICAgIGlzIHZ1bG5lcmFibGUgdG8gdGhlIGZvbGxvd2luZyBhdHRhY2s6CisKKyAg
ICAgICAgICAgMSkgU3VwcG9zZSB0aGVyZSBpcyBhbiBIVFRQUyBzaXRlICh3d3cuZXhhbXBsZS5j
b20pIHRoYXQgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5j
b20iLgorICAgICAgICAgICAyKSBBIG5ldHdvcmsgYXR0YWNrZXIgcmVkaXJlY3RzIHRoZSBicm93
c2VyIHRvIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vCisgICAgICAgICAgICAgIGEpIGluamVjdHMg
c2NyaXB0IHRvIHNldCBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLCBhbmQKKyAgICAg
ICAgICAgICAgYikgb3BlbnMgYSB3aW5kb3cgdG8gaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vCisg
ICAgICAgICAgIDMpIE5vdyB0aGUgbmV0d29yayBhdHRhY2tlciBjYW4gaW5qZWN0IHNjcmlwdCBp
bnRvIHRoZSBIVFRQUyBwYWdlLAorICAgICAgICAgICAgICBzdGVhbGluZyBjb29raWVzIGFuZCBp
c3N1aW5nIGJhbmtpbmcgdHJhbnNhY3Rpb25zLgorCisgICAgICAgIEIpIElmIG9ubHkgb25lIG9m
IHRoZSBzb3VyY2UgYW5kIHRhcmdldCBoYXMgc2V0IGRvY3VtZW50LmRvbWFpbiwgdGhlbgorICAg
ICAgICAgICBhY2Nlc3Mgc2hvdWxkIGJlIGRlbmllZC4gIFdpdGggdGhpcyBiZWhhdmlvciwgdGhl
IGJyb3dzZXIgaXMKKyAgICAgICAgICAgdnVsbmVyYWJsZSB0byB0aGUgZm9sbG93aW5nIGF0dGFj
azoKKworICAgICAgICAgICAxKSBTdXBwb3NlIGh0dHA6Ly9mb28uZXhhbXBsZS5jb20vIG9wZW5z
IGFuIGlmcmFtZSB0bworICAgICAgICAgICAgICBodHRwOi8vZm9vLmV4YW1wbGUuY29tL2ZyYW1l
Lmh0bWwgdGhhdAorICAgICAgICAgICAgICBhKSBzZXRzIGRvY3VtZW50LmRvbWFpbiA9ICJleGFt
cGxlLmNvbSIsIGFuZAorICAgICAgICAgICAgICBiKSBvcGVucyBhbiBpZnJhbWUgdG8gaHR0cDov
L2Jhci5leGFtcGxlLmNvbS8KKyAgICAgICAgICAgICAgVGhpcyBpcyBhIGNvbW1vbiB1c2FnZSBv
ZiBkb2N1bWVudC5kb21haW4gZm9yIGNyb3NzLWRvbWFpbgorICAgICAgICAgICAgICBjb21tdW5p
Y2F0aW9uLCBzZWUgZm9yIGV4YW1wbGU6CisgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5jb2xs
aW5qYWNrc29uLmNvbS9yZXNlYXJjaC9wYXBlcnMvZnA4MDEtamFja3Nvbi5wZGYKKyAgICAgICAg
ICAgMikgVGhlIGlubmVyLW1vc3QgaWZyYW1lLCB3aGljaCBpcyBmcm9tIGJhci5leGFtcGxlLmNv
bSwgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLgor
ICAgICAgICAgICAzKSBOb3cgdGhlIGlubmVyLW1vc3QgaWZyYW1lIGNhbiBpbmplY3Qgc2NyaXB0
IGludG8gdGhlIG1pZGRsZQorICAgICAgICAgICAgICBpZnJhbWUgKHNheSB2aWEgZG9jdW1lbnQu
d3JpdGUpLiAgVGhpcyBiYXIuZXhhbXBsZS5jb20gc2NyaXB0CisgICAgICAgICAgICAgIG5vdyBo
YXMgYWNjZXNzIHRvIHRoZSBvdXRlci1tb3N0IGZyYW1lIChmcm9tIGZvby5leGFtcGxlLmNvbSku
CisKKyAgICAgICAgQm90aCB0aGVzZSBjaGFuZ2VzIGNhdXNlIFdlYktpdCB0byBtYXRjaCB0aGUg
YmVoYXZpb3Igb2YgRmlyZWZveCBhbmQKKyAgICAgICAgSUUgaW4gdGhlc2UgY2FzZXMuICBUaGlz
IHBhdGNoIGluY2x1ZGVzIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGJvdGgKKyAgICAgICAgaXNzdWVz
LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wb3J0
LWV4cGxpY2l0LWRvbWFpbi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAorCisgICAg
ICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvdzo6
aXNTYWZlU2NyaXB0KToKKwogMjAwNy0wOS0yOCAgS2V2aW4gRGVja2VyICA8a2RlY2tlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1k
b21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LWNoaWxkLWV4cGxpY2l0LWRvbWFpbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBA
Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY3Jvc3MtZnJhbWUt
YWNjZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0iYUZyYW1l
Ij48L2lmcmFtZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICB2YXIg
dXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJh
bWUtaWZyYW1lLXdpdGgtZXhwbGljaXQtZG9tYWluLXNldC5odG1sIjsKKyAgICB2YXIgaWZyYW1l
SWQgPSJhRnJhbWUiOworICAgIHZhciBwYXNzTWVzc2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgdG8gZnJhbWUgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVu
aWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0
byBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluIHdhcyBhbGxvd2VkLiI7
CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxN
ZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRv
bWFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1l
LWFjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImFGcmFt
ZSI+PC9pZnJhbWU+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgLy8g
RXhwbGljaXRseSBzZXQgdGhlIGRvbWFpbi4KKyAgICBkb2N1bWVudC5kb21haW4gPSAiMTI3LjAu
MC4xIjsKKworICAgIHZhciB1cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUuaHRtbCI7CisgICAgdmFyIGlmcmFtZUlkID0iYUZy
YW1lIjsKKyAgICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGZy
b20gZnJhbWUgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7
CisgICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyBmcm9tIGZy
YW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4gd2FzIGFsbG93ZWQuIjsKKyAg
ICBjYW5ub3RBY2Nlc3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3Nh
Z2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21h
aW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24g
MjU4MDEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIs
OSArMTIsOSBAQAogCiAgICAgdmFyIHVybCA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3Vy
aXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtd2l0aC1leHBsaWNpdC1kb21haW4tc2V0
Lmh0bWwiOwogICAgIHZhciBpZnJhbWVJZCA9ImFGcmFtZSI7Ci0gICAgdmFyIHBhc3NNZXNzYWdl
ID0gIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4
cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBhbGxvd2VkISI7Ci0gICAgdmFy
IGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0
dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQu
IjsKLSAgICBjYW5BY2Nlc3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1l
c3NhZ2UpOworICAgIHZhciBwYXNzTWVzc2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3Mg
dG8gaHR0cHMgZnJvbSBodHRwLCBhZnRlciBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9t
YWluLCB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZy
YW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBk
b2N1bWVudC5kb21haW4sIHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJs
LCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKIDwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtcG9ydC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wb3J0LWV4cGxp
Y2l0LWRvbWFpbi5odG1sCShyZXZpc2lvbiAyNTgwMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBvcnQtZXhwbGljaXQtZG9tYWluLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEyLDkgKzEyLDkgQEAKIAogICAgIHZhciB1cmwgPSAiaHR0cDov
LzEyNy4wLjAuMTo4MDgwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtd2l0
aC1leHBsaWNpdC1kb21haW4tc2V0Lmh0bWwiOwogICAgIHZhciBpZnJhbWVJZCA9ImFGcmFtZSI7
Ci0gICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBhIGRp
ZmZlcmVudCBwb3J0LCBhZnRlciBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3
YXMgYWxsb3dlZCEiOwotICAgIHZhciBmYWlsTWVzc2FnZSA9ICJGYWlsOiBDcm9zcyBmcmFtZSBh
Y2Nlc3MgdG8gYSBkaWZmZXJlbnQgcG9ydCwgYWZ0ZXIgZXhwbGljaXRseSBzZXR0aW5nIGRvY3Vt
ZW50LmRvbWFpbiwgd2FzIGRlbmllZC4iOwotICAgIGNhbkFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1l
SWQsIHBhc3NNZXNzYWdlLCBmYWlsTWVzc2FnZSk7CisgICAgdmFyIHBhc3NNZXNzYWdlID0gIlBB
U1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBhIGRpZmZlcmVudCBwb3J0LCBhZnRlciBleHBsaWNp
dGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxN
ZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBhIGRpZmZlcmVudCBwb3J0LCBh
ZnRlciBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3YXMgYWxsb3dlZC4iOwor
ICAgIGNhbm5vdEFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBhc3NNZXNzYWdlLCBmYWlsTWVz
c2FnZSk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1
ODAxKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MTQgQEAKKzIwMDctMDktMjggIEFkYW0gQmFydGggIDxoazk1NjVAZ21haWwuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisJCVVwZGF0ZSBMYXlvdXRUZXN0cyBm
b3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKKworICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0
LWRvbWFpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBvcnQtZXhwbGljaXQt
ZG9tYWluLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtcHJvdG9jb2wtZXhwbGljaXQtZG9tYWluLmh0bWw6CisKIDIwMDctMDktMjggIEFudHRp
IEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5
IGJkYXNoLgo=
</data>
<flag name="review"
          id="6920"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16466</attachid>
            <date>2007-09-29 23:34:00 -0700</date>
            <delta_ts>2007-09-30 21:38:01 -0700</delta_ts>
            <desc>Matches FF2 and IE6 with tests</desc>
            <filename>fix-document-domain.patch</filename>
            <type>text/plain</type>
            <size>8027</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24gMjU4MDEpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Mjgs
MTQgKzkyOCwxNyBAQAogICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodGhpc1VSTC5wcm90b2NvbCgp
LCAiZGF0YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCAiZGF0YSIp
KQogICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAodGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJ
bkRPTSgpICYmIGFjdERvY3VtZW50LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7Ci0gICAgaWYgKHRo
aXNEb2N1bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQotICAgICAgcmV0
dXJuIHRydWU7CisgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhY3RVUkwucHJvdG9jb2woKSwgdGhp
c1VSTC5wcm90b2NvbCgpKSkgeworICAgIGlmICghdGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJ
bkRPTSgpICYmICFhY3REb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYg
KGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5ob3N0KCksIHRoaXNVUkwuaG9zdCgpKSAmJiBhY3RV
UkwucG9ydCgpID09IHRoaXNVUkwucG9ydCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CisgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSAmJiBhY3REb2N1bWVu
dC0+ZG9tYWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWlu
KCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
CiAgIH0KIAotICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0VVJMLmhvc3QoKSwgdGhpc1VSTC5o
b3N0KCkpICYmIGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCB0aGlzVVJMLnBy
b3RvY29sKCkpICYmIGFjdFVSTC5wb3J0KCkgPT0gdGhpc1VSTC5wb3J0KCkpCi0gICAgcmV0dXJu
IHRydWU7Ci0KICAgaWYgKEludGVycHJldGVyOjpzaG91bGRQcmludEV4Y2VwdGlvbnMoKSkgewog
ICAgICAgcHJpbnRmKCJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFjY2VzcyBmcmFtZSB3
aXRoIFVSTCAlcyBmcm9tIGZyYW1lIHdpdGggVVJMICVzLiBEb21haW5zLCBwcm90b2NvbHMgYW5k
IHBvcnRzIG11c3QgbWF0Y2guXG4iLCAKICAgICAgICAgICAgICB0aGlzVVJMLnVybCgpLmxhdGlu
MSgpLCBhY3RVUkwudXJsKCkubGF0aW4xKCkpOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAxKQorKysgV2ViQ29y
ZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1MyBAQAorMjAwNy0wOS0yOCAg
QWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTUzMTMKKworICAgICAgICBUaGUgc2FtZS1vcmlnaW4gY2hlY2sgd2FzIGluY29ycmVj
dCBpbiB0d28gY2FzZXMgKGJvdGggZml4ZWQgaW4gdGhpcworICAgICAgICBwYXRjaCk6CisKKyAg
ICAgICAgQSkgSWYgYm90aCB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0IGhhdmUgc2V0IHRoZWly
IGRvY3VtZW50LmRvbWFpbgorICAgICAgICAgICB0byB0aGUgc2FtZSB2YWx1ZSwgdGhlIHByb3Rv
Y29sIG11c3QgYWxzbyBtYXRjaCBpbiBvcmRlciBmb3IKKyAgICAgICAgICAgYWNjZXNzIHRvIGJl
IGFsbG93ZWQuICBXaXRob3V0IHRoaXMgcmVxdWlyZW1lbnQsIHRoZSBicm93c2VyIGlzCisgICAg
ICAgICAgIHZ1bG5lcmFibGUgdG8gdGhlIGZvbGxvd2luZyBhdHRhY2s6CisKKyAgICAgICAgICAg
MSkgU3VwcG9zZSB0aGVyZSBpcyBhbiBIVFRQUyBzaXRlICh3d3cuZXhhbXBsZS5jb20pIHRoYXQg
c2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLgorICAg
ICAgICAgICAyKSBBIG5ldHdvcmsgYXR0YWNrZXIgcmVkaXJlY3RzIHRoZSBicm93c2VyIHRvIGh0
dHA6Ly93d3cuZXhhbXBsZS5jb20vCisgICAgICAgICAgICAgIGEpIGluamVjdHMgc2NyaXB0IHRv
IHNldCBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLCBhbmQKKyAgICAgICAgICAgICAg
Yikgb3BlbnMgYSB3aW5kb3cgdG8gaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20vCisgICAgICAgICAg
IDMpIE5vdyB0aGUgbmV0d29yayBhdHRhY2tlciBjYW4gaW5qZWN0IHNjcmlwdCBpbnRvIHRoZSBI
VFRQUyBwYWdlLAorICAgICAgICAgICAgICBzdGVhbGluZyBjb29raWVzIGFuZCBpc3N1aW5nIGJh
bmtpbmcgdHJhbnNhY3Rpb25zLgorCisgICAgICAgIEIpIElmIG9ubHkgb25lIG9mIHRoZSBzb3Vy
Y2UgYW5kIHRhcmdldCBoYXMgc2V0IGRvY3VtZW50LmRvbWFpbiwgdGhlbgorICAgICAgICAgICBh
Y2Nlc3Mgc2hvdWxkIGJlIGRlbmllZC4gIFdpdGggdGhpcyBiZWhhdmlvciwgdGhlIGJyb3dzZXIg
aXMKKyAgICAgICAgICAgdnVsbmVyYWJsZSB0byB0aGUgZm9sbG93aW5nIGF0dGFjazoKKworICAg
ICAgICAgICAxKSBTdXBwb3NlIGh0dHA6Ly9mb28uZXhhbXBsZS5jb20vIG9wZW5zIGFuIGlmcmFt
ZSB0bworICAgICAgICAgICAgICBodHRwOi8vZm9vLmV4YW1wbGUuY29tL2ZyYW1lLmh0bWwgdGhh
dAorICAgICAgICAgICAgICBhKSBzZXRzIGRvY3VtZW50LmRvbWFpbiA9ICJleGFtcGxlLmNvbSIs
IGFuZAorICAgICAgICAgICAgICBiKSBvcGVucyBhbiBpZnJhbWUgdG8gaHR0cDovL2Jhci5leGFt
cGxlLmNvbS8KKyAgICAgICAgICAgICAgVGhpcyBpcyBhIGNvbW1vbiB1c2FnZSBvZiBkb2N1bWVu
dC5kb21haW4gZm9yIGNyb3NzLWRvbWFpbgorICAgICAgICAgICAgICBjb21tdW5pY2F0aW9uLCBz
ZWUgZm9yIGV4YW1wbGU6CisgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5jb2xsaW5qYWNrc29u
LmNvbS9yZXNlYXJjaC9wYXBlcnMvZnA4MDEtamFja3Nvbi5wZGYKKyAgICAgICAgICAgMikgVGhl
IGlubmVyLW1vc3QgaWZyYW1lLCB3aGljaCBpcyBmcm9tIGJhci5leGFtcGxlLmNvbSwgc2V0cwor
ICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLgorICAgICAgICAg
ICAzKSBOb3cgdGhlIGlubmVyLW1vc3QgaWZyYW1lIGNhbiBpbmplY3Qgc2NyaXB0IGludG8gdGhl
IG1pZGRsZQorICAgICAgICAgICAgICBpZnJhbWUgKHNheSB2aWEgZG9jdW1lbnQud3JpdGUpLiAg
VGhpcyBiYXIuZXhhbXBsZS5jb20gc2NyaXB0CisgICAgICAgICAgICAgIG5vdyBoYXMgYWNjZXNz
IHRvIHRoZSBvdXRlci1tb3N0IGZyYW1lIChmcm9tIGZvby5leGFtcGxlLmNvbSkuCisKKyAgICAg
ICAgQm90aCB0aGVzZSBjaGFuZ2VzIGNhdXNlIFdlYktpdCB0byBtYXRjaCB0aGUgYmVoYXZpb3Ig
b2YgRmlyZWZveCAyIGFuZAorICAgICAgICBJRTYgaW4gdGhlc2UgY2FzZXMuICBUaGlzIHBhdGNo
IGluY2x1ZGVzIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGJvdGgKKyAgICAgICAgaXNzdWVzLgorCisg
ICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGls
ZC1leHBsaWNpdC1kb21haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1l
eHBsaWNpdC1kb21haW4uaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dpbmRvdy5j
cHA6CisgICAgICAgIChLSlM6OldpbmRvdzo6aXNTYWZlU2NyaXB0KToKKwogMjAwNy0wOS0yOCAg
S2V2aW4gRGVja2VyICA8a2RlY2tlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFyayBSb3dlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBs
aWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRvbWFpbi5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvY3Jvc3MtZnJhbWUtYWNjZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPGlmcmFtZSBpZD0iYUZyYW1lIj48L2lmcmFtZT4KKzxwcmUgaWQ9ImNvbnNvbGUi
PjwvcHJlPgorPHNjcmlwdD4KKyAgICB2YXIgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLXdpdGgtZXhwbGljaXQtZG9tYWlu
LXNldC5odG1sIjsKKyAgICB2YXIgaWZyYW1lSWQgPSJhRnJhbWUiOworICAgIHZhciBwYXNzTWVz
c2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gZnJhbWUgZXhwbGljaXRseSBzZXR0
aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0g
IkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcgZG9j
dW1lbnQuZG9tYWluIHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBp
ZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBs
aWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWFjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImFGcmFtZSI+PC9pZnJhbWU+Cis8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKzxzY3JpcHQ+CisgICAgLy8gRXhwbGljaXRseSBzZXQgdGhlIGRvbWFpbi4KKyAg
ICBkb2N1bWVudC5kb21haW4gPSAiMTI3LjAuMC4xIjsKKworICAgIHZhciB1cmwgPSAiaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUuaHRt
bCI7CisgICAgdmFyIGlmcmFtZUlkID0iYUZyYW1lIjsKKyAgICB2YXIgcGFzc01lc3NhZ2UgPSAi
UEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGZyb20gZnJhbWUgZXhwbGljaXRseSBzZXR0aW5nIGRv
Y3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6
IENyb3NzIGZyYW1lIGFjY2VzcyBmcm9tIGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVu
dC5kb21haW4gd2FzIGFsbG93ZWQuIjsKKyAgICBjYW5ub3RBY2Nlc3NGcmFtZSh1cmwsIGlmcmFt
ZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFj
Y2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBs
aWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMjU4MDEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4u
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsOSArMTIsOSBAQAogCiAgICAgdmFyIHVybCA9ICJo
dHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJh
bWUtd2l0aC1leHBsaWNpdC1kb21haW4tc2V0Lmh0bWwiOwogICAgIHZhciBpZnJhbWVJZCA9ImFG
cmFtZSI7Ci0gICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0
byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21h
aW4sIHdhcyBhbGxvd2VkISI7Ci0gICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZy
YW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBk
b2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQuIjsKLSAgICBjYW5BY2Nlc3NGcmFtZSh1cmwsIGlm
cmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworICAgIHZhciBwYXNzTWVzc2FnZSA9
ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gaHR0cHMgZnJvbSBodHRwLCBhZnRlciBleHBs
aWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZh
aWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAs
IGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBhbGxvd2VkLiI7
CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxN
ZXNzYWdlKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24g
MjU4MDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyAr
MSwxMyBAQAorMjAwNy0wOS0yOCAgQWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwkJVXBkYXRlIExheW91dFRlc3Rz
IGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxMworCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2hpbGQtZXhwbGlj
aXQtZG9tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJvdG9jb2wtZXhw
bGljaXQtZG9tYWluLmh0bWw6CisKIDIwMDctMDktMjggIEFudHRpIEtvaXZpc3RvICA8YW50dGlA
YXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IGJkYXNoLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>16481</attachid>
            <date>2007-09-30 21:38:01 -0700</date>
            <delta_ts>2007-11-02 15:18:35 -0700</delta_ts>
            <desc>Added comments</desc>
            <filename>fix-document-domain.patch</filename>
            <type>text/plain</type>
            <size>9173</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNpb24gMjU4MDEpCisrKyBX
ZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Mjgs
MTQgKzkyOCwzNyBAQAogICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UodGhpc1VSTC5wcm90b2NvbCgp
LCAiZGF0YSIpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgpLCAiZGF0YSIp
KQogICAgIHJldHVybiBmYWxzZTsKIAotICBpZiAodGhpc0RvY3VtZW50LT5kb21haW5XYXNTZXRJ
bkRPTSgpICYmIGFjdERvY3VtZW50LT5kb21haW5XYXNTZXRJbkRPTSgpKSB7Ci0gICAgaWYgKHRo
aXNEb2N1bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQotICAgICAgcmV0
dXJuIHRydWU7CisgIC8vIEhlcmUgYXJlIHR3byBjYXNlcyB3aGVyZSB3ZSBzaG91bGQgcGVybWl0
IGFjY2VzczoKKyAgLy8KKyAgLy8gMSkgTmVpdGhlciBkb2N1bWVudCBoYXMgc2V0IGRvY3VtZW50
LmRvbWFpbi4gIEluIHRoaXMgY2FzZSwgd2UgaW5zaXN0CisgIC8vICAgIHRoYXQgdGhlIHNjaGVt
ZSwgaG9zdCwgYW5kIHBvcnQgb2YgdGhlIFVSTHMgbWF0Y2guCisgIC8vCisgIC8vIDIpIEJvdGgg
ZG9jdW1lbnRzIGhhdmUgc2V0IGRvY3VtZW50LmRvbWFpbi4gIEluIHRoaXMgY2FzZSwgd2UgaW5z
aXN0CisgIC8vICAgIHRoYXQgdGhlIGRvY3VtZW50cyBoYXZlIHNldCBkb2N1bWVudC5kb21haW4g
dG8gdGhlIHNhbWUgdmFsdWUgYW5kCisgIC8vICAgIHRoYXQgdGhlIHNjaGVtZSBvZiB0aGUgVVJM
cyBtYXRjaC4KKyAgLy8KKyAgLy8gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94
IDIgYW5kIEludGVybmV0IEV4cGxvcmVyIDYuCisgIC8vCisgIC8vIEludGVybmV0IEV4cGxvcmVy
IDcgYW5kIE9wZXJhIDkgYXJlIG1vcmUgc3RyaWN0IGluIHRoYXQgdGhleSByZXF1aXJlCisgIC8v
IHRoZSBwb3J0IG51bWJlcnMgdG8gbWF0Y2ggd2hlbiBib3RoIHBhZ2VzIGhhdmUgZG9jdW1lbnQu
ZG9tYWluIHNldC4KKyAgLy8KKyAgLy8gRklYTUU6IEV2YWx1YXRlIHdoZXRoZXIgd2UgY2FuIHRp
Z2h0ZW4gdGhpcyBwb2xpY3kgdG8gcmVxdWlyZSBtYXRjaGVkCisgIC8vICAgICAgICBwb3J0IG51
bWJlcnMuCisgIC8vCisgIC8vIE9wZXJhIDkgYWxsb3dzIGFjY2VzcyB3aGVuIG9ubHkgb25lIHBh
Z2UgaGFzIHNldCBkb2N1bWVudC5kb21haW4sIGJ1dAorICAvLyB0aGlzIGlzIGEgc2VjdXJpdHkg
dnVsbmVyYWJpbGl0eS4KKyAgLy8gCisgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShhY3RVUkwucHJv
dG9jb2woKSwgdGhpc1VSTC5wcm90b2NvbCgpKSkgeworICAgIGlmICghdGhpc0RvY3VtZW50LT5k
b21haW5XYXNTZXRJbkRPTSgpICYmICFhY3REb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSkg
eworICAgICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5ob3N0KCksIHRoaXNVUkwuaG9z
dCgpKSAmJiBhY3RVUkwucG9ydCgpID09IHRoaXNVUkwucG9ydCgpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CisgICAgaWYgKHRoaXNEb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSAm
JiBhY3REb2N1bWVudC0+ZG9tYWluV2FzU2V0SW5ET00oKSkgeworICAgICAgaWYgKHRoaXNEb2N1
bWVudC0+ZG9tYWluKCkgPT0gYWN0RG9jdW1lbnQtPmRvbWFpbigpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICB9CiAgIH0KIAotICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoYWN0VVJMLmhvc3Qo
KSwgdGhpc1VSTC5ob3N0KCkpICYmIGVxdWFsSWdub3JpbmdDYXNlKGFjdFVSTC5wcm90b2NvbCgp
LCB0aGlzVVJMLnByb3RvY29sKCkpICYmIGFjdFVSTC5wb3J0KCkgPT0gdGhpc1VSTC5wb3J0KCkp
Ci0gICAgcmV0dXJuIHRydWU7Ci0KICAgaWYgKEludGVycHJldGVyOjpzaG91bGRQcmludEV4Y2Vw
dGlvbnMoKSkgewogICAgICAgcHJpbnRmKCJVbnNhZmUgSmF2YVNjcmlwdCBhdHRlbXB0IHRvIGFj
Y2VzcyBmcmFtZSB3aXRoIFVSTCAlcyBmcm9tIGZyYW1lIHdpdGggVVJMICVzLiBEb21haW5zLCBw
cm90b2NvbHMgYW5kIHBvcnRzIG11c3QgbWF0Y2guXG4iLCAKICAgICAgICAgICAgICB0aGlzVVJM
LnVybCgpLmxhdGluMSgpLCBhY3RVUkwudXJsKCkubGF0aW4xKCkpOwpJbmRleDogV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI1ODAx
KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OCBAQAor
MjAwNy0wOS0yOCAgQWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKKworICAgICAgICBUaGUgc2FtZS1vcmlnaW4gY2hlY2sg
d2FzIGluY29ycmVjdCBpbiB0d28gY2FzZXMgKGJvdGggZml4ZWQgaW4gdGhpcworICAgICAgICBw
YXRjaCk6CisKKyAgICAgICAgQSkgSWYgYm90aCB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0IGhh
dmUgc2V0IHRoZWlyIGRvY3VtZW50LmRvbWFpbgorICAgICAgICAgICB0byB0aGUgc2FtZSB2YWx1
ZSwgdGhlIHByb3RvY29sIG11c3QgYWxzbyBtYXRjaCBpbiBvcmRlciBmb3IKKyAgICAgICAgICAg
YWNjZXNzIHRvIGJlIGFsbG93ZWQuICBXaXRob3V0IHRoaXMgcmVxdWlyZW1lbnQsIHRoZSBicm93
c2VyIGlzCisgICAgICAgICAgIHZ1bG5lcmFibGUgdG8gdGhlIGZvbGxvd2luZyBhdHRhY2s6CisK
KyAgICAgICAgICAgMSkgU3VwcG9zZSB0aGVyZSBpcyBhbiBIVFRQUyBzaXRlICh3d3cuZXhhbXBs
ZS5jb20pIHRoYXQgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBs
ZS5jb20iLgorICAgICAgICAgICAyKSBBIG5ldHdvcmsgYXR0YWNrZXIgcmVkaXJlY3RzIHRoZSBi
cm93c2VyIHRvIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vCisgICAgICAgICAgICAgIGEpIGluamVj
dHMgc2NyaXB0IHRvIHNldCBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLCBhbmQKKyAg
ICAgICAgICAgICAgYikgb3BlbnMgYSB3aW5kb3cgdG8gaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20v
CisgICAgICAgICAgIDMpIE5vdyB0aGUgbmV0d29yayBhdHRhY2tlciBjYW4gaW5qZWN0IHNjcmlw
dCBpbnRvIHRoZSBIVFRQUyBwYWdlLAorICAgICAgICAgICAgICBzdGVhbGluZyBjb29raWVzIGFu
ZCBpc3N1aW5nIGJhbmtpbmcgdHJhbnNhY3Rpb25zLgorCisgICAgICAgIEIpIElmIG9ubHkgb25l
IG9mIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBoYXMgc2V0IGRvY3VtZW50LmRvbWFpbiwgdGhlbgor
ICAgICAgICAgICBhY2Nlc3Mgc2hvdWxkIGJlIGRlbmllZC4gIFdpdGggdGhpcyBiZWhhdmlvciwg
dGhlIGJyb3dzZXIgaXMKKyAgICAgICAgICAgdnVsbmVyYWJsZSB0byB0aGUgZm9sbG93aW5nIGF0
dGFjazoKKworICAgICAgICAgICAxKSBTdXBwb3NlIGh0dHA6Ly9mb28uZXhhbXBsZS5jb20vIG9w
ZW5zIGFuIGlmcmFtZSB0bworICAgICAgICAgICAgICBodHRwOi8vZm9vLmV4YW1wbGUuY29tL2Zy
YW1lLmh0bWwgdGhhdAorICAgICAgICAgICAgICBhKSBzZXRzIGRvY3VtZW50LmRvbWFpbiA9ICJl
eGFtcGxlLmNvbSIsIGFuZAorICAgICAgICAgICAgICBiKSBvcGVucyBhbiBpZnJhbWUgdG8gaHR0
cDovL2Jhci5leGFtcGxlLmNvbS8KKyAgICAgICAgICAgICAgVGhpcyBpcyBhIGNvbW1vbiB1c2Fn
ZSBvZiBkb2N1bWVudC5kb21haW4gZm9yIGNyb3NzLWRvbWFpbgorICAgICAgICAgICAgICBjb21t
dW5pY2F0aW9uLCBzZWUgZm9yIGV4YW1wbGU6CisgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5j
b2xsaW5qYWNrc29uLmNvbS9yZXNlYXJjaC9wYXBlcnMvZnA4MDEtamFja3Nvbi5wZGYKKyAgICAg
ICAgICAgMikgVGhlIGlubmVyLW1vc3QgaWZyYW1lLCB3aGljaCBpcyBmcm9tIGJhci5leGFtcGxl
LmNvbSwgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20i
LgorICAgICAgICAgICAzKSBOb3cgdGhlIGlubmVyLW1vc3QgaWZyYW1lIGNhbiBpbmplY3Qgc2Ny
aXB0IGludG8gdGhlIG1pZGRsZQorICAgICAgICAgICAgICBpZnJhbWUgKHNheSB2aWEgZG9jdW1l
bnQud3JpdGUpLiAgVGhpcyBiYXIuZXhhbXBsZS5jb20gc2NyaXB0CisgICAgICAgICAgICAgIG5v
dyBoYXMgYWNjZXNzIHRvIHRoZSBvdXRlci1tb3N0IGZyYW1lIChmcm9tIGZvby5leGFtcGxlLmNv
bSkuCisKKyAgICAgICAgQm90aCB0aGVzZSBjaGFuZ2VzIGNhdXNlIFdlYktpdCB0byBtYXRjaCB0
aGUgYmVoYXZpb3Igb2YgRmlyZWZveCAyIGFuZAorICAgICAgICBJRTYgaW4gdGhlc2UgY2FzZXMu
ICBUaGlzIHBhdGNoIGluY2x1ZGVzIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGJvdGgKKyAgICAgICAg
aXNzdWVzLgorCisgICAgICAgIEludGVybmV0IEV4cGxvcmVyIDcgYW5kIE9wZXJhIDkgYXJlIG1v
cmUgc3RyaWN0IGluIHRoYXQgdGhleSByZXF1aXJlCisgICAgICAgIHRoZSBwb3J0IG51bWJlcnMg
dG8gbWF0Y2ggd2hlbiBib3RoIHBhZ2VzIGhhdmUgZG9jdW1lbnQuZG9tYWluIHNldC4KKyAgICAg
ICAgT3BlcmEgOSBhbGxvd3MgYWNjZXNzIHdoZW4gb25seSBvbmUgcGFnZSBoYXMgc2V0IGRvY3Vt
ZW50LmRvbWFpbiwgYnV0CisgICAgICAgIHRoaXMgaXMgYSBzZWN1cml0eSB2dWxuZXJhYmlsaXR5
LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90
b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMva2pzX3dp
bmRvdy5jcHA6CisgICAgICAgIChLSlM6OldpbmRvdzo6aXNTYWZlU2NyaXB0KToKKwogMjAwNy0w
OS0yOCAgS2V2aW4gRGVja2VyICA8a2RlY2tlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgTWFyayBSb3dlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Ny
b3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGls
ZC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRvbWFpbi5o
dG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvY3Jvc3MtZnJhbWUtYWNjZXNzLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBpZD0iYUZyYW1lIj48L2lmcmFtZT4KKzxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICB2YXIgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLXdpdGgtZXhwbGljaXQt
ZG9tYWluLXNldC5odG1sIjsKKyAgICB2YXIgaWZyYW1lSWQgPSJhRnJhbWUiOworICAgIHZhciBw
YXNzTWVzc2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gZnJhbWUgZXhwbGljaXRs
eSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNz
YWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBmcmFtZSBleHBsaWNpdGx5IHNldHRp
bmcgZG9jdW1lbnQuZG9tYWluIHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUo
dXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9z
cy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVu
dC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4u
aHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPGh0bWw+Cis8aGVhZD4KKyAgICA8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWFjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImFGcmFtZSI+PC9pZnJhbWU+Cis8cHJlIGlkPSJj
b25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgLy8gRXhwbGljaXRseSBzZXQgdGhlIGRvbWFp
bi4KKyAgICBkb2N1bWVudC5kb21haW4gPSAiMTI3LjAuMC4xIjsKKworICAgIHZhciB1cmwgPSAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJh
bWUuaHRtbCI7CisgICAgdmFyIGlmcmFtZUlkID0iYUZyYW1lIjsKKyAgICB2YXIgcGFzc01lc3Nh
Z2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGZyb20gZnJhbWUgZXhwbGljaXRseSBzZXR0
aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0g
IkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyBmcm9tIGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBk
b2N1bWVudC5kb21haW4gd2FzIGFsbG93ZWQuIjsKKyAgICBjYW5ub3RBY2Nlc3NGcmFtZSh1cmws
IGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2Nv
bC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMjU4MDEpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1k
b21haW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsOSArMTIsOSBAQAogCiAgICAgdmFyIHVy
bCA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFt
ZS1pZnJhbWUtd2l0aC1leHBsaWNpdC1kb21haW4tc2V0Lmh0bWwiOwogICAgIHZhciBpZnJhbWVJ
ZCA9ImFGcmFtZSI7Ci0gICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1lIGFj
Y2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVu
dC5kb21haW4sIHdhcyBhbGxvd2VkISI7Ci0gICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENy
b3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0
dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQuIjsKLSAgICBjYW5BY2Nlc3NGcmFtZSh1
cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworICAgIHZhciBwYXNzTWVz
c2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gaHR0cHMgZnJvbSBodHRwLCBhZnRl
ciBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3YXMgZGVuaWVkLiI7CisgICAg
dmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9t
IGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBhbGxv
d2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2Us
IGZhaWxNZXNzYWdlKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gMjU4MDEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxMyBAQAorMjAwNy0wOS0yOCAgQWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKwkJVXBkYXRlIExheW91
dFRlc3RzIGZvciBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxMwor
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtY2hpbGQt
ZXhwbGljaXQtZG9tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNpdC1kb21haW4uaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcHJvdG9j
b2wtZXhwbGljaXQtZG9tYWluLmh0bWw6CisKIDIwMDctMDktMjggIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJ1YmJlciBzdGFtcGVkIGJ5IGJkYXNoLgo=
</data>
<flag name="review"
          id="6941"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17002</attachid>
            <date>2007-11-02 15:18:35 -0700</date>
            <delta_ts>2007-12-06 23:08:09 -0800</delta_ts>
            <desc>Update for SecurityOrigin class</desc>
            <filename>new-same-origin-fix.patch</filename>
            <type>text/plain</type>
            <size>8806</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNz
LWNoaWxkLWV4cGxpY2l0LWRvbWFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRvbWFp
bi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtY2hpbGQtZXhwbGljaXQtZG9tYWluLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTYgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy9jcm9zcy1mcmFtZS1hY2Nlc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
aWZyYW1lIGlkPSJhRnJhbWUiPjwvaWZyYW1lPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8
c2NyaXB0PgorICAgIHZhciB1cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jl
c291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtd2l0aC1leHBsaWNpdC1kb21haW4tc2V0Lmh0bWwi
OworICAgIHZhciBpZnJhbWVJZCA9ImFGcmFtZSI7CisgICAgdmFyIHBhc3NNZXNzYWdlID0gIlBB
U1M6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1l
bnQuZG9tYWluIHdhcyBkZW5pZWQuIjsKKyAgICB2YXIgZmFpbE1lc3NhZ2UgPSAiRmFpbDogQ3Jv
c3MgZnJhbWUgYWNjZXNzIHRvIGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21h
aW4gd2FzIGFsbG93ZWQuIjsKKyAgICBjYW5ub3RBY2Nlc3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBw
YXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1w
YXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFp
bi5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE5IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvY3Jvc3MtZnJhbWUtYWNjZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGlmcmFtZSBpZD0iYUZyYW1lIj48L2lmcmFtZT4KKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgor
PHNjcmlwdD4KKyAgICAvLyBFeHBsaWNpdGx5IHNldCB0aGUgZG9tYWluLgorICAgIGRvY3VtZW50
LmRvbWFpbiA9ICIxMjcuMC4wLjEiOworCisgICAgdmFyIHVybCA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS5odG1sIjsKKyAgICB2
YXIgaWZyYW1lSWQgPSJhRnJhbWUiOworICAgIHZhciBwYXNzTWVzc2FnZSA9ICJQQVNTOiBDcm9z
cyBmcmFtZSBhY2Nlc3MgZnJvbSBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9t
YWluIHdhcyBkZW5pZWQuIjsKKyAgICB2YXIgZmFpbE1lc3NhZ2UgPSAiRmFpbDogQ3Jvc3MgZnJh
bWUgYWNjZXNzIGZyb20gZnJhbWUgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3
YXMgYWxsb3dlZC4iOworICAgIGNhbm5vdEFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBhc3NN
ZXNzYWdlLCBmYWlsTWVzc2FnZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3Rv
Y29sLWV4cGxpY2l0LWRvbWFpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3RvY29sLWV4cGxpY2l0LWRvbWFp
bi5odG1sCShyZXZpc2lvbiAyNTgwMSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3RvY29sLWV4cGxpY2l0LWRvbWFpbi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMiw5ICsxMiw5IEBACiAKICAgICB2YXIgdXJsID0gImh0dHBzOi8vMTI3
LjAuMC4xOjg0NDMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS13aXRoLWV4
cGxpY2l0LWRvbWFpbi1zZXQuaHRtbCI7CiAgICAgdmFyIGlmcmFtZUlkID0iYUZyYW1lIjsKLSAg
ICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGh0dHBzIGZy
b20gaHR0cCwgYWZ0ZXIgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiwgd2FzIGFs
bG93ZWQhIjsKLSAgICB2YXIgZmFpbE1lc3NhZ2UgPSAiRmFpbDogQ3Jvc3MgZnJhbWUgYWNjZXNz
IHRvIGh0dHBzIGZyb20gaHR0cCwgYWZ0ZXIgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRv
bWFpbiwgd2FzIGRlbmllZC4iOwotICAgIGNhbkFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBh
c3NNZXNzYWdlLCBmYWlsTWVzc2FnZSk7CisgICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENy
b3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0
dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQuIjsKKyAgICB2YXIgZmFpbE1lc3NhZ2Ug
PSAiRmFpbDogQ3Jvc3MgZnJhbWUgYWNjZXNzIHRvIGh0dHBzIGZyb20gaHR0cCwgYWZ0ZXIgZXhw
bGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiwgd2FzIGFsbG93ZWQuIjsKKyAgICBjYW5u
b3RBY2Nlc3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOwog
PC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzM3NikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisy
MDA3LTExLTAyICBBZGFtIEJhcnRoICA8aGs5NTY1QGdtYWlsLmNvbT4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCQlVcGRhdGUgTGF5b3V0VGVzdHMgZm9yIGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzEzCisKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1kb21haW4u
aHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21h
aW4uaHRtbDoKKwogMjAwNy0xMS0wMSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgog
CiAgICAgICAgIC0gZml4IHR5cG8gaW4gdGVzdCBuYW1lCkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L1NlY3VyaXR5T3JpZ2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1NlY3Vy
aXR5T3JpZ2luLmNwcAkocmV2aXNpb24gMjczNzYpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1NlY3Vy
aXR5T3JpZ2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDEwICsxMTUsMzggQEAKICAgICBp
ZiAobV9ub0FjY2VzcyB8fCBvdGhlci5tX25vQWNjZXNzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBpZiAobV9kb21haW5XYXNTZXRJbkRPTSAmJiBvdGhlci5tX2RvbWFpbldhc1NldElu
RE9NICYmIG1faG9zdCA9PSBvdGhlci5tX2hvc3QpCi0gICAgICAgIHJldHVybiB0cnVlOwotIAot
ICAgIHJldHVybiBtX2hvc3QgPT0gb3RoZXIubV9ob3N0ICYmIG1fcHJvdG9jb2wgPT0gb3RoZXIu
bV9wcm90b2NvbCAmJiBtX3BvcnQgPT0gb3RoZXIubV9wb3J0OworICAgIC8vIEhlcmUgYXJlIHR3
byBjYXNlcyB3aGVyZSB3ZSBzaG91bGQgcGVybWl0IGFjY2VzczoKKyAgICAvLworICAgIC8vIDEp
IE5laXRoZXIgZG9jdW1lbnQgaGFzIHNldCBkb2N1bWVudC5kb21haW4uICBJbiB0aGlzIGNhc2Us
IHdlIGluc2lzdAorICAgIC8vICAgIHRoYXQgdGhlIHNjaGVtZSwgaG9zdCwgYW5kIHBvcnQgb2Yg
dGhlIFVSTHMgbWF0Y2guCisgICAgLy8KKyAgICAvLyAyKSBCb3RoIGRvY3VtZW50cyBoYXZlIHNl
dCBkb2N1bWVudC5kb21haW4uICBJbiB0aGlzIGNhc2UsIHdlIGluc2lzdAorICAgIC8vICAgIHRo
YXQgdGhlIGRvY3VtZW50cyBoYXZlIHNldCBkb2N1bWVudC5kb21haW4gdG8gdGhlIHNhbWUgdmFs
dWUgYW5kCisgICAgLy8gICAgdGhhdCB0aGUgc2NoZW1lIG9mIHRoZSBVUkxzIG1hdGNoLgorICAg
IC8vCisgICAgLy8gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBGaXJlZm94IDIgYW5kIElu
dGVybmV0IEV4cGxvcmVyIDYuCisgICAgLy8KKyAgICAvLyBJbnRlcm5ldCBFeHBsb3JlciA3IGFu
ZCBPcGVyYSA5IGFyZSBtb3JlIHN0cmljdCBpbiB0aGF0IHRoZXkgcmVxdWlyZQorICAgIC8vIHRo
ZSBwb3J0IG51bWJlcnMgdG8gbWF0Y2ggd2hlbiBib3RoIHBhZ2VzIGhhdmUgZG9jdW1lbnQuZG9t
YWluIHNldC4KKyAgICAvLworICAgIC8vIEZJWE1FOiBFdmFsdWF0ZSB3aGV0aGVyIHdlIGNhbiB0
aWdodGVuIHRoaXMgcG9saWN5IHRvIHJlcXVpcmUgbWF0Y2hlZAorICAgIC8vICAgICAgICBwb3J0
IG51bWJlcnMuCisgICAgLy8KKyAgICAvLyBPcGVyYSA5IGFsbG93cyBhY2Nlc3Mgd2hlbiBvbmx5
IG9uZSBwYWdlIGhhcyBzZXQgZG9jdW1lbnQuZG9tYWluLCBidXQKKyAgICAvLyB0aGlzIGlzIGEg
c2VjdXJpdHkgdnVsbmVyYWJpbGl0eS4KKyAgICAvLyAKKyAgICBpZiAobV9wcm90b2NvbCA9PSBv
dGhlci5tX3Byb3RvY29sKSB7CisgICAgICAgIGlmICghbV9kb21haW5XYXNTZXRJbkRPTSAmJiAh
b3RoZXIubV9kb21haW5XYXNTZXRJbkRPTSkgeworICAgICAgICAgICAgaWYgKG1faG9zdCA9PSBv
dGhlci5tX2hvc3QgJiYgbV9wb3J0ID09IG90aGVyLm1fcG9ydCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9kb21haW5XYXNTZXRJbkRPTSAm
JiBvdGhlci5tX2RvbWFpbldhc1NldEluRE9NKSB7CisgICAgICAgICAgICBpZiAobV9ob3N0ID09
IG90aGVyLm1faG9zdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNT
ZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYgdXJsKSBjb25zdApJbmRleDogV2ViQ29yZS9D
aGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3Mzc2
KQorKysgV2ViQ29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1OCBAQAor
MjAwNy0xMS0wMiAgQWRhbSBCYXJ0aCAgPGhrOTU2NUBnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cDovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKKworICAgICAgICBUaGUgc2FtZS1vcmlnaW4gY2hlY2sg
d2FzIGluY29ycmVjdCBpbiB0d28gY2FzZXMgKGJvdGggZml4ZWQgaW4gdGhpcworICAgICAgICBw
YXRjaCk6CisKKyAgICAgICAgQSkgSWYgYm90aCB0aGUgc291cmNlIGFuZCB0aGUgdGFyZ2V0IGhh
dmUgc2V0IHRoZWlyIGRvY3VtZW50LmRvbWFpbgorICAgICAgICAgICB0byB0aGUgc2FtZSB2YWx1
ZSwgdGhlIHByb3RvY29sIG11c3QgYWxzbyBtYXRjaCBpbiBvcmRlciBmb3IKKyAgICAgICAgICAg
YWNjZXNzIHRvIGJlIGFsbG93ZWQuICBXaXRob3V0IHRoaXMgcmVxdWlyZW1lbnQsIHRoZSBicm93
c2VyIGlzCisgICAgICAgICAgIHZ1bG5lcmFibGUgdG8gdGhlIGZvbGxvd2luZyBhdHRhY2s6CisK
KyAgICAgICAgICAgMSkgU3VwcG9zZSB0aGVyZSBpcyBhbiBIVFRQUyBzaXRlICh3d3cuZXhhbXBs
ZS5jb20pIHRoYXQgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBs
ZS5jb20iLgorICAgICAgICAgICAyKSBBIG5ldHdvcmsgYXR0YWNrZXIgcmVkaXJlY3RzIHRoZSBi
cm93c2VyIHRvIGh0dHA6Ly93d3cuZXhhbXBsZS5jb20vCisgICAgICAgICAgICAgIGEpIGluamVj
dHMgc2NyaXB0IHRvIHNldCBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLCBhbmQKKyAg
ICAgICAgICAgICAgYikgb3BlbnMgYSB3aW5kb3cgdG8gaHR0cHM6Ly93d3cuZXhhbXBsZS5jb20v
CisgICAgICAgICAgIDMpIE5vdyB0aGUgbmV0d29yayBhdHRhY2tlciBjYW4gaW5qZWN0IHNjcmlw
dCBpbnRvIHRoZSBIVFRQUyBwYWdlLAorICAgICAgICAgICAgICBzdGVhbGluZyBjb29raWVzIGFu
ZCBpc3N1aW5nIGJhbmtpbmcgdHJhbnNhY3Rpb25zLgorCisgICAgICAgIEIpIElmIG9ubHkgb25l
IG9mIHRoZSBzb3VyY2UgYW5kIHRhcmdldCBoYXMgc2V0IGRvY3VtZW50LmRvbWFpbiwgdGhlbgor
ICAgICAgICAgICBhY2Nlc3Mgc2hvdWxkIGJlIGRlbmllZC4gIFdpdGggdGhpcyBiZWhhdmlvciwg
dGhlIGJyb3dzZXIgaXMKKyAgICAgICAgICAgdnVsbmVyYWJsZSB0byB0aGUgZm9sbG93aW5nIGF0
dGFjazoKKworICAgICAgICAgICAxKSBTdXBwb3NlIGh0dHA6Ly9mb28uZXhhbXBsZS5jb20vIG9w
ZW5zIGFuIGlmcmFtZSB0bworICAgICAgICAgICAgICBodHRwOi8vZm9vLmV4YW1wbGUuY29tL2Zy
YW1lLmh0bWwgdGhhdAorICAgICAgICAgICAgICBhKSBzZXRzIGRvY3VtZW50LmRvbWFpbiA9ICJl
eGFtcGxlLmNvbSIsIGFuZAorICAgICAgICAgICAgICBiKSBvcGVucyBhbiBpZnJhbWUgdG8gaHR0
cDovL2Jhci5leGFtcGxlLmNvbS8KKyAgICAgICAgICAgICAgVGhpcyBpcyBhIGNvbW1vbiB1c2Fn
ZSBvZiBkb2N1bWVudC5kb21haW4gZm9yIGNyb3NzLWRvbWFpbgorICAgICAgICAgICAgICBjb21t
dW5pY2F0aW9uLCBzZWUgZm9yIGV4YW1wbGU6CisgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5j
b2xsaW5qYWNrc29uLmNvbS9yZXNlYXJjaC9wYXBlcnMvZnA4MDEtamFja3Nvbi5wZGYKKyAgICAg
ICAgICAgMikgVGhlIGlubmVyLW1vc3QgaWZyYW1lLCB3aGljaCBpcyBmcm9tIGJhci5leGFtcGxl
LmNvbSwgc2V0cworICAgICAgICAgICAgICBkb2N1bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20i
LgorICAgICAgICAgICAzKSBOb3cgdGhlIGlubmVyLW1vc3QgaWZyYW1lIGNhbiBpbmplY3Qgc2Ny
aXB0IGludG8gdGhlIG1pZGRsZQorICAgICAgICAgICAgICBpZnJhbWUgKHNheSB2aWEgZG9jdW1l
bnQud3JpdGUpLiAgVGhpcyBiYXIuZXhhbXBsZS5jb20gc2NyaXB0CisgICAgICAgICAgICAgIG5v
dyBoYXMgYWNjZXNzIHRvIHRoZSBvdXRlci1tb3N0IGZyYW1lIChmcm9tIGZvby5leGFtcGxlLmNv
bSkuCisKKyAgICAgICAgQm90aCB0aGVzZSBjaGFuZ2VzIGNhdXNlIFdlYktpdCB0byBtYXRjaCB0
aGUgYmVoYXZpb3Igb2YgRmlyZWZveCAyIGFuZAorICAgICAgICBJRTYgaW4gdGhlc2UgY2FzZXMu
ICBUaGlzIHBhdGNoIGluY2x1ZGVzIHJlZ3Jlc3Npb24gdGVzdHMgZm9yIGJvdGgKKyAgICAgICAg
aXNzdWVzLgorCisgICAgICAgIEludGVybmV0IEV4cGxvcmVyIDcgYW5kIE9wZXJhIDkgYXJlIG1v
cmUgc3RyaWN0IGluIHRoYXQgdGhleSByZXF1aXJlCisgICAgICAgIHRoZSBwb3J0IG51bWJlcnMg
dG8gbWF0Y2ggd2hlbiBib3RoIHBhZ2VzIGhhdmUgZG9jdW1lbnQuZG9tYWluIHNldC4KKyAgICAg
ICAgT3BlcmEgOSBhbGxvd3MgYWNjZXNzIHdoZW4gb25seSBvbmUgcGFnZSBoYXMgc2V0IGRvY3Vt
ZW50LmRvbWFpbiwgYnV0CisgICAgICAgIHRoaXMgaXMgYSBzZWN1cml0eSB2dWxuZXJhYmlsaXR5
LgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtcGFyZW50LWV4cGxpY2l0LWRvbWFpbi5odG1sCisg
ICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90
b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlP
cmlnaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmFsbG93QWNjZXNz
RnJvbSk6CisKIDIwMDctMTEtMDEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkuCg==
</data>
<flag name="review"
          id="7215"
          type_id="1"
          status="-"
          setter="sam"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17765</attachid>
            <date>2007-12-06 23:08:09 -0800</date>
            <delta_ts>2007-12-10 12:05:22 -0800</delta_ts>
            <desc>Work in progress patch</desc>
            <filename>can-access.patch</filename>
            <type>text/plain</type>
            <size>16028</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCShyZXZpc2lvbiAyODM3NCkKKysr
IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02
Miw0NCArNjIsNTggQEAKICAgICByZXR1cm4gbV9wcm90b2NvbC5pc0VtcHR5KCk7CiB9CiAKLXZv
aWQgU2VjdXJpdHlPcmlnaW46OnNldEZvckZyYW1lKEZyYW1lKiBmcmFtZSkKK3ZvaWQgU2VjdXJp
dHlPcmlnaW46OnNldEZvclVSTChjb25zdCBLVVJMJiB1cmwpCiB7CiAgICAgY2xlYXIoKTsKIAor
ICAgIGlmICh1cmwuaXNFbXB0eSgpKQorICAgICAgcmV0dXJuOworCisgICAgbV9wcm90b2NvbCA9
IHVybC5wcm90b2NvbCgpLmxvd2VyKCk7CisgICAgbV9ob3N0ID0gdXJsLmhvc3QoKS5sb3dlcigp
OworICAgIG1fcG9ydCA9IHVybC5wb3J0KCk7CisKKyAgICBpZiAobV9wb3J0KQorICAgICAgICBt
X3BvcnRTZXQgPSB0cnVlOworCisgICAgLy8gZGF0YTogVVJMcyBhcmUgbm90IGFsbG93ZWQgYWNj
ZXNzIHRvIGFueXRoaW5nIG90aGVyIHRoYW4gdGhlbXNlbHZlcy4KKyAgICBpZiAobV9wcm90b2Nv
bCA9PSAiZGF0YSIpCisgICAgICAgIG1fbm9BY2Nlc3MgPSB0cnVlOworfQorCitQYXNzUmVmUHRy
PFNlY3VyaXR5T3JpZ2luPiBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRm9yRnJhbWUoRnJhbWUqIGZy
YW1lKQoreworICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gb3JpZ2luID0gbmV3IFNlY3VyaXR5
T3JpZ2luKCk7CisKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gb3JpZ2luOworCiAg
ICAgRnJhbWVMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKTsKICAgICBjb25zdCBLVVJM
JiBzZWN1cml0eVBvbGljeVVSTCA9IGxvYWRlci0+dXJsKCk7CiAKLSAgICBpZiAoIXNlY3VyaXR5
UG9saWN5VVJMLmlzRW1wdHkoKSkgewotICAgICAgICBtX3Byb3RvY29sID0gc2VjdXJpdHlQb2xp
Y3lVUkwucHJvdG9jb2woKS5sb3dlcigpOwotICAgICAgICBtX2hvc3QgPSBzZWN1cml0eVBvbGlj
eVVSTC5ob3N0KCkubG93ZXIoKTsKLSAgICAgICAgbV9wb3J0ID0gc2VjdXJpdHlQb2xpY3lVUkwu
cG9ydCgpOwotICAgICAgICBpZiAobV9wb3J0KQotICAgICAgICAgICAgbV9wb3J0U2V0ID0gdHJ1
ZTsKKyAgICBvcmlnaW4tPnNldEZvclVSTChzZWN1cml0eVBvbGljeVVSTCk7CiAKLSAgICAgICAg
Ly8gZGF0YTogVVJMcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGFueXRoaW5nIG90aGVyIHRo
YW4gdGhlbXNlbHZlcy4KLSAgICAgICAgaWYgKG1fcHJvdG9jb2wgPT0gImRhdGEiKSB7Ci0gICAg
ICAgICAgICBtX25vQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQorICAgIGlmICghb3JpZ2luLT5pc0VtcHR5KCkgJiYgb3JpZ2luLT5tX3Byb3RvY29sICE9ICJh
Ym91dCIpCisgICAgICAgIHJldHVybiBvcmlnaW47CiAKLSAgICAgICAgLy8gT25seSBpbiB0aGUg
Y2FzZSBvZiBhYm91dDpibGFuayBvciBqYXZhc2NyaXB0OiBVUkxzICh3aGljaCBjcmVhdGUgZG9j
dW1lbnRzIHVzaW5nIHRoZSAiYWJvdXQiIAotICAgICAgICAvLyBwcm90b2NvbCkgZG8gd2Ugd2Fu
dCB0byB1c2UgdGhlIHBhcmVudCBvciBvcGVuZXJzIFVSTCBhcyB0aGUgb3JpZ2luLgotICAgICAg
ICBpZiAobV9wcm90b2NvbCAhPSAiYWJvdXQiKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICAvLyBJbiB0aGUgY2FzZSBvZiBhYm91dDpibGFuayBvciBqYXZhc2NyaXB0OiBVUkxzICh3
aGljaCBjcmVhdGUgCisgICAgLy8gZG9jdW1lbnRzIHVzaW5nIHRoZSAiYWJvdXQiIHByb3RvY29s
KSBkbyB3ZSB3YW50IHRvIHVzZSB0aGUKKyAgICAvLyBwYXJlbnQgb3Igb3BlbmVycyBvcmlnaW4u
CiAKICAgICBGcmFtZSogb3BlbmVyRnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAg
ICBpZiAoIW9wZW5lckZyYW1lKSB7CiAgICAgICAgIG9wZW5lckZyYW1lID0gbG9hZGVyLT5vcGVu
ZXIoKTsKICAgICAgICAgaWYgKCFvcGVuZXJGcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIHJldHVybiBvcmlnaW47CiAgICAgfQogCiAgICAgRG9jdW1lbnQqIG9wZW5lckRv
Y3VtZW50ID0gb3BlbmVyRnJhbWUtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFvcGVuZXJEb2N1bWVu
dCkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gb3JpZ2luOwogCi0gICAgKnRoaXMg
PSBvcGVuZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAvLyBXZSBhbGlhcyB0aGUg
U2VjdXJpdHlPcmlnaW5zIHRvIG1hdGNoIEZpcmVmb3gsIHNlZSBCdWcgMTUzMTMKKyAgICAvLyBo
dHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxMworICAgIHJldHVybiBv
cGVuZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKIH0KIAogdm9pZCBTZWN1cml0eU9yaWdp
bjo6c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbikKQEAgLTEwOCwxOCAr
MTIyLDI2IEBACiAgICAgbV9ob3N0ID0gbmV3RG9tYWluLmxvd2VyKCk7CiB9CiAKLWJvb2wgU2Vj
dXJpdHlPcmlnaW46OmNhbkFjY2Vzcyhjb25zdCBTZWN1cml0eU9yaWdpbiYgb3RoZXIpIGNvbnN0
Citib29sIFNlY3VyaXR5T3JpZ2luOjpjYW5BY2Nlc3MoY29uc3QgU2VjdXJpdHlPcmlnaW4qIG90
aGVyKSBjb25zdAogewogICAgIGlmIChGcmFtZUxvYWRlcjo6c2hvdWxkVHJlYXRTY2hlbWVBc0xv
Y2FsKG1fcHJvdG9jb2wpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX25vQWNj
ZXNzIHx8IG90aGVyLm1fbm9BY2Nlc3MpCisgICAgaWYgKG1fbm9BY2Nlc3MgfHwgb3RoZXItPm1f
bm9BY2Nlc3MpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChtX2RvbWFpbldhc1Nl
dEluRE9NICYmIG90aGVyLm1fZG9tYWluV2FzU2V0SW5ET00gJiYgbV9ob3N0ID09IG90aGVyLm1f
aG9zdCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gCi0gICAgcmV0dXJuIG1faG9zdCA9PSBvdGhl
ci5tX2hvc3QgJiYgbV9wcm90b2NvbCA9PSBvdGhlci5tX3Byb3RvY29sICYmIG1fcG9ydCA9PSBv
dGhlci5tX3BvcnQ7CisgICAgaWYgKG1fcHJvdG9jb2wgPT0gb3RoZXItPm1fcHJvdG9jb2wpIHsK
KyAgICAgICAgaWYgKCFtX2RvbWFpbldhc1NldEluRE9NICYmICFvdGhlci0+bV9kb21haW5XYXNT
ZXRJbkRPTSkgeworICAgICAgICAgICAgaWYgKG1faG9zdCA9PSBvdGhlci0+bV9ob3N0ICYmIG1f
cG9ydCA9PSBvdGhlci0+bV9wb3J0KQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIGlmIChtX2RvbWFpbldhc1NldEluRE9NICYmIG90aGVyLT5tX2RvbWFp
bldhc1NldEluRE9NKSB7CisgICAgICAgICAgICBpZiAobV9ob3N0ID09IG90aGVyLT5tX2hvc3Qp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgU2VjdXJpdHlPcmlnaW46OmlzU2VjdXJlVHJhbnNpdGlv
blRvKGNvbnN0IEtVUkwmIHVybCkgY29uc3QKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJp
dHlPcmlnaW4uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2lu
LmgJKHJldmlzaW9uIDI4Mzc0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw5IEBACiAjaWZuZGVmIFNlY3VyaXR5T3JpZ2lu
X2gKICNkZWZpbmUgU2VjdXJpdHlPcmlnaW5faAogCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgorCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJp
bmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzcsMTQgKzQwLDE0IEBACiAgICAgY2xh
c3MgS1VSTDsKICAgICBjbGFzcyBTZWN1cml0eU9yaWdpbkRhdGE7CiAgICAgCi0gICAgY2xhc3Mg
U2VjdXJpdHlPcmlnaW4geworICAgIGNsYXNzIFNlY3VyaXR5T3JpZ2luIDogcHVibGljIFJlZkNv
dW50ZWQ8U2VjdXJpdHlPcmlnaW4+IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIFNlY3VyaXR5T3Jp
Z2luKCk7CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBjcmVhdGVG
b3JGcmFtZShGcmFtZSopOwogCi0gICAgICAgIHZvaWQgc2V0Rm9yRnJhbWUoRnJhbWUqKTsKICAg
ICAgICAgdm9pZCBzZXREb21haW5Gcm9tRE9NKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKTsKKyAg
ICAgICAgU3RyaW5nIGRvbWFpbigpIGNvbnN0IHsgcmV0dXJuIG1faG9zdDsgfQogCi0gICAgICAg
IGJvb2wgY2FuQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJikgY29uc3Q7CisgICAgICAgIGJv
b2wgY2FuQWNjZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luKikgY29uc3Q7CiAgICAgICAgIGJvb2wg
aXNTZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYpIGNvbnN0OwogCiAgICAgICAgIFN0cmlu
ZyB0b1N0cmluZygpIGNvbnN0OwpAQCAtNTIsOSArNTUsMTIgQEAKICAgICAgICAgU2VjdXJpdHlP
cmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSgpIGNvbnN0OwogICAgICAgICAKICAgICBwcml2
YXRlOgotICAgICAgICB2b2lkIGNsZWFyKCk7CisgICAgICAgIFNlY3VyaXR5T3JpZ2luKCk7CiAg
ICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCisgICAgICAgIHZvaWQgY2xlYXIoKTsKKyAg
ICAgICAgdm9pZCBzZXRGb3JVUkwoY29uc3QgS1VSTCYgdXJsKTsKKwogICAgICAgICBTdHJpbmcg
bV9wcm90b2NvbDsKICAgICAgICAgU3RyaW5nIG1faG9zdDsKICAgICAgICAgdW5zaWduZWQgc2hv
cnQgbV9wb3J0OwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCShyZXZpc2lvbiAy
ODM3NCkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTk1MCwxMCArOTUwLDEwIEBACiAKICAgV2ViQ29yZTo6RG9jdW1lbnQqIGFjdERvY3Vt
ZW50ID0gYWN0aXZlRnJhbWUtPmRvY3VtZW50KCk7CiAKLSAgY29uc3QgU2VjdXJpdHlPcmlnaW4m
IGFjdFNlY3VyaXR5T3JpZ2luID0gYWN0RG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7Ci0gIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiB0aGlzU2VjdXJpdHlPcmlnaW4gPSB0aGlzRG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCk7CisgIFNlY3VyaXR5T3JpZ2luKiBhY3RTZWN1cml0eU9yaWdpbiA9IGFj
dERvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOworICBTZWN1cml0eU9yaWdpbiogdGhpc1NlY3Vy
aXR5T3JpZ2luID0gdGhpc0RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogCi0gIGlmIChhY3RT
ZWN1cml0eU9yaWdpbi5jYW5BY2Nlc3ModGhpc1NlY3VyaXR5T3JpZ2luKSkKKyAgaWYgKGFjdFNl
Y3VyaXR5T3JpZ2luLT5jYW5BY2Nlc3ModGhpc1NlY3VyaXR5T3JpZ2luKSkKICAgICByZXR1cm4g
dHJ1ZTsKIAogICAgIGlmICghZnJhbWUtPnNldHRpbmdzKCktPnByaXZhdGVCcm93c2luZ0VuYWJs
ZWQoKSkgewpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCShyZXZpc2lvbiAyODM3
NCkKKysrIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3MCw3ICsyNzAsNyBAQAogICAgIAogICAgIC8vIFRoZSBjb21taXQgd2FzIHN1Y2Nlc3Nm
dWwsIG5vdGlmeSB0aGUgZGVsZWdhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBtb2RpZmllZCB0aGlz
IGRhdGFiYXNlCiAgICAgaWYgKG1fbW9kaWZpZWREYXRhYmFzZSkKLSAgICAgICAgRGF0YWJhc2VU
cmFja2VyOjp0cmFja2VyKCkuc2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQobV9kYXRhYmFz
ZS0+bV9zZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbkRhdGEoKSwgbV9kYXRhYmFzZS0+bV9u
YW1lKTsKKyAgICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2NoZWR1bGVOb3RpZnlE
YXRhYmFzZUNoYW5nZWQobV9kYXRhYmFzZS0+bV9zZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmln
aW5EYXRhKCksIG1fZGF0YWJhc2UtPm1fbmFtZSk7CiAgICAgCiAgICAgLy8gVHJhbnNhY3Rpb24g
U3RlcCAxMCAtIEVuZCB0cmFuc2FjdGlvbiBzdGVwcwogICAgIC8vIFRoZXJlIGlzIG5vIG5leHQg
c3RlcApAQCAtMzI3LDcgKzMyNyw3IEBACiAgICAgICAgICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9u
LT5yb2xsYmFjaygpOwogICAgICAgICB9IGVsc2UgaWYgKG1fbW9kaWZpZWREYXRhYmFzZSkgewog
ICAgICAgICAgICAgLy8gQnV0IGlmIHRoZSBjb21taXQgd2FzIHN1Y2Nlc3NmdWwsIG5vdGlmeSB0
aGUgZGVsZWdhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBtb2RpZmllZCB0aGlzIGRhdGFiYXNlCi0g
ICAgICAgICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5zY2hlZHVsZU5vdGlmeURhdGFi
YXNlQ2hhbmdlZChtX2RhdGFiYXNlLT5tX3NlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luRGF0
YSgpLCBtX2RhdGFiYXNlLT5tX25hbWUpOworICAgICAgICAgICAgRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKCkuc2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNoYW5nZWQobV9kYXRhYmFzZS0+bV9zZWN1
cml0eU9yaWdpbi0+c2VjdXJpdHlPcmlnaW5EYXRhKCksIG1fZGF0YWJhc2UtPm1fbmFtZSk7CiAg
ICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsK
SW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
c3RvcmFnZS9EYXRhYmFzZS5oCShyZXZpc2lvbiAyODM3NCkKKysrIFdlYkNvcmUvc3RvcmFnZS9E
YXRhYmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTEyMiw3ICsxMjMsNyBAQAogICAgIHZvaWQgZGVs
aXZlclBlbmRpbmdDYWxsYmFjaygpOwogCiAgICAgRG9jdW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAg
U2VjdXJpdHlPcmlnaW4gbV9zZWN1cml0eU9yaWdpbjsKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+IG1fc2VjdXJpdHlPcmlnaW47CiAgICAgU3RyaW5nIG1fbmFtZTsKICAgICBpbnQgbV9ndWlk
OwogICAgIFN0cmluZyBtX2V4cGVjdGVkVmVyc2lvbjsKQEAgLTEzNyw3ICsxMzgsNyBAQAogICAg
IFJlZlB0cjxTUUxUcmFuc2FjdGlvbj4gbV90cmFuc2FjdGlvblBlbmRpbmdDYWxsYmFjazsKIAog
I2lmbmRlZiBOREVCVUcKLSAgICBTdHJpbmcgZGF0YWJhc2VEZWJ1Z05hbWUoKSBjb25zdCB7IHJl
dHVybiBtX3NlY3VyaXR5T3JpZ2luLnRvU3RyaW5nKCkgKyAiOjoiICsgbV9uYW1lOyB9CisgICAg
U3RyaW5nIGRhdGFiYXNlRGVidWdOYW1lKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdp
bi0+dG9TdHJpbmcoKSArICI6OiIgKyBtX25hbWU7IH0KICNlbmRpZgogCiAgICAgc3RhdGljIE11
dGV4JiBnbG9iYWxDYWxsYmFja011dGV4KCk7CkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJh
c2VUcmFja2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUcmFj
a2VyLmNwcAkocmV2aXNpb24gMjgzNzQpCisrKyBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2VUcmFj
a2VyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI1LDcgKzEyNSw3IEBACiAKIGJvb2wgRGF0YWJh
c2VUcmFja2VyOjpjYW5Fc3RhYmxpc2hEYXRhYmFzZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdW5zaWduZWQgbG9uZyBl
c3RpbWF0ZWRTaXplKQogewotICAgIFNlY3VyaXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhID0gZG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuc2VjdXJpdHlPcmlnaW5EYXRhKCk7CisgICAgU2VjdXJp
dHlPcmlnaW5EYXRhIG9yaWdpbkRhdGEgPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS0+c2Vj
dXJpdHlPcmlnaW5EYXRhKCk7CiAgICAgCiAgICAgLy8gSWYgdGhpcyBvcmlnaW4gaGFzIG5vIGRh
dGFiYXNlcyB5ZXQsIGVzdGFibGlzaCBhbiBlbnRyeSBpbiB0aGUgdHJhY2tlciBkYXRhYmFzZSB3
aXRoIHRoZSBkZWZhdWx0IHF1b3RhCiAgICAgaWYgKCFoYXNFbnRyeUZvck9yaWdpbihvcmlnaW5E
YXRhKSkKSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAkocmV2aXNpb24gMjgzNzQpCisrKyBXZWJDb3Jl
L3N0b3JhZ2UvRGF0YWJhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05Nyw3ICs5Nyw3IEBACiB7
CiAgICAgaWYgKCFEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXIoKS5jYW5Fc3RhYmxpc2hEYXRhYmFz
ZShkb2N1bWVudCwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpKSB7CiAgICAgICAg
IC8vIFRoZXJlIHNob3VsZCBiZSBhbiBleGNlcHRpb24gcmFpc2VkIGhlcmUgaW4gYWRkaXRpb24g
dG8gcmV0dXJuaW5nIGEgbnVsbCBEYXRhYmFzZSBvYmplY3QuICBUaGUgcXVlc3Rpb24gaGFzIGJl
ZW4gcmFpc2VkIHdpdGggdGhlIFdIQVRXRwotICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkRhdGFi
YXNlICVzIGZvciBvcmlnaW4gJXMgbm90IGFsbG93ZWQgdG8gYmUgZXN0YWJsaXNoZWQiLCBuYW1l
LmFzY2lpKCkuZGF0YSgpLCBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLmFz
Y2lpKCkuZGF0YSgpKTsKKyAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJEYXRhYmFzZSAlcyBmb3Ig
b3JpZ2luICVzIG5vdCBhbGxvd2VkIHRvIGJlIGVzdGFibGlzaGVkIiwgbmFtZS5hc2NpaSgpLmRh
dGEoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkuYXNjaWkoKS5kYXRh
KCkpOwogICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCkBAIC0xMDgsNyArMTA4LDcgQEAK
ICAgICAgICByZXR1cm4gMDsKICAgICB9CiAgICAgCi0gICAgRGF0YWJhc2VUcmFja2VyOjp0cmFj
a2VyKCkuc2V0RGF0YWJhc2VEZXRhaWxzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLnNlY3Vy
aXR5T3JpZ2luRGF0YSgpLCBuYW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSk7CisgICAg
RGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJhc2VEZXRhaWxzKGRvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpLT5zZWN1cml0eU9yaWdpbkRhdGEoKSwgbmFtZSwgZGlzcGxheU5hbWUs
IGVzdGltYXRlZFNpemUpOwogCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+ZnJhbWUo
KS0+cGFnZSgpKQogICAgICAgICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZE9wZW5E
YXRhYmFzZShkYXRhYmFzZS5nZXQoKSwgZG9jdW1lbnQtPmRvbWFpbigpLCBuYW1lLCBleHBlY3Rl
ZFZlcnNpb24pOwpAQCAtMTMxLDcgKzEzMSw3IEBACiAKICAgICBpbml0aWFsaXplVGhyZWFkaW5n
KCk7CiAKLSAgICBtX2d1aWQgPSBndWlkRm9yT3JpZ2luQW5kTmFtZShtX3NlY3VyaXR5T3JpZ2lu
LnRvU3RyaW5nKCksIG5hbWUpOworICAgIG1fZ3VpZCA9IGd1aWRGb3JPcmlnaW5BbmROYW1lKG1f
c2VjdXJpdHlPcmlnaW4tPnRvU3RyaW5nKCksIG5hbWUpOwogCiAgICAgewogICAgICAgICBNdXRl
eExvY2tlciBsb2NrZXIoZ3VpZE11dGV4KCkpOwpAQCAtMTQ4LDcgKzE0OCw3IEBACiAgICAgbV9k
YXRhYmFzZVRocmVhZCA9IGRvY3VtZW50LT5kYXRhYmFzZVRocmVhZCgpOwogICAgIEFTU0VSVCht
X2RhdGFiYXNlVGhyZWFkKTsKIAotICAgIG1fZmlsZW5hbWUgPSBEYXRhYmFzZVRyYWNrZXI6OnRy
YWNrZXIoKS5mdWxsUGF0aEZvckRhdGFiYXNlKG1fc2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmln
aW5EYXRhKCksIG1fbmFtZSk7CisgICAgbV9maWxlbmFtZSA9IERhdGFiYXNlVHJhY2tlcjo6dHJh
Y2tlcigpLmZ1bGxQYXRoRm9yRGF0YWJhc2UobV9zZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmln
aW5EYXRhKCksIG1fbmFtZSk7CiB9CiAKIERhdGFiYXNlOjp+RGF0YWJhc2UoKQpJbmRleDogV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAkocmV2aXNpb24gMjgzNzQpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2MTEsNTggKzI2MTEsNTEgQEAKIAogU3RyaW5nIERvY3VtZW50Ojpkb21h
aW4oKSBjb25zdAogewotICAgIGlmIChtX2RvbWFpbi5pc0VtcHR5KCkpIC8vIG5vdCBzZXQgeWV0
ICh3ZSBzZXQgaXQgb24gZGVtYW5kIHRvIHNhdmUgdGltZSBhbmQgc3BhY2UpCi0gICAgICAgIG1f
ZG9tYWluID0gS1VSTChVUkwoKSkuaG9zdCgpOyAvLyBJbml0aWFsbHkgc2V0IHRvIHRoZSBob3N0
Ci0gICAgcmV0dXJuIG1fZG9tYWluOworICAgIHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLT5kb21h
aW4oKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9t
YWluKQogewotICAgIC8vIE5vdCBzZXQgeWV0ICh3ZSBzZXQgaXQgb24gZGVtYW5kIHRvIHNhdmUg
dGltZSBhbmQgc3BhY2UpCi0gICAgLy8gSW5pdGlhbGx5IHNldCB0byB0aGUgaG9zdAotICAgIGlm
IChtX2RvbWFpbi5pc0VtcHR5KCkpCi0gICAgICAgIG1fZG9tYWluID0gS1VSTChVUkwoKSkuaG9z
dCgpOwotCiAgICAgLy8gQm90aCBOUyBhbmQgSUUgc3BlY2lmeSB0aGF0IGNoYW5naW5nIHRoZSBk
b21haW4gaXMgb25seSBhbGxvd2VkIHdoZW4KICAgICAvLyB0aGUgbmV3IGRvbWFpbiBpcyBhIHN1
ZmZpeCBvZiB0aGUgb2xkIGRvbWFpbi4KIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgYWRkIGxv
Z2dpbmcgaW5kaWNhdGluZyB3aHkgYSBkb21haW4gd2FzIG5vdCBhbGxvd2VkLgogCiAgICAgLy8g
SWYgdGhlIG5ldyBkb21haW4gaXMgdGhlIHNhbWUgYXMgdGhlIG9sZCBkb21haW4sIHN0aWxsIGNh
bGwKLSAgICAvLyBtX3NlY3VyaXR5T3JpZ2luLnNldERvbWFpbkZvckRPTS4gVGhpcyB3aWxsIGNo
YW5nZSB0aGUKKyAgICAvLyBtX3NlY3VyaXR5T3JpZ2luLT5zZXREb21haW5Gb3JET00uIFRoaXMg
d2lsbCBjaGFuZ2UgdGhlCiAgICAgLy8gc2VjdXJpdHkgY2hlY2sgYmVoYXZpb3IuIEZvciBleGFt
cGxlLCBpZiBhIHBhZ2UgbG9hZGVkIG9uIHBvcnQgODAwMAogICAgIC8vIGFzc2lnbnMgaXRzIGN1
cnJlbnQgZG9tYWluIHVzaW5nIGRvY3VtZW50LmRvbWFpbiwgdGhlIHBhZ2Ugd2lsbAogICAgIC8v
IGFsbG93IG90aGVyIHBhZ2VzIGxvYWRlZCBvbiBkaWZmZXJlbnQgcG9ydHMgaW4gdGhlIHNhbWUg
ZG9tYWluIHRoYXQKICAgICAvLyBoYXZlIGFsc28gYXNzaWduZWQgdG8gYWNjZXNzIHRoaXMgcGFn
ZS4KLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UobV9kb21haW4sIG5ld0RvbWFpbikpIHsKLSAg
ICAgICAgbV9zZWN1cml0eU9yaWdpbi5zZXREb21haW5Gcm9tRE9NKG5ld0RvbWFpbik7CisgICAg
aWYgKGVxdWFsSWdub3JpbmdDYXNlKGRvbWFpbigpLCBuZXdEb21haW4pKSB7CisgICAgICAgIG1f
c2VjdXJpdHlPcmlnaW4tPnNldERvbWFpbkZyb21ET00obmV3RG9tYWluKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGludCBvbGRMZW5ndGggPSBtX2RvbWFpbi5sZW5ndGgoKTsKKyAg
ICBpbnQgb2xkTGVuZ3RoID0gZG9tYWluKCkubGVuZ3RoKCk7CiAgICAgaW50IG5ld0xlbmd0aCA9
IG5ld0RvbWFpbi5sZW5ndGgoKTsKLSAgICAvLyBlLmcuIG5ld0RvbWFpbiA9IHdlYmtpdC5vcmcg
KDEwKSBhbmQgbV9kb21haW4gPSB3d3cud2Via2l0Lm9yZyAoMTQpCisgICAgLy8gZS5nLiBuZXdE
b21haW4gPSB3ZWJraXQub3JnICgxMCkgYW5kIGRvbWFpbigpID0gd3d3LndlYmtpdC5vcmcgKDE0
KQogICAgIGlmIChuZXdMZW5ndGggPj0gb2xkTGVuZ3RoKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBTdHJpbmcgdGVzdCA9IG1fZG9tYWluLmNvcHkoKTsKKyAgICBTdHJpbmcgdGVzdCA9IGRvbWFp
bigpLmNvcHkoKTsKICAgICAvLyBDaGVjayB0aGF0IGl0J3MgYSBzdWJkb21haW4sIG5vdCBlLmcu
ICJlYmtpdC5vcmciCiAgICAgaWYgKHRlc3Rbb2xkTGVuZ3RoIC0gbmV3TGVuZ3RoIC0gMV0gIT0g
Jy4nKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBOb3cgdGVzdCBpcyAid2Via2l0Lm9yZyIg
ZnJvbSBtX2RvbWFpbgorICAgIC8vIE5vdyB0ZXN0IGlzICJ3ZWJraXQub3JnIiBmcm9tIGRvbWFp
bigpCiAgICAgLy8gYW5kIHdlIGNoZWNrIHRoYXQgaXQncyB0aGUgc2FtZSB0aGluZyBhcyBuZXdE
b21haW4KICAgICB0ZXN0LnJlbW92ZSgwLCBvbGRMZW5ndGggLSBuZXdMZW5ndGgpOwogICAgIGlm
ICh0ZXN0ICE9IG5ld0RvbWFpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9kb21haW4gPSBu
ZXdEb21haW47Ci0gICAgbV9zZWN1cml0eU9yaWdpbi5zZXREb21haW5Gcm9tRE9NKG5ld0RvbWFp
bik7CisgICAgbV9zZWN1cml0eU9yaWdpbi0+c2V0RG9tYWluRnJvbURPTShuZXdEb21haW4pOwog
fQogCiB2b2lkIERvY3VtZW50OjpzZXREb21haW5JbnRlcm5hbChjb25zdCBTdHJpbmcmIG5ld0Rv
bWFpbikKIHsKLSAgICBtX2RvbWFpbiA9IG5ld0RvbWFpbjsKKyAgICAvLyBUT0RPKGFiYXJ0aCk6
IFVuZGVyc3RhbmQgd2hhdCB0aGlzIGlzIHRyeWluZyB0byBkby4KKyAgICAvL21fZG9tYWluID0g
bmV3RG9tYWluOwogfQogCiBTdHJpbmcgRG9jdW1lbnQ6Omxhc3RNb2RpZmllZCgpIGNvbnN0CkBA
IC0zNzQ2LDkgKzM3MzksNyBAQAogCiB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlPcmlnaW4o
KQogewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJuOwotICAgIG1fc2VjdXJpdHlP
cmlnaW4uc2V0Rm9yRnJhbWUobV9mcmFtZSk7CisgICAgbV9zZWN1cml0eU9yaWdpbiA9IFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGVGb3JGcmFtZShtX2ZyYW1lKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6
dXBkYXRlRm9jdXNBcHBlYXJhbmNlU29vbigpCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmgJKHJldmlzaW9uIDI4Mzc0KQor
KysgV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtODUxLDcgKzg1MSw3
IEBACiAjZW5kaWYKIAogICAgIHZvaWQgaW5pdFNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9zZWN1cml0
eU9yaWdpbjsgfQorICAgIFNlY3VyaXR5T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KIAogICAgIGJvb2wgcHJvY2Vzc2luZ0xv
YWRFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2luZ0xvYWRFdmVudDsgfQogCkBAIC04
NzIsMTAgKzg3Miw4IEBACiAgICAgSlNFZGl0b3IqIGpzRWRpdG9yKCk7CiAgICAgSlNFZGl0b3Iq
IG1fanNFZGl0b3I7CiAKLSAgICBtdXRhYmxlIFN0cmluZyBtX2RvbWFpbjsKKyAgICBSZWZQdHI8
U2VjdXJpdHlPcmlnaW4+IG1fc2VjdXJpdHlPcmlnaW47CiAKLSAgICBTZWN1cml0eU9yaWdpbiBt
X3NlY3VyaXR5T3JpZ2luOwotCiAgICAgUmVuZGVyT2JqZWN0KiBtX3NhdmVkUmVuZGVyZXI7CiAg
ICAgaW50IG1fc2VjdXJlRm9ybXM7CiAgICAgCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShy
ZXZpc2lvbiAyODM3NCkKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODc4LDcgKzg3OCw3IEBACiAKIHZvaWQgRnJhbWVMb2FkZXI6OmJlZ2luKGNv
bnN0IEtVUkwmIHVybCwgYm9vbCBkaXNwYXRjaCkKIHsKLSAgICBib29sIHJlc2V0U2NyaXB0aW5n
ID0gIShtX2lzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50ICYmIG1fZnJhbWUtPmRvY3Vt
ZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5pc1NlY3VyZVRy
YW5zaXRpb25Ubyh1cmwpKTsKKyAgICBib29sIHJlc2V0U2NyaXB0aW5nID0gIShtX2lzRGlzcGxh
eWluZ0luaXRpYWxFbXB0eURvY3VtZW50ICYmIG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTZWN1cmVUcmFuc2l0aW9uVG8odXJs
KSk7CiAgICAgY2xlYXIocmVzZXRTY3JpcHRpbmcsIHJlc2V0U2NyaXB0aW5nKTsKICAgICBpZiAo
ZGlzcGF0Y2gpCiAgICAgICAgIGRpc3BhdGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKCk7CkBAIC0y
MzI5LDE0ICsyMzI5LDE0IEBACiAKICAgICBEb2N1bWVudCogYWN0aXZlRG9jdW1lbnQgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpOwogICAgIEFTU0VSVChhY3RpdmVEb2N1bWVudCk7Ci0gICAgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIGFjdGl2ZVNlY3VyaXR5T3JpZ2luID0gYWN0aXZlRG9jdW1lbnQtPnNl
Y3VyaXR5T3JpZ2luKCk7CisgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIGFjdGl2ZVNlY3VyaXR5
T3JpZ2luID0gYWN0aXZlRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgZm9yIChGcmFt
ZSogYW5jZXN0b3JGcmFtZSA9IHRhcmdldEZyYW1lOyBhbmNlc3RvckZyYW1lOyBhbmNlc3RvckZy
YW1lID0gYW5jZXN0b3JGcmFtZS0+dHJlZSgpLT5wYXJlbnQoKSkgewogICAgICAgICBEb2N1bWVu
dCogYW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRnJhbWUtPmRvY3VtZW50KCk7CiAgICAgICAg
IGlmICghYW5jZXN0b3JEb2N1bWVudCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAg
ICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBhbmNlc3RvclNlY3VyaXR5T3JpZ2luID0gYW5jZXN0
b3JEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICAgICAgaWYgKGFjdGl2ZVNlY3VyaXR5
T3JpZ2luLmNhbkFjY2VzcyhhbmNlc3RvclNlY3VyaXR5T3JpZ2luKSkKKyAgICAgICAgY29uc3Qg
U2VjdXJpdHlPcmlnaW4qIGFuY2VzdG9yU2VjdXJpdHlPcmlnaW4gPSBhbmNlc3RvckRvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpOworICAgICAgICBpZiAoYWN0aXZlU2VjdXJpdHlPcmlnaW4tPmNh
bkFjY2VzcyhhbmNlc3RvclNlY3VyaXR5T3JpZ2luKSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>17824</attachid>
            <date>2007-12-10 12:05:22 -0800</date>
            <delta_ts>2007-12-20 14:36:57 -0800</delta_ts>
            <desc>Patch for this issue</desc>
            <filename>can-access.patch</filename>
            <type>text/plain</type>
            <size>29009</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyODU4NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsODYgQEAKKzIwMDctMTItMTAgIEFkYW0gQmFydGggIDxoazk1NjVAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzEzCisKKyAgICAgICAgVGhlIHNh
bWUtb3JpZ2luIGNoZWNrIHdhcyBpbmNvcnJlY3QgaW4gdHdvIGNhc2VzIChib3RoIGZpeGVkIGlu
IHRoaXMKKyAgICAgICAgcGF0Y2gpOgorCisgICAgICAgIEEpIElmIGJvdGggdGhlIHNvdXJjZSBh
bmQgdGhlIHRhcmdldCBoYXZlIHNldCB0aGVpciBkb2N1bWVudC5kb21haW4KKyAgICAgICAgICAg
dG8gdGhlIHNhbWUgdmFsdWUsIHRoZSBwcm90b2NvbCBtdXN0IGFsc28gbWF0Y2ggaW4gb3JkZXIg
Zm9yCisgICAgICAgICAgIGFjY2VzcyB0byBiZSBhbGxvd2VkLiAgV2l0aG91dCB0aGlzIHJlcXVp
cmVtZW50LCB0aGUgYnJvd3NlciBpcworICAgICAgICAgICB2dWxuZXJhYmxlIHRvIHRoZSBmb2xs
b3dpbmcgYXR0YWNrOgorCisgICAgICAgICAgIDEpIFN1cHBvc2UgdGhlcmUgaXMgYW4gSFRUUFMg
c2l0ZSAod3d3LmV4YW1wbGUuY29tKSB0aGF0IHNldHMKKyAgICAgICAgICAgICAgZG9jdW1lbnQu
ZG9tYWluID0gImV4YW1wbGUuY29tIi4KKyAgICAgICAgICAgMikgQSBuZXR3b3JrIGF0dGFja2Vy
IHJlZGlyZWN0cyB0aGUgYnJvd3NlciB0byBodHRwOi8vd3d3LmV4YW1wbGUuY29tLworICAgICAg
ICAgICAgICBhKSBpbmplY3RzIHNjcmlwdCB0byBzZXQgZG9jdW1lbnQuZG9tYWluID0gImV4YW1w
bGUuY29tIiwgYW5kCisgICAgICAgICAgICAgIGIpIG9wZW5zIGEgd2luZG93IHRvIGh0dHBzOi8v
d3d3LmV4YW1wbGUuY29tLworICAgICAgICAgICAzKSBOb3cgdGhlIG5ldHdvcmsgYXR0YWNrZXIg
Y2FuIGluamVjdCBzY3JpcHQgaW50byB0aGUgSFRUUFMgcGFnZSwKKyAgICAgICAgICAgICAgc3Rl
YWxpbmcgY29va2llcyBhbmQgaXNzdWluZyBiYW5raW5nIHRyYW5zYWN0aW9ucy4KKworICAgICAg
ICBCKSBJZiBvbmx5IG9uZSBvZiB0aGUgc291cmNlIGFuZCB0YXJnZXQgaGFzIHNldCBkb2N1bWVu
dC5kb21haW4sIHRoZW4KKyAgICAgICAgICAgYWNjZXNzIHNob3VsZCBiZSBkZW5pZWQuICBXaXRo
IHRoaXMgYmVoYXZpb3IsIHRoZSBicm93c2VyIGlzCisgICAgICAgICAgIHZ1bG5lcmFibGUgdG8g
dGhlIGZvbGxvd2luZyBhdHRhY2s6CisKKyAgICAgICAgICAgMSkgU3VwcG9zZSBodHRwOi8vZm9v
LmV4YW1wbGUuY29tLyBvcGVucyBhbiBpZnJhbWUgdG8KKyAgICAgICAgICAgICAgaHR0cDovL2Zv
by5leGFtcGxlLmNvbS9mcmFtZS5odG1sIHRoYXQKKyAgICAgICAgICAgICAgYSkgc2V0cyBkb2N1
bWVudC5kb21haW4gPSAiZXhhbXBsZS5jb20iLCBhbmQKKyAgICAgICAgICAgICAgYikgb3BlbnMg
YW4gaWZyYW1lIHRvIGh0dHA6Ly9iYXIuZXhhbXBsZS5jb20vCisgICAgICAgICAgICAgIFRoaXMg
aXMgYSBjb21tb24gdXNhZ2Ugb2YgZG9jdW1lbnQuZG9tYWluIGZvciBjcm9zcy1kb21haW4KKyAg
ICAgICAgICAgICAgY29tbXVuaWNhdGlvbiwgc2VlIGZvciBleGFtcGxlOgorICAgICAgICAgICAg
ICAgIGh0dHA6Ly93d3cuY29sbGluamFja3Nvbi5jb20vcmVzZWFyY2gvcGFwZXJzL2ZwODAxLWph
Y2tzb24ucGRmCisgICAgICAgICAgIDIpIFRoZSBpbm5lci1tb3N0IGlmcmFtZSwgd2hpY2ggaXMg
ZnJvbSBiYXIuZXhhbXBsZS5jb20sIHNldHMKKyAgICAgICAgICAgICAgZG9jdW1lbnQuZG9tYWlu
ID0gImV4YW1wbGUuY29tIi4KKyAgICAgICAgICAgMykgTm93IHRoZSBpbm5lci1tb3N0IGlmcmFt
ZSBjYW4gaW5qZWN0IHNjcmlwdCBpbnRvIHRoZSBtaWRkbGUKKyAgICAgICAgICAgICAgaWZyYW1l
IChzYXkgdmlhIGRvY3VtZW50LndyaXRlKS4gIFRoaXMgYmFyLmV4YW1wbGUuY29tIHNjcmlwdAor
ICAgICAgICAgICAgICBub3cgaGFzIGFjY2VzcyB0byB0aGUgb3V0ZXItbW9zdCBmcmFtZSAoZnJv
bSBmb28uZXhhbXBsZS5jb20pLgorCisgICAgICAgIEJvdGggdGhlc2UgY2hhbmdlcyBjYXVzZSBX
ZWJLaXQgdG8gbWF0Y2ggdGhlIGJlaGF2aW9yIG9mIEZpcmVmb3ggMiBhbmQKKyAgICAgICAgSUU2
IGluIHRoZXNlIGNhc2VzLiAgVGhpcyBwYXRjaCBpbmNsdWRlcyByZWdyZXNzaW9uIHRlc3RzIGZv
ciBib3RoCisgICAgICAgIGlzc3Vlcy4KKworICAgICAgICBJbnRlcm5ldCBFeHBsb3JlciA3IGFu
ZCBPcGVyYSA5IGFyZSBtb3JlIHN0cmljdCBpbiB0aGF0IHRoZXkgcmVxdWlyZQorICAgICAgICB0
aGUgcG9ydCBudW1iZXJzIHRvIG1hdGNoIHdoZW4gYm90aCBwYWdlcyBoYXZlIGRvY3VtZW50LmRv
bWFpbiBzZXQuCisgICAgICAgIE9wZXJhIDkgYWxsb3dzIGFjY2VzcyB3aGVuIG9ubHkgb25lIHBh
Z2UgaGFzIHNldCBkb2N1bWVudC5kb21haW4sIGJ1dAorICAgICAgICB0aGlzIGlzIGEgc2VjdXJp
dHkgdnVsbmVyYWJpbGl0eS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtY2hpbGQtZXhwbGljaXQtZG9tYWluLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1leHBsaWNp
dC1kb21haW4uaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtcHJvdG9jb2wtZXhwbGljaXQtZG9tYWluLmh0bWwKKworICAgICAgICAqIGJp
bmRpbmdzL2pzL2tqc193aW5kb3cuY3BwOgorICAgICAgICAoS0pTOjpjcmVhdGVXaW5kb3cpOgor
ICAgICAgICAoS0pTOjpXaW5kb3c6OmFsbG93c0FjY2Vzc0Zyb20pOgorICAgICAgICAqIGRvbS9E
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6ZG9tYWluKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREb21haW4pOgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OmluaXRTZWN1cml0eU9yaWdpbik6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2VjdXJpdHlPcmlnaW4pOgorICAgICAgICAqIGxv
YWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6YmVn
aW4pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNoZWNrQ2FsbEltcGxpY2l0Q2xv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnNob3VsZEFsbG93TmF2aWdhdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW46OnNldEZvclVSTCk6CisgICAgICAgIChXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlRm9yRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OmNhbkFjY2Vzcyk6CisgICAgICAgICogcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uaDoK
KyAgICAgICAgKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpkb21haW4pOgorICAgICAgICAqIHN0
b3JhZ2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6Om9wZW5EYXRh
YmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6RGF0YWJhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6RGF0YWJhc2U6OnNlY3VyaXR5T3JpZ2luRGF0YSk6CisgICAgICAgICogc3RvcmFn
ZS9EYXRhYmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OmRhdGFiYXNlRGVidWdO
YW1lKToKKyAgICAgICAgKiBzdG9yYWdlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OmNhbkVzdGFibGlzaERhdGFiYXNlKToKKyAgICAgICAg
KiBzdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5z
YWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5z
YWN0aW9uOjpjbGVhbnVwQWZ0ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2spOgorCiAyMDA3LTEy
LTEwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSdWJiZXJz
dGFtcGVkIGJ5IEpvaG4KSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMva2pzX3dpbmRvdy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9ranNfd2luZG93LmNwcAkocmV2aXNp
b24gMjg1ODUpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL2tqc193aW5kb3cuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zODgsMTAgKzM4OCw4IEBAIHN0YXRpYyBGcmFtZSogY3JlYXRlV2luZG93KEV4
ZWNTdGF0ZSogZXgKICAgICAgICAgCiAgICAgICAgIGlmIChjcmVhdGVkKSB7CiAgICAgICAgICAg
ICBuZXdGcmFtZS0+bG9hZGVyKCktPmNoYW5nZUxvY2F0aW9uKEtVUkwoY29tcGxldGVkVVJMLmRl
cHJlY2F0ZWRTdHJpbmcoKSksIGFjdGl2ZUZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJl
cigpLCBmYWxzZSwgdXNlckdlc3R1cmUpOwotICAgICAgICAgICAgaWYgKERvY3VtZW50KiBvbGRE
b2MgPSBvcGVuZXJGcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICAgICAgICAgIG5ld0ZyYW1l
LT5kb2N1bWVudCgpLT5zZXREb21haW5JbnRlcm5hbChvbGREb2MtPmRvbWFpbigpKTsKKyAgICAg
ICAgICAgIGlmIChEb2N1bWVudCogb2xkRG9jID0gb3BlbmVyRnJhbWUtPmRvY3VtZW50KCkpCiAg
ICAgICAgICAgICAgICAgbmV3RnJhbWUtPmRvY3VtZW50KCktPnNldEJhc2VVUkwob2xkRG9jLT5i
YXNlVVJMKCkpOwotICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKCF1cmwuaXNFbXB0
eSgpKQogICAgICAgICAgICAgbmV3RnJhbWUtPmxvYWRlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hh
bmdlKGNvbXBsZXRlZFVSTCwgYWN0aXZlRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVy
KCksIGZhbHNlLCB1c2VyR2VzdHVyZSk7CiAgICAgfQpAQCAtODUxLDEwICs4NDksMTAgQEAgYm9v
bCBXaW5kb3c6OmFsbG93c0FjY2Vzc0Zyb20oY29uc3QgSlNHbAogCiAgICAgV2ViQ29yZTo6RG9j
dW1lbnQqIG9yaWdpbkRvY3VtZW50ID0gb3JpZ2luRnJhbWUtPmRvY3VtZW50KCk7CiAKLSAgICBj
b25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luU2VjdXJpdHlPcmlnaW4gPSBvcmlnaW5Eb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKTsKLSAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgdGFyZ2V0U2Vj
dXJpdHlPcmlnaW4gPSB0YXJnZXREb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBjb25z
dCBTZWN1cml0eU9yaWdpbiogb3JpZ2luU2VjdXJpdHlPcmlnaW4gPSBvcmlnaW5Eb2N1bWVudC0+
c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBjb25zdCBTZWN1cml0eU9yaWdpbiogdGFyZ2V0U2VjdXJp
dHlPcmlnaW4gPSB0YXJnZXREb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKIAotICAgIGlmIChv
cmlnaW5TZWN1cml0eU9yaWdpbi5jYW5BY2Nlc3ModGFyZ2V0U2VjdXJpdHlPcmlnaW4pKQorICAg
IGlmIChvcmlnaW5TZWN1cml0eU9yaWdpbi0+Y2FuQWNjZXNzKHRhcmdldFNlY3VyaXR5T3JpZ2lu
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICBpZiAoIXRhcmdldEZyYW1lLT5zZXR0aW5n
cygpLT5wcml2YXRlQnJvd3NpbmdFbmFibGVkKCkpIHsKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAJKHJldmlzaW9u
IDI4NTg1KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
NjExLDU4ICsyNjExLDQ1IEBAIFN0cmluZyBEb2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAogCiBT
dHJpbmcgRG9jdW1lbnQ6OmRvbWFpbigpIGNvbnN0CiB7Ci0gICAgaWYgKG1fZG9tYWluLmlzRW1w
dHkoKSkgLy8gbm90IHNldCB5ZXQgKHdlIHNldCBpdCBvbiBkZW1hbmQgdG8gc2F2ZSB0aW1lIGFu
ZCBzcGFjZSkKLSAgICAgICAgbV9kb21haW4gPSBLVVJMKFVSTCgpKS5ob3N0KCk7IC8vIEluaXRp
YWxseSBzZXQgdG8gdGhlIGhvc3QKLSAgICByZXR1cm4gbV9kb21haW47CisgICAgcmV0dXJuIG1f
c2VjdXJpdHlPcmlnaW4tPmRvbWFpbigpOwogfQogCiB2b2lkIERvY3VtZW50OjpzZXREb21haW4o
Y29uc3QgU3RyaW5nJiBuZXdEb21haW4pCiB7Ci0gICAgLy8gTm90IHNldCB5ZXQgKHdlIHNldCBp
dCBvbiBkZW1hbmQgdG8gc2F2ZSB0aW1lIGFuZCBzcGFjZSkKLSAgICAvLyBJbml0aWFsbHkgc2V0
IHRvIHRoZSBob3N0Ci0gICAgaWYgKG1fZG9tYWluLmlzRW1wdHkoKSkKLSAgICAgICAgbV9kb21h
aW4gPSBLVVJMKFVSTCgpKS5ob3N0KCk7Ci0KICAgICAvLyBCb3RoIE5TIGFuZCBJRSBzcGVjaWZ5
IHRoYXQgY2hhbmdpbmcgdGhlIGRvbWFpbiBpcyBvbmx5IGFsbG93ZWQgd2hlbgogICAgIC8vIHRo
ZSBuZXcgZG9tYWluIGlzIGEgc3VmZml4IG9mIHRoZSBvbGQgZG9tYWluLgogCiAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBhZGQgbG9nZ2luZyBpbmRpY2F0aW5nIHdoeSBhIGRvbWFpbiB3YXMgbm90
IGFsbG93ZWQuCiAKICAgICAvLyBJZiB0aGUgbmV3IGRvbWFpbiBpcyB0aGUgc2FtZSBhcyB0aGUg
b2xkIGRvbWFpbiwgc3RpbGwgY2FsbAotICAgIC8vIG1fc2VjdXJpdHlPcmlnaW4uc2V0RG9tYWlu
Rm9yRE9NLiBUaGlzIHdpbGwgY2hhbmdlIHRoZQorICAgIC8vIG1fc2VjdXJpdHlPcmlnaW4tPnNl
dERvbWFpbkZvckRPTS4gVGhpcyB3aWxsIGNoYW5nZSB0aGUKICAgICAvLyBzZWN1cml0eSBjaGVj
ayBiZWhhdmlvci4gRm9yIGV4YW1wbGUsIGlmIGEgcGFnZSBsb2FkZWQgb24gcG9ydCA4MDAwCiAg
ICAgLy8gYXNzaWducyBpdHMgY3VycmVudCBkb21haW4gdXNpbmcgZG9jdW1lbnQuZG9tYWluLCB0
aGUgcGFnZSB3aWxsCiAgICAgLy8gYWxsb3cgb3RoZXIgcGFnZXMgbG9hZGVkIG9uIGRpZmZlcmVu
dCBwb3J0cyBpbiB0aGUgc2FtZSBkb21haW4gdGhhdAogICAgIC8vIGhhdmUgYWxzbyBhc3NpZ25l
ZCB0byBhY2Nlc3MgdGhpcyBwYWdlLgotICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtX2RvbWFp
biwgbmV3RG9tYWluKSkgewotICAgICAgICBtX3NlY3VyaXR5T3JpZ2luLnNldERvbWFpbkZyb21E
T00obmV3RG9tYWluKTsKKyAgICBpZiAoZXF1YWxJZ25vcmluZ0Nhc2UoZG9tYWluKCksIG5ld0Rv
bWFpbikpIHsKKyAgICAgICAgbV9zZWN1cml0eU9yaWdpbi0+c2V0RG9tYWluRnJvbURPTShuZXdE
b21haW4pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaW50IG9sZExlbmd0aCA9IG1f
ZG9tYWluLmxlbmd0aCgpOworICAgIGludCBvbGRMZW5ndGggPSBkb21haW4oKS5sZW5ndGgoKTsK
ICAgICBpbnQgbmV3TGVuZ3RoID0gbmV3RG9tYWluLmxlbmd0aCgpOwotICAgIC8vIGUuZy4gbmV3
RG9tYWluID0gd2Via2l0Lm9yZyAoMTApIGFuZCBtX2RvbWFpbiA9IHd3dy53ZWJraXQub3JnICgx
NCkKKyAgICAvLyBlLmcuIG5ld0RvbWFpbiA9IHdlYmtpdC5vcmcgKDEwKSBhbmQgZG9tYWluKCkg
PSB3d3cud2Via2l0Lm9yZyAoMTQpCiAgICAgaWYgKG5ld0xlbmd0aCA+PSBvbGRMZW5ndGgpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIFN0cmluZyB0ZXN0ID0gbV9kb21haW4uY29weSgpOworICAg
IFN0cmluZyB0ZXN0ID0gZG9tYWluKCkuY29weSgpOwogICAgIC8vIENoZWNrIHRoYXQgaXQncyBh
IHN1YmRvbWFpbiwgbm90IGUuZy4gImVia2l0Lm9yZyIKICAgICBpZiAodGVzdFtvbGRMZW5ndGgg
LSBuZXdMZW5ndGggLSAxXSAhPSAnLicpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIE5vdyB0
ZXN0IGlzICJ3ZWJraXQub3JnIiBmcm9tIG1fZG9tYWluCisgICAgLy8gTm93IHRlc3QgaXMgIndl
YmtpdC5vcmciIGZyb20gZG9tYWluKCkKICAgICAvLyBhbmQgd2UgY2hlY2sgdGhhdCBpdCdzIHRo
ZSBzYW1lIHRoaW5nIGFzIG5ld0RvbWFpbgogICAgIHRlc3QucmVtb3ZlKDAsIG9sZExlbmd0aCAt
IG5ld0xlbmd0aCk7CiAgICAgaWYgKHRlc3QgIT0gbmV3RG9tYWluKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX2RvbWFpbiA9IG5ld0RvbWFpbjsKLSAgICBtX3NlY3VyaXR5T3JpZ2luLnNldERv
bWFpbkZyb21ET00obmV3RG9tYWluKTsKLX0KLQotdm9pZCBEb2N1bWVudDo6c2V0RG9tYWluSW50
ZXJuYWwoY29uc3QgU3RyaW5nJiBuZXdEb21haW4pCi17Ci0gICAgbV9kb21haW4gPSBuZXdEb21h
aW47CisgICAgbV9zZWN1cml0eU9yaWdpbi0+c2V0RG9tYWluRnJvbURPTShuZXdEb21haW4pOwog
fQogCiBTdHJpbmcgRG9jdW1lbnQ6Omxhc3RNb2RpZmllZCgpIGNvbnN0CkBAIC0zNzQ2LDkgKzM3
MzMsNyBAQCBib29sIERvY3VtZW50Ojp1c2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlCiAKIHZvaWQg
RG9jdW1lbnQ6OmluaXRTZWN1cml0eU9yaWdpbigpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lKQotICAg
ICAgICByZXR1cm47Ci0gICAgbV9zZWN1cml0eU9yaWdpbi5zZXRGb3JGcmFtZShtX2ZyYW1lKTsK
KyAgICBtX3NlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZvckZyYW1lKG1f
ZnJhbWUpOwogfQogCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVGb2N1c0FwcGVhcmFuY2VTb29uKCkK
SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RG9jdW1lbnQuaAkocmV2aXNpb24gMjg1ODUpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NTYsNyArNTU2LDYgQEAgcHVibGljOgogCiAgICAgU3RyaW5nIGRv
bWFpbigpIGNvbnN0OwogICAgIHZvaWQgc2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWlu
KTsKLSAgICB2b2lkIHNldERvbWFpbkludGVybmFsKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKTsK
IAogICAgIFN0cmluZyBsYXN0TW9kaWZpZWQoKSBjb25zdDsKIApAQCAtODUxLDcgKzg1MCw3IEBA
IHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBpbml0U2VjdXJpdHlPcmlnaW4oKTsKLSAgICBj
b25zdCBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Nl
Y3VyaXR5T3JpZ2luOyB9CisgICAgU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3JpZ2luKCkgY29u
c3QgeyByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogCiAgICAgYm9vbCBwcm9jZXNz
aW5nTG9hZEV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzaW5nTG9hZEV2ZW50OyB9CiAK
QEAgLTg3Miw5ICs4NzEsNyBAQCBwcml2YXRlOgogICAgIEpTRWRpdG9yKiBqc0VkaXRvcigpOwog
ICAgIEpTRWRpdG9yKiBtX2pzRWRpdG9yOwogCi0gICAgbXV0YWJsZSBTdHJpbmcgbV9kb21haW47
Ci0KLSAgICBTZWN1cml0eU9yaWdpbiBtX3NlY3VyaXR5T3JpZ2luOworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKIAogICAgIFJlbmRlck9iamVjdCogbV9zYXZl
ZFJlbmRlcmVyOwogICAgIGludCBtX3NlY3VyZUZvcm1zOwpJbmRleDogV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmNwcAkocmV2aXNpb24gMjg1ODUpCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTg4Miw3ICs4ODIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpiZWdp
bigpCiAKIHZvaWQgRnJhbWVMb2FkZXI6OmJlZ2luKGNvbnN0IEtVUkwmIHVybCwgYm9vbCBkaXNw
YXRjaCkKIHsKLSAgICBib29sIHJlc2V0U2NyaXB0aW5nID0gIShtX2lzRGlzcGxheWluZ0luaXRp
YWxFbXB0eURvY3VtZW50ICYmIG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1l
bnQoKS0+c2VjdXJpdHlPcmlnaW4oKS5pc1NlY3VyZVRyYW5zaXRpb25Ubyh1cmwpKTsKKyAgICBi
b29sIHJlc2V0U2NyaXB0aW5nID0gIShtX2lzRGlzcGxheWluZ0luaXRpYWxFbXB0eURvY3VtZW50
ICYmIG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKS0+aXNTZWN1cmVUcmFuc2l0aW9uVG8odXJsKSk7CiAgICAgY2xlYXIocmVzZXRTY3Jp
cHRpbmcsIHJlc2V0U2NyaXB0aW5nKTsKICAgICBpZiAoZGlzcGF0Y2gpCiAgICAgICAgIGRpc3Bh
dGNoV2luZG93T2JqZWN0QXZhaWxhYmxlKCk7CkBAIC0xMjk3LDE2ICsxMjk3LDYgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6Y2hlY2tDYWxsSW1wbGljaXRDbG9zZQogICAgICAgICBpZiAoIWNoaWxkLT5s
b2FkZXIoKS0+bV9pc0NvbXBsZXRlKSAvLyBzdGlsbCBnb3QgYSBmcmFtZSBydW5uaW5nIC0+IHRv
byBlYXJseQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gQWxsIGZyYW1lcyBjb21wbGV0
ZWQgLT4gc2V0IHRoZWlyIGRvbWFpbiB0byB0aGUgZnJhbWVzZXQncyBkb21haW4KLSAgICAvLyBU
aGlzIG11c3Qgb25seSBiZSBkb25lIHdoZW4gbG9hZGluZyB0aGUgZnJhbWVzZXQgaW5pdGlhbGx5
ICgjMjIwMzkpLAotICAgIC8vIG5vdCB3aGVuIGZvbGxvd2luZyBhIGxpbmsgaW4gYSBmcmFtZSAo
IzQ0MTYyKS4KLSAgICBpZiAobV9mcmFtZS0+ZG9jdW1lbnQoKSkgewotICAgICAgICBTdHJpbmcg
ZG9tYWluID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tYWluKCk7Ci0gICAgICAgIGZvciAoRnJh
bWUqIGNoaWxkID0gbV9mcmFtZS0+dHJlZSgpLT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9
IGNoaWxkLT50cmVlKCktPm5leHRTaWJsaW5nKCkpCi0gICAgICAgICAgICBpZiAoY2hpbGQtPmRv
Y3VtZW50KCkpCi0gICAgICAgICAgICAgICAgY2hpbGQtPmRvY3VtZW50KCktPnNldERvbWFpbklu
dGVybmFsKGRvbWFpbik7Ci0gICAgfQotCiAgICAgbV9kaWRDYWxsSW1wbGljaXRDbG9zZSA9IHRy
dWU7CiAgICAgbV93YXNVbmxvYWRFdmVudEVtaXR0ZWQgPSBmYWxzZTsKICAgICBpZiAobV9mcmFt
ZS0+ZG9jdW1lbnQoKSkKQEAgLTIzNDYsMTQgKzIzMzYsMTQgQEAgYm9vbCBGcmFtZUxvYWRlcjo6
c2hvdWxkQWxsb3dOYXZpZ2F0aW9uKAogCiAgICAgRG9jdW1lbnQqIGFjdGl2ZURvY3VtZW50ID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKTsKICAgICBBU1NFUlQoYWN0aXZlRG9jdW1lbnQpOwotICAgIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBhY3RpdmVTZWN1cml0eU9yaWdpbiA9IGFjdGl2ZURvY3VtZW50
LT5zZWN1cml0eU9yaWdpbigpOworICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBhY3RpdmVTZWN1
cml0eU9yaWdpbiA9IGFjdGl2ZURvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwogICAgIGZvciAo
RnJhbWUqIGFuY2VzdG9yRnJhbWUgPSB0YXJnZXRGcmFtZTsgYW5jZXN0b3JGcmFtZTsgYW5jZXN0
b3JGcmFtZSA9IGFuY2VzdG9yRnJhbWUtPnRyZWUoKS0+cGFyZW50KCkpIHsKICAgICAgICAgRG9j
dW1lbnQqIGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckZyYW1lLT5kb2N1bWVudCgpOwogICAg
ICAgICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAot
ICAgICAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgYW5jZXN0b3JTZWN1cml0eU9yaWdpbiA9IGFu
Y2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7Ci0gICAgICAgIGlmIChhY3RpdmVTZWN1
cml0eU9yaWdpbi5jYW5BY2Nlc3MoYW5jZXN0b3JTZWN1cml0eU9yaWdpbikpCisgICAgICAgIGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiBhbmNlc3RvclNlY3VyaXR5T3JpZ2luID0gYW5jZXN0b3JEb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgaWYgKGFjdGl2ZVNlY3VyaXR5T3JpZ2lu
LT5jYW5BY2Nlc3MoYW5jZXN0b3JTZWN1cml0eU9yaWdpbikpCiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCShyZXZp
c2lvbiAyODU4NSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02Miw0NCArNjIsNTggQEAgYm9vbCBTZWN1cml0eU9yaWdpbjo6aXNFbXB0
eSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJvdG9jb2wuaXNFbXB0eSgpOwogfQogCi12b2lkIFNl
Y3VyaXR5T3JpZ2luOjpzZXRGb3JGcmFtZShGcmFtZSogZnJhbWUpCit2b2lkIFNlY3VyaXR5T3Jp
Z2luOjpzZXRGb3JVUkwoY29uc3QgS1VSTCYgdXJsKQogewogICAgIGNsZWFyKCk7CiAKKyAgICBp
ZiAodXJsLmlzRW1wdHkoKSkKKyAgICAgIHJldHVybjsKKworICAgIG1fcHJvdG9jb2wgPSB1cmwu
cHJvdG9jb2woKS5sb3dlcigpOworICAgIG1faG9zdCA9IHVybC5ob3N0KCkubG93ZXIoKTsKKyAg
ICBtX3BvcnQgPSB1cmwucG9ydCgpOworCisgICAgaWYgKG1fcG9ydCkKKyAgICAgICAgbV9wb3J0
U2V0ID0gdHJ1ZTsKKworICAgIC8vIGRhdGE6IFVSTHMgYXJlIG5vdCBhbGxvd2VkIGFjY2VzcyB0
byBhbnl0aGluZyBvdGhlciB0aGFuIHRoZW1zZWx2ZXMuCisgICAgaWYgKG1fcHJvdG9jb2wgPT0g
ImRhdGEiKQorICAgICAgICBtX25vQWNjZXNzID0gdHJ1ZTsKK30KKworUGFzc1JlZlB0cjxTZWN1
cml0eU9yaWdpbj4gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZvckZyYW1lKEZyYW1lKiBmcmFtZSkK
K3sKKyAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG9yaWdpbiA9IG5ldyBTZWN1cml0eU9yaWdp
bigpOworCisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG9yaWdpbjsKKwogICAgIEZy
YW1lTG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCk7CiAgICAgY29uc3QgS1VSTCYgc2Vj
dXJpdHlQb2xpY3lVUkwgPSBsb2FkZXItPnVybCgpOwogCi0gICAgaWYgKCFzZWN1cml0eVBvbGlj
eVVSTC5pc0VtcHR5KCkpIHsKLSAgICAgICAgbV9wcm90b2NvbCA9IHNlY3VyaXR5UG9saWN5VVJM
LnByb3RvY29sKCkubG93ZXIoKTsKLSAgICAgICAgbV9ob3N0ID0gc2VjdXJpdHlQb2xpY3lVUkwu
aG9zdCgpLmxvd2VyKCk7Ci0gICAgICAgIG1fcG9ydCA9IHNlY3VyaXR5UG9saWN5VVJMLnBvcnQo
KTsKLSAgICAgICAgaWYgKG1fcG9ydCkKLSAgICAgICAgICAgIG1fcG9ydFNldCA9IHRydWU7Ci0K
LSAgICAgICAgLy8gZGF0YTogVVJMcyBhcmUgbm90IGFsbG93ZWQgYWNjZXNzIHRvIGFueXRoaW5n
IG90aGVyIHRoYW4gdGhlbXNlbHZlcy4KLSAgICAgICAgaWYgKG1fcHJvdG9jb2wgPT0gImRhdGEi
KSB7Ci0gICAgICAgICAgICBtX25vQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgfQorICAgIG9yaWdpbi0+c2V0Rm9yVVJMKHNlY3VyaXR5UG9saWN5VVJMKTsKIAot
ICAgICAgICAvLyBPbmx5IGluIHRoZSBjYXNlIG9mIGFib3V0OmJsYW5rIG9yIGphdmFzY3JpcHQ6
IFVSTHMgKHdoaWNoIGNyZWF0ZSBkb2N1bWVudHMgdXNpbmcgdGhlICJhYm91dCIgCi0gICAgICAg
IC8vIHByb3RvY29sKSBkbyB3ZSB3YW50IHRvIHVzZSB0aGUgcGFyZW50IG9yIG9wZW5lcnMgVVJM
IGFzIHRoZSBvcmlnaW4uCi0gICAgICAgIGlmIChtX3Byb3RvY29sICE9ICJhYm91dCIpCi0gICAg
ICAgICAgICByZXR1cm47Ci0gICAgfQorICAgIGlmICghb3JpZ2luLT5pc0VtcHR5KCkgJiYgb3Jp
Z2luLT5tX3Byb3RvY29sICE9ICJhYm91dCIpCisgICAgICAgIHJldHVybiBvcmlnaW47CisKKyAg
ICAvLyBJbiB0aGUgY2FzZSBvZiBhYm91dDpibGFuayBvciBqYXZhc2NyaXB0OiBVUkxzICh3aGlj
aCBjcmVhdGUgCisgICAgLy8gZG9jdW1lbnRzIHVzaW5nIHRoZSAiYWJvdXQiIHByb3RvY29sKSBk
byB3ZSB3YW50IHRvIHVzZSB0aGUKKyAgICAvLyBwYXJlbnQgb3Igb3BlbmVycyBvcmlnaW4uCiAK
ICAgICBGcmFtZSogb3BlbmVyRnJhbWUgPSBmcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKICAgICBp
ZiAoIW9wZW5lckZyYW1lKSB7CiAgICAgICAgIG9wZW5lckZyYW1lID0gbG9hZGVyLT5vcGVuZXIo
KTsKICAgICAgICAgaWYgKCFvcGVuZXJGcmFtZSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIHJldHVybiBvcmlnaW47CiAgICAgfQogCiAgICAgRG9jdW1lbnQqIG9wZW5lckRvY3Vt
ZW50ID0gb3BlbmVyRnJhbWUtPmRvY3VtZW50KCk7CiAgICAgaWYgKCFvcGVuZXJEb2N1bWVudCkK
LSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gb3JpZ2luOwogCi0gICAgKnRoaXMgPSBv
cGVuZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAvLyBXZSBhbGlhcyB0aGUgU2Vj
dXJpdHlPcmlnaW5zIHRvIG1hdGNoIEZpcmVmb3gsIHNlZSBCdWcgMTUzMTMKKyAgICAvLyBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTMxMworICAgIHJldHVybiBvcGVu
ZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKIH0KIAogdm9pZCBTZWN1cml0eU9yaWdpbjo6
c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbikKQEAgLTEwOCwxOCArMTIy
LDQ2IEBAIHZvaWQgU2VjdXJpdHlPcmlnaW46OnNldERvbWFpbkZyb21ET00oY28KICAgICBtX2hv
c3QgPSBuZXdEb21haW4ubG93ZXIoKTsKIH0KIAotYm9vbCBTZWN1cml0eU9yaWdpbjo6Y2FuQWNj
ZXNzKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvdGhlcikgY29uc3QKK2Jvb2wgU2VjdXJpdHlPcmln
aW46OmNhbkFjY2Vzcyhjb25zdCBTZWN1cml0eU9yaWdpbiogb3RoZXIpIGNvbnN0CiB7CiAgICAg
aWYgKEZyYW1lTG9hZGVyOjpzaG91bGRUcmVhdFNjaGVtZUFzTG9jYWwobV9wcm90b2NvbCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1fbm9BY2Nlc3MgfHwgb3RoZXIubV9ub0Fj
Y2VzcykKKyAgICBpZiAobV9ub0FjY2VzcyB8fCBvdGhlci0+bV9ub0FjY2VzcykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1fZG9tYWluV2FzU2V0SW5ET00gJiYgb3RoZXIubV9k
b21haW5XYXNTZXRJbkRPTSAmJiBtX2hvc3QgPT0gb3RoZXIubV9ob3N0KQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAKLSAgICByZXR1cm4gbV9ob3N0ID09IG90aGVyLm1faG9zdCAmJiBtX3Byb3Rv
Y29sID09IG90aGVyLm1fcHJvdG9jb2wgJiYgbV9wb3J0ID09IG90aGVyLm1fcG9ydDsKKyAgICAv
LyBIZXJlIGFyZSB0d28gY2FzZXMgd2hlcmUgd2Ugc2hvdWxkIHBlcm1pdCBhY2Nlc3M6CisgICAg
Ly8KKyAgICAvLyAxKSBOZWl0aGVyIGRvY3VtZW50IGhhcyBzZXQgZG9jdW1lbnQuZG9tYWluLiAg
SW4gdGhpcyBjYXNlLCB3ZSBpbnNpc3QKKyAgICAvLyAgICB0aGF0IHRoZSBzY2hlbWUsIGhvc3Qs
IGFuZCBwb3J0IG9mIHRoZSBVUkxzIG1hdGNoLgorICAgIC8vCisgICAgLy8gMikgQm90aCBkb2N1
bWVudHMgaGF2ZSBzZXQgZG9jdW1lbnQuZG9tYWluLiAgSW4gdGhpcyBjYXNlLCB3ZSBpbnNpc3QK
KyAgICAvLyAgICB0aGF0IHRoZSBkb2N1bWVudHMgaGF2ZSBzZXQgZG9jdW1lbnQuZG9tYWluIHRv
IHRoZSBzYW1lIHZhbHVlIGFuZAorICAgIC8vICAgIHRoYXQgdGhlIHNjaGVtZSBvZiB0aGUgVVJM
cyBtYXRjaC4KKyAgICAvLworICAgIC8vIFRoaXMgbWF0Y2hlcyB0aGUgYmVoYXZpb3Igb2YgRmly
ZWZveCAyIGFuZCBJbnRlcm5ldCBFeHBsb3JlciA2LgorICAgIC8vCisgICAgLy8gSW50ZXJuZXQg
RXhwbG9yZXIgNyBhbmQgT3BlcmEgOSBhcmUgbW9yZSBzdHJpY3QgaW4gdGhhdCB0aGV5IHJlcXVp
cmUKKyAgICAvLyB0aGUgcG9ydCBudW1iZXJzIHRvIG1hdGNoIHdoZW4gYm90aCBwYWdlcyBoYXZl
IGRvY3VtZW50LmRvbWFpbiBzZXQuCisgICAgLy8KKyAgICAvLyBGSVhNRTogRXZhbHVhdGUgd2hl
dGhlciB3ZSBjYW4gdGlnaHRlbiB0aGlzIHBvbGljeSB0byByZXF1aXJlIG1hdGNoZWQKKyAgICAv
LyAgICAgICAgcG9ydCBudW1iZXJzLgorICAgIC8vCisgICAgLy8gT3BlcmEgOSBhbGxvd3MgYWNj
ZXNzIHdoZW4gb25seSBvbmUgcGFnZSBoYXMgc2V0IGRvY3VtZW50LmRvbWFpbiwgYnV0CisgICAg
Ly8gdGhpcyBpcyBhIHNlY3VyaXR5IHZ1bG5lcmFiaWxpdHkuCisKKyAgICBpZiAobV9wcm90b2Nv
bCA9PSBvdGhlci0+bV9wcm90b2NvbCkgeworICAgICAgICBpZiAoIW1fZG9tYWluV2FzU2V0SW5E
T00gJiYgIW90aGVyLT5tX2RvbWFpbldhc1NldEluRE9NKSB7CisgICAgICAgICAgICBpZiAobV9o
b3N0ID09IG90aGVyLT5tX2hvc3QgJiYgbV9wb3J0ID09IG90aGVyLT5tX3BvcnQpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgaWYgKG1fZG9tYWluV2Fz
U2V0SW5ET00gJiYgb3RoZXItPm1fZG9tYWluV2FzU2V0SW5ET00pIHsKKyAgICAgICAgICAgIGlm
IChtX2hvc3QgPT0gb3RoZXItPm1faG9zdCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBTZWN1cml0
eU9yaWdpbjo6aXNTZWN1cmVUcmFuc2l0aW9uVG8oY29uc3QgS1VSTCYgdXJsKSBjb25zdApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9TZWN1cml0eU9yaWdpbi5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24gMjg1ODUpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDkg
QEAKICNpZm5kZWYgU2VjdXJpdHlPcmlnaW5faAogI2RlZmluZSBTZWN1cml0eU9yaWdpbl9oCiAK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CisKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBA
IC0zNywxNCArNDAsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIEtVUkw7CiAg
ICAgY2xhc3MgU2VjdXJpdHlPcmlnaW5EYXRhOwogICAgIAotICAgIGNsYXNzIFNlY3VyaXR5T3Jp
Z2luIHsKKyAgICBjbGFzcyBTZWN1cml0eU9yaWdpbiA6IHB1YmxpYyBSZWZDb3VudGVkPFNlY3Vy
aXR5T3JpZ2luPiB7CiAgICAgcHVibGljOgotICAgICAgICBTZWN1cml0eU9yaWdpbigpOworICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTZWN1cml0eU9yaWdpbj4gY3JlYXRlRm9yRnJhbWUoRnJh
bWUqKTsKIAotICAgICAgICB2b2lkIHNldEZvckZyYW1lKEZyYW1lKik7CiAgICAgICAgIHZvaWQg
c2V0RG9tYWluRnJvbURPTShjb25zdCBTdHJpbmcmIG5ld0RvbWFpbik7CisgICAgICAgIFN0cmlu
ZyBkb21haW4oKSBjb25zdCB7IHJldHVybiBtX2hvc3Q7IH0KIAotICAgICAgICBib29sIGNhbkFj
Y2Vzcyhjb25zdCBTZWN1cml0eU9yaWdpbiYpIGNvbnN0OworICAgICAgICBib29sIGNhbkFjY2Vz
cyhjb25zdCBTZWN1cml0eU9yaWdpbiopIGNvbnN0OwogICAgICAgICBib29sIGlzU2VjdXJlVHJh
bnNpdGlvblRvKGNvbnN0IEtVUkwmKSBjb25zdDsKIAogICAgICAgICBTdHJpbmcgdG9TdHJpbmco
KSBjb25zdDsKQEAgLTUyLDkgKzU1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
U2VjdXJpdHlPcmlnaW5EYXRhIHNlY3VyaXR5T3JpZ2luRGF0YSgpIGNvbnN0OwogICAgICAgICAK
ICAgICBwcml2YXRlOgotICAgICAgICB2b2lkIGNsZWFyKCk7CisgICAgICAgIFNlY3VyaXR5T3Jp
Z2luKCk7CiAgICAgICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwogCisgICAgICAgIHZvaWQgY2xl
YXIoKTsKKyAgICAgICAgdm9pZCBzZXRGb3JVUkwoY29uc3QgS1VSTCYgdXJsKTsKKwogICAgICAg
ICBTdHJpbmcgbV9wcm90b2NvbDsKICAgICAgICAgU3RyaW5nIG1faG9zdDsKICAgICAgICAgdW5z
aWduZWQgc2hvcnQgbV9wb3J0OwpJbmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvRGF0YWJhc2UuY3BwCShyZXZpc2lvbiAyODU4
NSkKKysrIFdlYkNvcmUvc3RvcmFnZS9EYXRhYmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk3
LDcgKzk3LDcgQEAgUGFzc1JlZlB0cjxEYXRhYmFzZT4gRGF0YWJhc2U6Om9wZW5EYXRhYgogewog
ICAgIGlmICghRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuY2FuRXN0YWJsaXNoRGF0YWJhc2Uo
ZG9jdW1lbnQsIG5hbWUsIGRpc3BsYXlOYW1lLCBlc3RpbWF0ZWRTaXplKSkgewogICAgICAgICAv
LyBUaGVyZSBzaG91bGQgYmUgYW4gZXhjZXB0aW9uIHJhaXNlZCBoZXJlIGluIGFkZGl0aW9uIHRv
IHJldHVybmluZyBhIG51bGwgRGF0YWJhc2Ugb2JqZWN0LiAgVGhlIHF1ZXN0aW9uIGhhcyBiZWVu
IHJhaXNlZCB3aXRoIHRoZSBXSEFUV0cKLSAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJEYXRhYmFz
ZSAlcyBmb3Igb3JpZ2luICVzIG5vdCBhbGxvd2VkIHRvIGJlIGVzdGFibGlzaGVkIiwgbmFtZS5h
c2NpaSgpLmRhdGEoKSwgZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKS5hc2Np
aSgpLmRhdGEoKSk7CisgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiRGF0YWJhc2UgJXMgZm9yIG9y
aWdpbiAlcyBub3QgYWxsb3dlZCB0byBiZSBlc3RhYmxpc2hlZCIsIG5hbWUuYXNjaWkoKS5kYXRh
KCksIGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgp
KTsKICAgICAgICAgcmV0dXJuIDA7CiAgICAgfQogICAgIApAQCAtMTA4LDcgKzEwOCw3IEBAIFBh
c3NSZWZQdHI8RGF0YWJhc2U+IERhdGFiYXNlOjpvcGVuRGF0YWIKICAgICAgICByZXR1cm4gMDsK
ICAgICB9CiAgICAgCi0gICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2V0RGF0YWJhc2VE
ZXRhaWxzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLnNlY3VyaXR5T3JpZ2luRGF0YSgpLCBu
YW1lLCBkaXNwbGF5TmFtZSwgZXN0aW1hdGVkU2l6ZSk7CisgICAgRGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyKCkuc2V0RGF0YWJhc2VEZXRhaWxzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLT5z
ZWN1cml0eU9yaWdpbkRhdGEoKSwgbmFtZSwgZGlzcGxheU5hbWUsIGVzdGltYXRlZFNpemUpOwog
CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+ZnJhbWUoKS0+cGFnZSgpKQogICAgICAg
ICBwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmRpZE9wZW5EYXRhYmFzZShkYXRhYmFzZS5n
ZXQoKSwgZG9jdW1lbnQtPmRvbWFpbigpLCBuYW1lLCBleHBlY3RlZFZlcnNpb24pOwpAQCAtMTMx
LDcgKzEzMSw3IEBAIERhdGFiYXNlOjpEYXRhYmFzZShEb2N1bWVudCogZG9jdW1lbnQsIGMKIAog
ICAgIGluaXRpYWxpemVUaHJlYWRpbmcoKTsKIAotICAgIG1fZ3VpZCA9IGd1aWRGb3JPcmlnaW5B
bmROYW1lKG1fc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSwgbmFtZSk7CisgICAgbV9ndWlkID0g
Z3VpZEZvck9yaWdpbkFuZE5hbWUobV9zZWN1cml0eU9yaWdpbi0+dG9TdHJpbmcoKSwgbmFtZSk7
CiAKICAgICB7CiAgICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihndWlkTXV0ZXgoKSk7CkBAIC0x
NDgsNyArMTQ4LDcgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKERvY3VtZW50KiBkb2N1bWVudCwgYwog
ICAgIG1fZGF0YWJhc2VUaHJlYWQgPSBkb2N1bWVudC0+ZGF0YWJhc2VUaHJlYWQoKTsKICAgICBB
U1NFUlQobV9kYXRhYmFzZVRocmVhZCk7CiAKLSAgICBtX2ZpbGVuYW1lID0gRGF0YWJhc2VUcmFj
a2VyOjp0cmFja2VyKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShtX3NlY3VyaXR5T3JpZ2luLnNlY3Vy
aXR5T3JpZ2luRGF0YSgpLCBtX25hbWUpOworICAgIG1fZmlsZW5hbWUgPSBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXIoKS5mdWxsUGF0aEZvckRhdGFiYXNlKG1fc2VjdXJpdHlPcmlnaW4tPnNlY3Vy
aXR5T3JpZ2luRGF0YSgpLCBtX25hbWUpOwogfQogCiBEYXRhYmFzZTo6fkRhdGFiYXNlKCkKQEAg
LTU1MCw3ICs1NTAsNyBAQCB2b2lkIERhdGFiYXNlOjpzZXRFeHBlY3RlZFZlcnNpb24oY29uc3Qg
CiBTZWN1cml0eU9yaWdpbkRhdGEgRGF0YWJhc2U6OnNlY3VyaXR5T3JpZ2luRGF0YSgpIGNvbnN0
CiB7CiAgICAgLy8gUmV0dXJuIGEgZGVlcCBjb3B5IGZvciByZWYgY291bnRpbmcgdGhyZWFkIHNh
ZmV0eQotICAgIHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luRGF0YSgpLmNv
cHkoKTsKKyAgICByZXR1cm4gbV9zZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmlnaW5EYXRhKCku
Y29weSgpOwogfQogCiBTdHJpbmcgRGF0YWJhc2U6OnN0cmluZ0lkZW50aWZpZXIoKSBjb25zdApJ
bmRleDogV2ViQ29yZS9zdG9yYWdlL0RhdGFiYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9z
dG9yYWdlL0RhdGFiYXNlLmgJKHJldmlzaW9uIDI4NTg1KQorKysgV2ViQ29yZS9zdG9yYWdlL0Rh
dGFiYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYv
SGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvRGVxdWUuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTI1LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkZWxpdmVyUGVuZGluZ0NhbGxiYWNrKCk7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVu
dDsKLSAgICBTZWN1cml0eU9yaWdpbiBtX3NlY3VyaXR5T3JpZ2luOworICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gbV9zZWN1cml0eU9yaWdpbjsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIGlu
dCBtX2d1aWQ7CiAgICAgU3RyaW5nIG1fZXhwZWN0ZWRWZXJzaW9uOwpAQCAtMTQwLDcgKzE0MSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPFNRTFRyYW5zYWN0aW9uPiBtX3RyYW5zYWN0aW9uUGVu
ZGluZ0NhbGxiYWNrOwogCiAjaWZuZGVmIE5ERUJVRwotICAgIFN0cmluZyBkYXRhYmFzZURlYnVn
TmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4udG9TdHJpbmcoKSArICI6OiIg
KyBtX25hbWU7IH0KKyAgICBTdHJpbmcgZGF0YWJhc2VEZWJ1Z05hbWUoKSBjb25zdCB7IHJldHVy
biBtX3NlY3VyaXR5T3JpZ2luLT50b1N0cmluZygpICsgIjo6IiArIG1fbmFtZTsgfQogI2VuZGlm
CiAKICAgICBzdGF0aWMgTXV0ZXgmIGdsb2JhbENhbGxiYWNrTXV0ZXgoKTsKSW5kZXg6IFdlYkNv
cmUvc3RvcmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCShyZXZpc2lvbiAyODU4NSkKKysrIFdlYkNvcmUvc3Rv
cmFnZS9EYXRhYmFzZVRyYWNrZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjUsNyArMTI1LDcg
QEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhcwogCiBib29sIERhdGFi
YXNlVHJhY2tlcjo6Y2FuRXN0YWJsaXNoRGF0YWJhc2UoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVuc2lnbmVkIGxvbmcg
ZXN0aW1hdGVkU2l6ZSkKIHsKLSAgICBTZWN1cml0eU9yaWdpbkRhdGEgb3JpZ2luRGF0YSA9IGRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpLnNlY3VyaXR5T3JpZ2luRGF0YSgpOworICAgIFNlY3Vy
aXR5T3JpZ2luRGF0YSBvcmlnaW5EYXRhID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCktPnNl
Y3VyaXR5T3JpZ2luRGF0YSgpOwogICAgIAogICAgIC8vIElmIHRoaXMgb3JpZ2luIGhhcyBubyBk
YXRhYmFzZXMgeWV0LCBlc3RhYmxpc2ggYW4gZW50cnkgaW4gdGhlIHRyYWNrZXIgZGF0YWJhc2Ug
d2l0aCB0aGUgZGVmYXVsdCBxdW90YQogICAgIGlmICghaGFzRW50cnlGb3JPcmlnaW4ob3JpZ2lu
RGF0YSkpCkluZGV4OiBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDI4NTg1
KQorKysgV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzM0LDcgKzMzNCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21t
aXQKICAgICAKICAgICAvLyBUaGUgY29tbWl0IHdhcyBzdWNjZXNzZnVsLCBub3RpZnkgdGhlIGRl
bGVnYXRlcyBpZiB0aGUgdHJhbnNhY3Rpb24gbW9kaWZpZWQgdGhpcyBkYXRhYmFzZQogICAgIGlm
IChtX21vZGlmaWVkRGF0YWJhc2UpCi0gICAgICAgIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlcigp
LnNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFuZ2VkKG1fZGF0YWJhc2UtPm1fc2VjdXJpdHlPcmln
aW4uc2VjdXJpdHlPcmlnaW5EYXRhKCksIG1fZGF0YWJhc2UtPm1fbmFtZSk7CisgICAgICAgIERh
dGFiYXNlVHJhY2tlcjo6dHJhY2tlcigpLnNjaGVkdWxlTm90aWZ5RGF0YWJhc2VDaGFuZ2VkKG1f
ZGF0YWJhc2UtPm1fc2VjdXJpdHlPcmlnaW4tPnNlY3VyaXR5T3JpZ2luRGF0YSgpLCBtX2RhdGFi
YXNlLT5tX25hbWUpOwogICAgIAogICAgIC8vIFRyYW5zYWN0aW9uIFN0ZXAgMTAgLSBFbmQgdHJh
bnNhY3Rpb24gc3RlcHMKICAgICAvLyBUaGVyZSBpcyBubyBuZXh0IHN0ZXAKQEAgLTM5MSw3ICsz
OTEsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjbGVhbnVwQWZ0ZXJUcmFuc2FjCiAgICAgICAg
ICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5yb2xsYmFjaygpOwogICAgICAgICB9IGVsc2UgaWYg
KG1fbW9kaWZpZWREYXRhYmFzZSkgewogICAgICAgICAgICAgLy8gQnV0IGlmIHRoZSBjb21taXQg
d2FzIHN1Y2Nlc3NmdWwsIG5vdGlmeSB0aGUgZGVsZWdhdGVzIGlmIHRoZSB0cmFuc2FjdGlvbiBt
b2RpZmllZCB0aGlzIGRhdGFiYXNlCi0gICAgICAgICAgICBEYXRhYmFzZVRyYWNrZXI6OnRyYWNr
ZXIoKS5zY2hlZHVsZU5vdGlmeURhdGFiYXNlQ2hhbmdlZChtX2RhdGFiYXNlLT5tX3NlY3VyaXR5
T3JpZ2luLnNlY3VyaXR5T3JpZ2luRGF0YSgpLCBtX2RhdGFiYXNlLT5tX25hbWUpOworICAgICAg
ICAgICAgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyKCkuc2NoZWR1bGVOb3RpZnlEYXRhYmFzZUNo
YW5nZWQobV9kYXRhYmFzZS0+bV9zZWN1cml0eU9yaWdpbi0+c2VjdXJpdHlPcmlnaW5EYXRhKCks
IG1fZGF0YWJhc2UtPm1fbmFtZSk7CiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIG1fc3Fs
aXRlVHJhbnNhY3Rpb24uY2xlYXIoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI4NTg2KQorKysgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDct
MTItMTAgIEFkYW0gQmFydGggIDxoazk1NjVAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSBMYXlvdXRUZXN0cyBmb3IgaHR0
cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKKworICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRvbWFp
bi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1l
LWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXByb3RvY29sLWV4cGxpY2l0LWRv
bWFpbi5odG1sOgorCiAyMDA3LTEyLTEwICBEYXZpZCBELiBLaWx6ZXIgIDxkZGtpbHplckB3ZWJr
aXQub3JnPgogCiAgICAgICAgIEJ1ZyA5NjgzOiBJbXBsZW1lbnQgc2VsZWN0Lm9wdGlvbnMucmVt
b3ZlKCkgbWV0aG9kCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3Nz
LWZyYW1lLWFjY2Vzcy1jaGlsZC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1jaGlsZC1l
eHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWNoaWxkLWV4cGxpY2l0LWRvbWFpbi5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvY3Jvc3MtZnJhbWUtYWNjZXNzLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlmcmFtZSBpZD0iYUZyYW1lIj48L2lmcmFtZT4KKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICB2YXIgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLXdpdGgtZXhwbGljaXQtZG9t
YWluLXNldC5odG1sIjsKKyAgICB2YXIgaWZyYW1lSWQgPSJhRnJhbWUiOworICAgIHZhciBwYXNz
TWVzc2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gZnJhbWUgZXhwbGljaXRseSBz
ZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxNZXNzYWdl
ID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcg
ZG9jdW1lbnQuZG9tYWluIHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJs
LCBpZnJhbWVJZCwgcGFzc01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWFjY2Vzcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUg
aWQ9ImFGcmFtZSI+PC9pZnJhbWU+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+
CisgICAgdmFyIHVybCA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLWZyYW1lLWlmcmFtZS13aXRoLWV4cGxpY2l0LWRvbWFpbi1zZXQuaHRtbCI7CisgICAg
dmFyIGlmcmFtZUlkID0iYUZyYW1lIjsKKyAgICB2YXIgcGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jv
c3MgZnJhbWUgYWNjZXNzIHRvIGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21h
aW4gd2FzIGRlbmllZC4iOworICAgIHZhciBmYWlsTWVzc2FnZSA9ICJGYWlsOiBDcm9zcyBmcmFt
ZSBhY2Nlc3MgdG8gZnJhbWUgZXhwbGljaXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMg
YWxsb3dlZC4iOworICAgIGNhbm5vdEFjY2Vzc0ZyYW1lKHVybCwgaWZyYW1lSWQsIHBhc3NNZXNz
YWdlLCBmYWlsTWVzc2FnZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLXBhcmVudC1l
eHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1wYXJlbnQtZXhwbGljaXQtZG9tYWluLmh0bWwJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMzggQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9j
cm9zcy1mcmFtZS1hY2Nlc3MuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1l
IGlkPSJhRnJhbWUiPjwvaWZyYW1lPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0
PgorICAgIC8vIEV4cGxpY2l0bHkgc2V0IHRoZSBkb21haW4uCisgICAgZG9jdW1lbnQuZG9tYWlu
ID0gIjEyNy4wLjAuMSI7CisKKyAgICB2YXIgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLmh0bWwiOworICAgIHZhciBpZnJh
bWVJZCA9ImFGcmFtZSI7CisgICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3NzIGZyYW1l
IGFjY2VzcyBmcm9tIGZyYW1lIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4gd2Fz
IGRlbmllZC4iOworICAgIHZhciBmYWlsTWVzc2FnZSA9ICJGYWlsOiBDcm9zcyBmcmFtZSBhY2Nl
c3MgZnJvbSBmcmFtZSBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluIHdhcyBhbGxv
d2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFzc01lc3NhZ2Us
IGZhaWxNZXNzYWdlKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorPGh0bWw+Cis8aGVh
ZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWFjY2Vzcy5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgaWQ9ImFGcmFtZSI+PC9pZnJhbWU+Cis8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgLy8gRXhwbGljaXRseSBzZXQg
dGhlIGRvbWFpbi4KKyAgICBkb2N1bWVudC5kb21haW4gPSAiMTI3LjAuMC4xIjsKKworICAgIHZh
ciB1cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1m
cmFtZS1pZnJhbWUuaHRtbCI7CisgICAgdmFyIGlmcmFtZUlkID0iYUZyYW1lIjsKKyAgICB2YXIg
cGFzc01lc3NhZ2UgPSAiUEFTUzogQ3Jvc3MgZnJhbWUgYWNjZXNzIGZyb20gZnJhbWUgZXhwbGlj
aXRseSBzZXR0aW5nIGRvY3VtZW50LmRvbWFpbiB3YXMgZGVuaWVkLiI7CisgICAgdmFyIGZhaWxN
ZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyBmcm9tIGZyYW1lIGV4cGxpY2l0bHkg
c2V0dGluZyBkb2N1bWVudC5kb21haW4gd2FzIGFsbG93ZWQuIjsKKyAgICBjYW5ub3RBY2Nlc3NG
cmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vz
cy1wcm90b2NvbC1leHBsaWNpdC1kb21haW4uaHRtbAkocmV2aXNpb24gMjg1ODUpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1wcm90b2NvbC1l
eHBsaWNpdC1kb21haW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsOSArMTIsOSBAQAogCiAg
ICAgdmFyIHVybCA9ICJodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L3Jlc291cmNlcy9j
cm9zcy1mcmFtZS1pZnJhbWUtd2l0aC1leHBsaWNpdC1kb21haW4tc2V0Lmh0bWwiOwogICAgIHZh
ciBpZnJhbWVJZCA9ImFGcmFtZSI7Ci0gICAgdmFyIHBhc3NNZXNzYWdlID0gIlBBU1M6IENyb3Nz
IGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGlu
ZyBkb2N1bWVudC5kb21haW4sIHdhcyBhbGxvd2VkISI7Ci0gICAgdmFyIGZhaWxNZXNzYWdlID0g
IkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBodHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxp
Y2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4sIHdhcyBkZW5pZWQuIjsKLSAgICBjYW5BY2Nl
c3NGcmFtZSh1cmwsIGlmcmFtZUlkLCBwYXNzTWVzc2FnZSwgZmFpbE1lc3NhZ2UpOworICAgIHZh
ciBwYXNzTWVzc2FnZSA9ICJQQVNTOiBDcm9zcyBmcmFtZSBhY2Nlc3MgdG8gaHR0cHMgZnJvbSBo
dHRwLCBhZnRlciBleHBsaWNpdGx5IHNldHRpbmcgZG9jdW1lbnQuZG9tYWluLCB3YXMgZGVuaWVk
LiI7CisgICAgdmFyIGZhaWxNZXNzYWdlID0gIkZhaWw6IENyb3NzIGZyYW1lIGFjY2VzcyB0byBo
dHRwcyBmcm9tIGh0dHAsIGFmdGVyIGV4cGxpY2l0bHkgc2V0dGluZyBkb2N1bWVudC5kb21haW4s
IHdhcyBhbGxvd2VkLiI7CisgICAgY2Fubm90QWNjZXNzRnJhbWUodXJsLCBpZnJhbWVJZCwgcGFz
c01lc3NhZ2UsIGZhaWxNZXNzYWdlKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgo=
</data>
<flag name="review"
          id="7689"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>