<?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>54688</bug_id>
          
          <creation_ts>2011-02-17 14:02:49 -0800</creation_ts>
          <short_desc>ThreadableLoaderClient needs willSendRequest method.</short_desc>
          <delta_ts>2011-02-19 00:39:59 -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>Platform</component>
          <version>528+ (Nightly build)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>53925</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Bill Budge">bbudge</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>353159</commentid>
    <comment_count>0</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-17 14:02:49 -0800</bug_when>
    <thetext>Needed so clients can implement WebURLLoaderClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353168</commentid>
    <comment_count>1</comment_count>
      <attachid>82861</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-17 14:14:55 -0800</bug_when>
    <thetext>Created attachment 82861
Proposed Patch

Forgot I need this method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353350</commentid>
    <comment_count>2</comment_count>
      <attachid>82861</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-17 19:46:40 -0800</bug_when>
    <thetext>Comment on attachment 82861
Proposed Patch

+    } else {
+        m_client-&gt;willSendRequest(newRequest, redirectResponse);
     }

The coding style calls for no braces around single line blocks. Why didn&apos;t the style bot catch this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353353</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-02-17 19:52:31 -0800</bug_when>
    <thetext>Seems unfortunate that we have pass a willSendRequest from ResourceHandle to worker thread, and then go all the way back to make a client call.

&gt; +    m_loaderProxy.postTaskForModeToWorkerContext(createCallbackTask(&amp;workerContextWillSendRequest, m_workerClientWrapper, newRequest, redirectResponse), m_taskMode);

Does this make a synchronous call? I&apos;m curious how we avoid deadlocking here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353366</commentid>
    <comment_count>4</comment_count>
      <attachid>82861</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-17 20:25:38 -0800</bug_when>
    <thetext>Comment on attachment 82861
Proposed Patch

Good catch Alexey!

As Alexey gently pointed out, this simply doesn&apos;t work. willSendRequest may modify the request (see http://trac.webkit.org/browser/trunk/Source/WebCore/loader/SubresourceLoaderClient.h), but all calls to the worker are async, so the callback to the worker doesn&apos;t function correctly.

In fact, you can&apos;t do a sync call in that direction, so something else has to be done for this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353372</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-17 20:36:28 -0800</bug_when>
    <thetext>Here&apos;s a possible alternative:

In ThreadableLoaderClient add this method:
    virtual bool isDocumentThreadableLoaderClient() { return false; }


Create a new class:
    class DocumentThreadableLoaderClient : public ThreadableLoaderClient {
    public:
        virtual bool isDocumentThreadableLoaderClient() { return true; }

        // request may be modified
        virtual void willSendRequest(SubresourceLoader*, ResourceRequest&amp;, const ResourceResponse&amp; /*redirectResponse*/) { }
    };


In DocumentThreadableLoader::willSendRequest put the following in place of your current call to willSendRequest:

    if (m_client-&gt;isDocumentThreadableLoaderClient())
        static_cast&lt;DocumentThreadableLoaderClient*&gt;(m_client)-&gt;willSendRequest(....);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353397</commentid>
    <comment_count>6</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-17 21:20:57 -0800</bug_when>
    <thetext>Yes, good catch!

Is there a reason to pass the SubresourceLoader as a parameter to the client? It seems better to keep it an implementation detail. 

// request may be modified
        virtual void willSendRequest(SubresourceLoader*, ResourceRequest&amp;, const ResourceResponse&amp; /*redirectResponse*/) { }</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353399</commentid>
    <comment_count>7</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-17 21:30:20 -0800</bug_when>
    <thetext>Another question David: If we create this derived DocumentThreadableLoaderClient, why not change DocumentThreadableLoader to only accept this kind of client? Is there a use case for passing in a ThreadableLoaderClient? It would be nice to avoid the up-casting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353404</commentid>
    <comment_count>8</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-17 21:40:56 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; Is there a reason to pass the SubresourceLoader as a parameter to the client? It seems better to keep it an implementation detail. 

No, it was a copy/paste error.

(In reply to comment #7)
&gt; Another question David: If we create this derived DocumentThreadableLoaderClient, why not change DocumentThreadableLoader to only accept this kind of client?

Not possible.

&gt; Is there a use case for passing in a ThreadableLoaderClient? It would be nice to avoid the up-casting.
Yes and yes but unavoidable.

There are several places that create a ThreadableLoader (like XHR). They don&apos;t care if the underlying thing is a DocumentThreadableLoader or a WorkerThreadableLoader. It is totally transparent to them as it should be.

So they will pass in a ThreadableLoaderClient which is then passed to the DocumentThreadableLoader or WokerThreadableLoader. (The &quot;Threadable&quot; part of the name is a reference to the fact that the ThreadableLoader may be used on threads unlike all other loaders.)

Now, that I think about it, you could do make DocumentThreadableLoader only take a DocumentThreadableLoaderClient but you would have to make an adapter class which makes a ThreadableLoaderClient look like a DocumentThreadableLoaderClient (-- it would pass through all methods and ignore the willSendRequest). This feel uglier than the upcast (to me).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353553</commentid>
    <comment_count>9</comment_count>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-18 05:57:19 -0800</bug_when>
    <thetext>You made me think: If I took out the implementation of willSendRequest in WorkerThreadableLoader that attempts the asynchronous call and just made it a no-op, wouldn&apos;t that be the same thing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353588</commentid>
    <comment_count>10</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-18 07:46:05 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; You made me think: If I took out the implementation of willSendRequest in WorkerThreadableLoader that attempts the asynchronous call and just made it a no-op, wouldn&apos;t that be the same thing?

But then you&apos;d have this method in ThreadableLoaderClient which doesn&apos;t work (for the worker case).

btw, I thought a bit more about why I didn&apos;t like the adapter pattern in this case:
1. It adds another level of virtuals to go through.
2. It adds another class that people have to understand and maintain.

On the plus side 
1. It allows for more flexibility. (But that flexibility is only needed for one method.)
2. No need to upcast (and the isDocumentThreadableLoaderClient method could go away).

At this point I feel like the negatives out weight the positives.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353805</commentid>
    <comment_count>11</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-18 13:42:15 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 82861 [details])
&gt; +    } else {
&gt; +        m_client-&gt;willSendRequest(newRequest, redirectResponse);
&gt;      }
&gt; 
&gt; The coding style calls for no braces around single line blocks. Why didn&apos;t the style bot catch this?

As penance for missing this in my review, I improved the style checker to catch this: https://bugs.webkit.org/show_bug.cgi?id=54769</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353859</commentid>
    <comment_count>12</comment_count>
      <attachid>83018</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-18 15:00:00 -0800</bug_when>
    <thetext>Created attachment 83018
Proposed Patch

Derived a DocumentThreadableLoaderClient from ThreadableLoaderClient to add willSendRequest method, which can&apos;t be implemented for some clients.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353867</commentid>
    <comment_count>13</comment_count>
      <attachid>83021</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-18 15:14:05 -0800</bug_when>
    <thetext>Created attachment 83021
Proposed Patch

I left an unnecessary forward declaration of ResourceRequest in ThreadableLoaderClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353908</commentid>
    <comment_count>14</comment_count>
      <attachid>83021</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-18 16:07:26 -0800</bug_when>
    <thetext>Comment on attachment 83021
Proposed Patch

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

Feel free to add &quot;, 2011&quot; to all of the Google copyright years in DocumentThreadableLoader.cpp and ThreadableLoaderClient.h

r- for the changelog echo and the inverted if conditions.

&gt; Source/WebCore/ChangeLog:21
&gt; +2011-02-18  Bill Budge  &lt;bbudge@chromium.org&gt;

I sense an echo in here.

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:176
&gt; +void DocumentThreadableLoader::willSendRequest(SubresourceLoader* loader, ResourceRequest&amp; newRequest, const ResourceResponse&amp; redirectResponse)

I&apos;m not sure why &quot;request&quot; became &quot;newRequest&quot;.

It is the request that will be sent.

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:238
&gt; +    if (!m_actualRequest)

This looks wrong.

m_actualRequest is only set while the preflight request is happening.

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:251
&gt; +        return;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353915</commentid>
    <comment_count>15</comment_count>
      <attachid>83032</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-18 16:42:04 -0800</bug_when>
    <thetext>Created attachment 83032
Proposed Patch

Fixed problems. PTAL.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353925</commentid>
    <comment_count>16</comment_count>
      <attachid>83036</attachid>
    <who name="Bill Budge">bbudge</who>
    <bug_when>2011-02-18 16:56:47 -0800</bug_when>
    <thetext>Created attachment 83036
Proposed Patch

Fixed copyrights, Changelog. Sorry, didn&apos;t get your echo ref.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353937</commentid>
    <comment_count>17</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-18 17:30:44 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Created an attachment (id=83036) [details]
&gt; Sorry, didn&apos;t get your echo ref.

It was about the duplicate changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>353939</commentid>
    <comment_count>18</comment_count>
      <attachid>83036</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-02-18 17:32:18 -0800</bug_when>
    <thetext>Comment on attachment 83036
Proposed Patch

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

&gt; Source/WebCore/loader/DocumentThreadableLoader.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

fwiw, unlike Chromium code, WebKit typically keeps the old copyright year.
  Copyright (C) 2009, 2011 Google Inc. All rights reserved.
etc. (but not a big deal).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354101</commentid>
    <comment_count>19</comment_count>
      <attachid>83036</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-19 00:39:55 -0800</bug_when>
    <thetext>Comment on attachment 83036
Proposed Patch

Clearing flags on attachment: 83036

Committed r79110: &lt;http://trac.webkit.org/changeset/79110&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>354102</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-19 00:39:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>82861</attachid>
            <date>2011-02-17 14:14:55 -0800</date>
            <delta_ts>2011-02-18 15:00:00 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cors.txt</filename>
            <type>text/plain</type>
            <size>6242</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4OTE1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMDItMTcgIEJpbGwgQnVk
Z2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQgbmVlZHMgd2lsbFNlbmRS
ZXF1ZXN0IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2ODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0
aW9uYWxpdHkKKworICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgICog
bG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyLmg6CisgICAgICAgICogbG9hZGVy
L1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6d29ya2VyQ29u
dGV4dFdpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
TG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxv
YWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmg6CisKIDIwMTEtMDItMTYgIEx1aXogQWdvc3Rp
bmkgIDxsdWl6LmFnb3N0aW5pQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kcmVhcyBLbGluZy4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVh
ZGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1
bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCShyZXZpc2lvbiA3ODgwNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNzIsMTUgKzE3MiwxNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6c2V0RGVm
ZXJzCiAgICAgICAgIG1fbG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9p
ZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxv
YWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKQordm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChT
dWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1f
Y2xpZW50KTsKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsK
IAotICAgIGlmICghaXNBbGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpIHsKKyAgICBpZiAo
IWlzQWxsb3dlZFJlZGlyZWN0KG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFJlZlB0cjxE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgICAgIG1fY2xpZW50
LT5kaWRGYWlsUmVkaXJlY3RDaGVjaygpOwotICAgICAgICByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1
ZXN0KCk7CisgICAgICAgIG5ld1JlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKKyAgICB9IGVs
c2UgeworICAgICAgICBtX2NsaWVudC0+d2lsbFNlbmRSZXF1ZXN0KG5ld1JlcXVlc3QsIHJlZGly
ZWN0UmVzcG9uc2UpOwogICAgIH0KIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1Ro
cmVhZGFibGVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3ODgwNykKKysrIFNvdXJjZS9X
ZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDEyICszNSwxNCBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgUmVzb3Vy
Y2VFcnJvcjsKKyAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAgICAgY2xhc3MgUmVzb3VyY2VS
ZXNwb25zZTsKIAogICAgIGNsYXNzIFRocmVhZGFibGVMb2FkZXJDbGllbnQgewogICAgICAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KTsgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgZGlkU2VuZERh
dGEodW5zaWduZWQgbG9uZyBsb25nIC8qYnl0ZXNTZW50Ki8sIHVuc2lnbmVkIGxvbmcgbG9uZyAv
KnRvdGFsQnl0ZXNUb0JlU2VudCovKSB7IH0KKyAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5k
UmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIC8qbmV3UmVxdWVzdCovLCBjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiAvKnJlZGlyZWN0UmVzcG9uc2UqLykgeyB9CiAKICAgICAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAgICAgICAg
IHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50IC8qZGF0YUxlbmd0
aCovKSB7IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xp
ZW50V3JhcHBlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRh
YmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCShyZXZpc2lvbiA3ODgwNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50V3JhcHBlci5oCSh3b3JraW5nIGNvcHkp
CkBAIC02Miw2ICs2MiwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAgICAgICAg
bV9jbGllbnQtPmRpZFNlbmREYXRhKGJ5dGVzU2VudCwgdG90YWxCeXRlc1RvQmVTZW50KTsKICAg
ICAgICAgfQogCisgICAgICAgIHZvaWQgd2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYg
bmV3UmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKKyAg
ICAgICAgeworICAgICAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAgICAgICAgIG1fY2xp
ZW50LT53aWxsU2VuZFJlcXVlc3QobmV3UmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CisgICAg
ICAgIH0KKwogICAgICAgICB2b2lkIGRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiByZXNwb25zZSkKICAgICAgICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50KQpJ
bmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVy
LmNwcAkocmV2aXNpb24gNzg4MDcpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhy
ZWFkYWJsZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3Myw2ICsxNzMsMTkgQEAgdm9p
ZCBXb3JrZXJUaHJlYWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQgogICAgIG1fbG9hZGVyUHJveHku
cG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2Vy
Q29udGV4dERpZFNlbmREYXRhLCBtX3dvcmtlckNsaWVudFdyYXBwZXIsIGJ5dGVzU2VudCwgdG90
YWxCeXRlc1RvQmVTZW50KSwgbV90YXNrTW9kZSk7CiB9CiAKK3N0YXRpYyB2b2lkIHdvcmtlckNv
bnRleHRXaWxsU2VuZFJlcXVlc3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVm
UHRyPFRocmVhZGFibGVMb2FkZXJDbGllbnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCBQ
YXNzT3duUHRyPENyb3NzVGhyZWFkUmVzb3VyY2VSZXF1ZXN0RGF0YT4gbmV3UmVxdWVzdERhdGEs
IFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJlc3BvbnNlRGF0YT4gcmVkaXJlY3RSZXNw
b25zZURhdGEpCit7CisgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0LT5pc1dvcmtl
ckNvbnRleHQoKSk7CisgICAgT3duUHRyPFJlc291cmNlUmVxdWVzdD4gbmV3UmVxdWVzdChSZXNv
dXJjZVJlcXVlc3Q6OmFkb3B0KG5ld1JlcXVlc3REYXRhKSk7CisgICAgT3duUHRyPFJlc291cmNl
UmVzcG9uc2U+IHJlZGlyZWN0UmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZTo6YWRvcHQocmVkaXJl
Y3RSZXNwb25zZURhdGEpKTsKKyAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT53aWxsU2VuZFJlcXVl
c3QoKm5ld1JlcXVlc3QsICpyZWRpcmVjdFJlc3BvbnNlKTsKK30KKwordm9pZCBXb3JrZXJUaHJl
YWRhYmxlTG9hZGVyOjpNYWluVGhyZWFkQnJpZGdlOjp3aWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VS
ZXF1ZXN0JiBuZXdSZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3Bv
bnNlKQoreworICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJDb250ZXh0
KGNyZWF0ZUNhbGxiYWNrVGFzaygmd29ya2VyQ29udGV4dFdpbGxTZW5kUmVxdWVzdCwgbV93b3Jr
ZXJDbGllbnRXcmFwcGVyLCBuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKSwgbV90YXNrTW9k
ZSk7Cit9CisKIHN0YXRpYyB2b2lkIHdvcmtlckNvbnRleHREaWRSZWNlaXZlUmVzcG9uc2UoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUmVmUHRyPFRocmVhZGFibGVMb2FkZXJDbGll
bnRXcmFwcGVyPiB3b3JrZXJDbGllbnRXcmFwcGVyLCBQYXNzT3duUHRyPENyb3NzVGhyZWFkUmVz
b3VyY2VSZXNwb25zZURhdGE+IHJlc3BvbnNlRGF0YSkKIHsKICAgICBBU1NFUlRfVU5VU0VEKGNv
bnRleHQsIGNvbnRleHQtPmlzV29ya2VyQ29udGV4dCgpKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9Xb3JrZXJUaHJlYWRhYmxlTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvbG9hZGVyL1dvcmtlclRocmVhZGFibGVMb2FkZXIuaAkocmV2aXNpb24gNzg4MDcpCisr
KyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvV29ya2VyVGhyZWFkYWJsZUxvYWRlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTMsNiArMTEzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAg
ICAgc3RhdGljIHZvaWQgbWFpblRocmVhZENyZWF0ZUxvYWRlcihTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiwgTWFpblRocmVhZEJyaWRnZSosIFBhc3NPd25QdHI8Q3Jvc3NUaHJlYWRSZXNvdXJjZVJl
cXVlc3REYXRhPiwgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMpOwogICAgICAgICAgICAgc3RhdGlj
IHZvaWQgbWFpblRocmVhZENhbmNlbChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgTWFpblRocmVh
ZEJyaWRnZSopOwogICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFNlbmREYXRhKHVuc2lnbmVk
IGxvbmcgbG9uZyBieXRlc1NlbnQsIHVuc2lnbmVkIGxvbmcgbG9uZyB0b3RhbEJ5dGVzVG9CZVNl
bnQpOworICAgICAgICAgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7CiAgICAgICAgICAgICB2aXJ0dWFsIHZv
aWQgZGlkUmVjZWl2ZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsKICAgICAgICAg
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlRGF0YShjb25zdCBjaGFyKiwgaW50IGRhdGFMZW5n
dGgpOwogICAgICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShj
b25zdCBjaGFyKiwgaW50IGRhdGFMZW5ndGgpOwo=
</data>
<flag name="review"
          id="74571"
          type_id="1"
          status="-"
          setter="levin"
    />
    <flag name="commit-queue"
          id="74572"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83018</attachid>
            <date>2011-02-18 15:00:00 -0800</date>
            <delta_ts>2011-02-18 15:14:05 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cors.txt</filename>
            <type>text/plain</type>
            <size>8068</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDItMTggIEJpbGwgQnVk
Z2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQgbmVlZHMgd2lsbFNlbmRS
ZXF1ZXN0IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2ODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0
aW9uYWxpdHkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmlzRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlckNsaWVudDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxv
YWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorCisyMDExLTAy
LTE4ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24g
YW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVM
b2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Ojpp
c0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudCk6CisKIDIwMTEtMDItMTggIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA3ODgwNykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjE1Miw2ICsyMTUy
LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaCcs
CiAgICAgICAgICAgICAnbG9hZGVyL0VtcHR5Q2xpZW50cy5oJywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCShyZXZpc2lv
biA3ODgwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC0xNzIsMTUgKzE3Mywx
OCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6c2V0RGVmZXJzCiAgICAgICAgIG1f
bG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9pZCBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQordm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBB
U1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIGlmICghaXNB
bGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpIHsKKyAgICBpZiAoIWlzQWxsb3dlZFJlZGly
ZWN0KG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgICAgIG1fY2xpZW50LT5kaWRGYWlsUmVkaXJl
Y3RDaGVjaygpOwotICAgICAgICByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgICAg
IG5ld1JlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAobV9jbGllbnQtPmlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkpCisgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQqPihtX2NsaWVu
dCktPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB9
CiB9CiAKQEAgLTIzMCw4ICsyMzQsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkUmVjZWl2CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRl
ciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIC8vIElnbm9yZSByZXNwb25zZSBib2R5IG9m
IHByZWZsaWdodCByZXF1ZXN0cy4KLSAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KQorICAgIC8vIFBy
ZWZsaWdodCBkYXRhIHNob3VsZCBiZSBpbnZpc2libGUgdG8gY2xpZW50cy4KKyAgICBpZiAoIW1f
YWN0dWFsUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jbGllbnQtPmRpZFJlY2Vp
dmVEYXRhKGRhdGEsIGxlbmd0aFJlY2VpdmVkKTsKQEAgLTI0Miw5ICsyNDYsMTEgQEAgdm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZFJlY2VpdgogICAgIEFTU0VSVChtX2NsaWVudCk7
CiAgICAgQVNTRVJUX1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlcik7CiAKLSAgICAv
LyBJZ25vcmUgcmVzcG9uc2UgYm9keSBvZiBwcmVmbGlnaHQgcmVxdWVzdHMuCisgICAgLy8gUHJl
ZmxpZ2h0IGRhdGEgc2hvdWxkIGJlIGludmlzaWJsZSB0byBjbGllbnRzLgogICAgIGlmICghbV9h
Y3R1YWxSZXF1ZXN0KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
KGRhdGEsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZv
aWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFN1YnJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50X2gKKyNkZWZpbmUgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50X2gKKworI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOworCitjbGFzcyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQgOiBwdWJsaWMg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGll
bnQoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgLypuZXdSZXF1ZXN0Ki8sIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IC8qcmVkaXJlY3RSZXNwb25zZSovKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudF9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9u
IDc4ODA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgY2xhc3MgUmVzb3VyY2VFcnJvcjsKKyAgICBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiAg
ICAgY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIAogICAgIGNsYXNzIFRocmVhZGFibGVMb2FkZXJD
bGllbnQgewpAQCAtNTEsNiArNTIsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNhbmNlbGxhdGlvbihjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAKKyAgICAgICAgdmlydHVhbCBib29sIGlzRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KKwogICAgIHByb3RlY3Rl
ZDoKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQogICAgICAgICB2aXJ0dWFs
IH5UaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83021</attachid>
            <date>2011-02-18 15:14:05 -0800</date>
            <delta_ts>2011-02-18 16:56:47 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cors.txt</filename>
            <type>text/plain</type>
            <size>7906</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDItMTggIEJpbGwgQnVk
Z2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQgbmVlZHMgd2lsbFNlbmRS
ZXF1ZXN0IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2ODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0
aW9uYWxpdHkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmlzRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlckNsaWVudDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxv
YWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorCisyMDExLTAy
LTE4ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24g
YW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVM
b2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Ojpp
c0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudCk6CisKIDIwMTEtMDItMTggIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA3ODgwNykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjE1Miw2ICsyMTUy
LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaCcs
CiAgICAgICAgICAgICAnbG9hZGVyL0VtcHR5Q2xpZW50cy5oJywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCShyZXZpc2lv
biA3ODgwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC0xNzIsMTUgKzE3Mywx
OCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6c2V0RGVmZXJzCiAgICAgICAgIG1f
bG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9pZCBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQordm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBB
U1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIGlmICghaXNB
bGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpIHsKKyAgICBpZiAoIWlzQWxsb3dlZFJlZGly
ZWN0KG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgICAgIG1fY2xpZW50LT5kaWRGYWlsUmVkaXJl
Y3RDaGVjaygpOwotICAgICAgICByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgICAg
IG5ld1JlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAobV9jbGllbnQtPmlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkpCisgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQqPihtX2NsaWVu
dCktPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB9
CiB9CiAKQEAgLTIzMCw4ICsyMzQsOCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkUmVjZWl2CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRl
ciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIC8vIElnbm9yZSByZXNwb25zZSBib2R5IG9m
IHByZWZsaWdodCByZXF1ZXN0cy4KLSAgICBpZiAobV9hY3R1YWxSZXF1ZXN0KQorICAgIC8vIFBy
ZWZsaWdodCBkYXRhIHNob3VsZCBiZSBpbnZpc2libGUgdG8gY2xpZW50cy4KKyAgICBpZiAoIW1f
YWN0dWFsUmVxdWVzdCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9jbGllbnQtPmRpZFJlY2Vp
dmVEYXRhKGRhdGEsIGxlbmd0aFJlY2VpdmVkKTsKQEAgLTI0Miw5ICsyNDYsMTEgQEAgdm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZFJlY2VpdgogICAgIEFTU0VSVChtX2NsaWVudCk7
CiAgICAgQVNTRVJUX1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlcik7CiAKLSAgICAv
LyBJZ25vcmUgcmVzcG9uc2UgYm9keSBvZiBwcmVmbGlnaHQgcmVxdWVzdHMuCisgICAgLy8gUHJl
ZmxpZ2h0IGRhdGEgc2hvdWxkIGJlIGludmlzaWJsZSB0byBjbGllbnRzLgogICAgIGlmICghbV9h
Y3R1YWxSZXF1ZXN0KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRh
KGRhdGEsIGxlbmd0aFJlY2VpdmVkKTsKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAKIHZv
aWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFN1YnJlc291cmNl
TG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUv
bG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaAkocmV2
aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXJDbGllbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24u
CisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMg
b2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3Rl
IHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmlj
IHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMi
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRG9jdW1lbnRU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50X2gKKyNkZWZpbmUgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50X2gKKworI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJjZVJl
c3BvbnNlOworCitjbGFzcyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQgOiBwdWJsaWMg
VGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
K3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGll
bnQoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1ZXN0
KFJlc291cmNlUmVxdWVzdCYgLypuZXdSZXF1ZXN0Ki8sIGNvbnN0IFJlc291cmNlUmVzcG9uc2Um
IC8qcmVkaXJlY3RSZXNwb25zZSovKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudF9oCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9u
IDc4ODA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGllbnQu
aAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNhbmNlbGxhdGlv
bihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAKKyAgICAgICAgdmlydHVhbCBib29sIGlz
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KKwogICAg
IHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQogICAgICAg
ICB2aXJ0dWFsIH5UaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9Cg==
</data>
<flag name="review"
          id="74763"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83032</attachid>
            <date>2011-02-18 16:42:04 -0800</date>
            <delta_ts>2011-02-18 16:56:47 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cors.txt</filename>
            <type>text/plain</type>
            <size>7852</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDM1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMTEtMDItMTggIEJpbGwgQnVk
Z2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQgbmVlZHMgd2lsbFNlbmRS
ZXF1ZXN0IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2ODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0
aW9uYWxpdHkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmlzRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlckNsaWVudDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxv
YWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorCisyMDExLTAy
LTE4ICBCaWxsIEJ1ZGdlICA8YmJ1ZGdlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEgc2hvcnQgZGVzY3JpcHRpb24g
YW5kIGJ1ZyBVUkwgKE9PUFMhKQorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxl
TG9hZGVyOjpkaWRSZWNlaXZlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YSk6CisgICAgICAgICogbG9hZGVy
L0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVM
b2FkZXJDbGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
Q2xpZW50Ojp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAqIGxvYWRlci9UaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Ojpp
c0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudCk6CisKIDIwMTEtMDItMTggIEphbWVzIFJv
Ymluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJ1c3NlbGwuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCShyZXZpc2lvbiA3ODgwNykKKysrIFNv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQkod29ya2luZyBjb3B5KQpAQCAtMjE1Miw2ICsyMTUy
LDcgQEAKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRMb2FkZXIuaCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAnLAogICAgICAgICAgICAgJ2xv
YWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuaCcsCisgICAgICAgICAgICAnbG9hZGVyL0Rv
Y3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oJywKICAgICAgICAgICAgICdsb2FkZXIvRG9j
dW1lbnRXcml0ZXIuY3BwJywKICAgICAgICAgICAgICdsb2FkZXIvRG9jdW1lbnRXcml0ZXIuaCcs
CiAgICAgICAgICAgICAnbG9hZGVyL0VtcHR5Q2xpZW50cy5oJywKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXIuY3BwCShyZXZpc2lv
biA3ODgwNykKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2Fk
ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiQ3Jvc3NP
cmlnaW5BY2Nlc3NDb250cm9sLmgiCiAjaW5jbHVkZSAiQ3Jvc3NPcmlnaW5QcmVmbGlnaHRSZXN1
bHRDYWNoZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRG9jdW1lbnRUaHJl
YWRhYmxlTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlLmgiCkBAIC0xNzIsMTUgKzE3Mywx
OCBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6c2V0RGVmZXJzCiAgICAgICAgIG1f
bG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9pZCBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQordm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIG5ld1JlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBB
U1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIGlmICghaXNB
bGxvd2VkUmVkaXJlY3QocmVxdWVzdC51cmwoKSkpIHsKKyAgICBpZiAoIWlzQWxsb3dlZFJlZGly
ZWN0KG5ld1JlcXVlc3QudXJsKCkpKSB7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudFRocmVhZGFi
bGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgICAgIG1fY2xpZW50LT5kaWRGYWlsUmVkaXJl
Y3RDaGVjaygpOwotICAgICAgICByZXF1ZXN0ID0gUmVzb3VyY2VSZXF1ZXN0KCk7CisgICAgICAg
IG5ld1JlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBp
ZiAobV9jbGllbnQtPmlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkpCisgICAgICAg
ICAgICBzdGF0aWNfY2FzdDxEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQqPihtX2NsaWVu
dCktPndpbGxTZW5kUmVxdWVzdChuZXdSZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKICAgICB9
CiB9CiAKQEAgLTIzMCw3ICsyMzQsNyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6
ZGlkUmVjZWl2CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRl
ciwgbG9hZGVyID09IG1fbG9hZGVyKTsKIAotICAgIC8vIElnbm9yZSByZXNwb25zZSBib2R5IG9m
IHByZWZsaWdodCByZXF1ZXN0cy4KKyAgICAvLyBQcmVmbGlnaHQgZGF0YSBzaG91bGQgYmUgaW52
aXNpYmxlIHRvIGNsaWVudHMuCiAgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0yNDIsOSArMjQ2LDExIEBAIHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVy
OjpkaWRSZWNlaXYKICAgICBBU1NFUlQobV9jbGllbnQpOwogICAgIEFTU0VSVF9VTlVTRUQobG9h
ZGVyLCBsb2FkZXIgPT0gbV9sb2FkZXIpOwogCi0gICAgLy8gSWdub3JlIHJlc3BvbnNlIGJvZHkg
b2YgcHJlZmxpZ2h0IHJlcXVlc3RzLgotICAgIGlmICghbV9hY3R1YWxSZXF1ZXN0KQotICAgICAg
ICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUNhY2hlZE1ldGFkYXRhKGRhdGEsIGxlbmd0aFJlY2VpdmVk
KTsKKyAgICAvLyBQcmVmbGlnaHQgZGF0YSBzaG91bGQgYmUgaW52aXNpYmxlIHRvIGNsaWVudHMu
CisgICAgaWYgKG1fYWN0dWFsUmVxdWVzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVDYWNoZWRNZXRhZGF0YShkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CiB9CiAK
IHZvaWQgRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKFN1YnJlc291
cmNlTG9hZGVyKiBsb2FkZXIsIGRvdWJsZSBmaW5pc2hUaW1lKQpJbmRleDogU291cmNlL1dlYkNv
cmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaAko
cmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFibGVM
b2FkZXJDbGllbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRp
b24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFt
ZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9t
b3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNp
ZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMg
SVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisg
KiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50X2gKKyNkZWZpbmUgRG9jdW1lbnRUaHJlYWRhYmxlTG9h
ZGVyQ2xpZW50X2gKKworI2luY2x1ZGUgIlRocmVhZGFibGVMb2FkZXJDbGllbnQuaCIKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CitjbGFzcyBSZXNvdXJj
ZVJlc3BvbnNlOworCitjbGFzcyBEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQgOiBwdWJs
aWMgVGhyZWFkYWJsZUxvYWRlckNsaWVudCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIGJvb2wgaXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJD
bGllbnQoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNlbmRSZXF1
ZXN0KFJlc291cmNlUmVxdWVzdCYgLypuZXdSZXF1ZXN0Ki8sIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIC8qcmVkaXJlY3RSZXNwb25zZSovKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudF9oCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvVGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHJldmlz
aW9uIDc4ODA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVhZGFibGVMb2FkZXJDbGll
bnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNhbmNlbGxh
dGlvbihjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgeyB9CiAKKyAgICAgICAgdmlydHVhbCBib29s
IGlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyByZXR1cm4gZmFsc2U7IH0KKwog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgVGhyZWFkYWJsZUxvYWRlckNsaWVudCgpIHsgfQogICAg
ICAgICB2aXJ0dWFsIH5UaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83036</attachid>
            <date>2011-02-18 16:56:47 -0800</date>
            <delta_ts>2011-02-19 00:39:55 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>cors.txt</filename>
            <type>text/plain</type>
            <size>7538</size>
            <attacher name="Bill Budge">bbudge</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc5MDUxKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMTggIEJpbGwgQnVk
Z2UgIDxiYnVkZ2VAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRocmVhZGFibGVMb2FkZXJDbGllbnQgbmVlZHMgd2lsbFNlbmRS
ZXF1ZXN0IG1ldGhvZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTQ2ODgKKworICAgICAgICBObyBuZXcgdGVzdHMuIEV4cG9zZXMgbm8gbmV3IGZ1bmN0
aW9uYWxpdHkKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBsb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyOjpkaWRSZWNlaXZlQ2FjaGVkTWV0YWRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9Eb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQ6OmlzRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50VGhy
ZWFkYWJsZUxvYWRlckNsaWVudDo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBsb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZUxv
YWRlckNsaWVudDo6aXNEb2N1bWVudFRocmVhZGFibGVMb2FkZXJDbGllbnQpOgorCiAyMDExLTAy
LTE4ICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDc4ODA3KQor
KysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0yMTUyLDYg
KzIxNTIsNyBAQAogICAgICAgICAgICAgJ2xvYWRlci9Eb2N1bWVudExvYWRlci5oJywKICAgICAg
ICAgICAgICdsb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyLmNwcCcsCiAgICAgICAgICAg
ICAnbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5oJywKKyAgICAgICAgICAgICdsb2Fk
ZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgnLAogICAgICAgICAgICAgJ2xvYWRl
ci9Eb2N1bWVudFdyaXRlci5jcHAnLAogICAgICAgICAgICAgJ2xvYWRlci9Eb2N1bWVudFdyaXRl
ci5oJywKICAgICAgICAgICAgICdsb2FkZXIvRW1wdHlDbGllbnRzLmgnLApJbmRleDogU291cmNl
L1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlci5jcHAJKHJl
dmlzaW9uIDc4ODA3KQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50VGhyZWFkYWJs
ZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJDcm9z
c09yaWdpbkFjY2Vzc0NvbnRyb2wuaCIKICNpbmNsdWRlICJDcm9zc09yaWdpblByZWZsaWdodFJl
c3VsdENhY2hlLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGUuaCIKQEAgLTE3Miw3ICsxNzMs
NyBAQCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6c2V0RGVmZXJzCiAgICAgICAgIG1f
bG9hZGVyLT5zZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotdm9pZCBEb2N1bWVudFRocmVh
ZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQordm9pZCBE
b2N1bWVudFRocmVhZGFibGVMb2FkZXI6OndpbGxTZW5kUmVxdWVzdChTdWJyZXNvdXJjZUxvYWRl
ciogbG9hZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlZGlyZWN0UmVzcG9uc2UpCiB7CiAgICAgQVNTRVJUKG1fY2xpZW50KTsKICAgICBBU1NF
UlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsKQEAgLTE4MSw2ICsxODIsOSBA
QCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6d2lsbFNlbmRSCiAgICAgICAgIFJlZlB0
cjxEb2N1bWVudFRocmVhZGFibGVMb2FkZXI+IHByb3RlY3QodGhpcyk7CiAgICAgICAgIG1fY2xp
ZW50LT5kaWRGYWlsUmVkaXJlY3RDaGVjaygpOwogICAgICAgICByZXF1ZXN0ID0gUmVzb3VyY2VS
ZXF1ZXN0KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgaWYgKG1fY2xpZW50LT5pc0RvY3VtZW50
VGhyZWFkYWJsZUxvYWRlckNsaWVudCgpKQorICAgICAgICAgICAgc3RhdGljX2Nhc3Q8RG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50Kj4obV9jbGllbnQpLT53aWxsU2VuZFJlcXVlc3QocmVx
dWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAgICAgfQogfQogCkBAIC0yMzAsNyArMjM0LDcgQEAg
dm9pZCBEb2N1bWVudFRocmVhZGFibGVMb2FkZXI6OmRpZFJlY2VpdgogICAgIEFTU0VSVChtX2Ns
aWVudCk7CiAgICAgQVNTRVJUX1VOVVNFRChsb2FkZXIsIGxvYWRlciA9PSBtX2xvYWRlcik7CiAK
LSAgICAvLyBJZ25vcmUgcmVzcG9uc2UgYm9keSBvZiBwcmVmbGlnaHQgcmVxdWVzdHMuCisgICAg
Ly8gUHJlZmxpZ2h0IGRhdGEgc2hvdWxkIGJlIGludmlzaWJsZSB0byBjbGllbnRzLgogICAgIGlm
IChtX2FjdHVhbFJlcXVlc3QpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjQyLDkgKzI0NiwxMSBA
QCB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlcjo6ZGlkUmVjZWl2CiAgICAgQVNTRVJUKG1f
Y2xpZW50KTsKICAgICBBU1NFUlRfVU5VU0VEKGxvYWRlciwgbG9hZGVyID09IG1fbG9hZGVyKTsK
IAotICAgIC8vIElnbm9yZSByZXNwb25zZSBib2R5IG9mIHByZWZsaWdodCByZXF1ZXN0cy4KLSAg
ICBpZiAoIW1fYWN0dWFsUmVxdWVzdCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVDYWNo
ZWRNZXRhZGF0YShkYXRhLCBsZW5ndGhSZWNlaXZlZCk7CisgICAgLy8gUHJlZmxpZ2h0IGRhdGEg
c2hvdWxkIGJlIGludmlzaWJsZSB0byBjbGllbnRzLgorICAgIGlmIChtX2FjdHVhbFJlcXVlc3Qp
CisgICAgICAgIHJldHVybjsKKworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlQ2FjaGVkTWV0YWRh
dGEoZGF0YSwgbGVuZ3RoUmVjZWl2ZWQpOwogfQogCiB2b2lkIERvY3VtZW50VGhyZWFkYWJsZUxv
YWRlcjo6ZGlkRmluaXNoTG9hZGluZyhTdWJyZXNvdXJjZUxvYWRlciogbG9hZGVyLCBkb3VibGUg
ZmluaXNoVGltZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudFRocmVhZGFi
bGVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9j
dW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaWZuZGVmIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudF9o
CisjZGVmaW5lIERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVudF9oCisKKyNpbmNsdWRlICJU
aHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
UmVzb3VyY2VSZXF1ZXN0OworY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKKworY2xhc3MgRG9jdW1l
bnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50IDogcHVibGljIFRocmVhZGFibGVMb2FkZXJDbGllbnQg
eworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNsaWVu
dCk7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCBi
b29sIGlzRG9jdW1lbnRUaHJlYWRhYmxlTG9hZGVyQ2xpZW50KCkgeyByZXR1cm4gdHJ1ZTsgfQor
CisgICAgdmlydHVhbCB2b2lkIHdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIC8qbmV3
UmVxdWVzdCovLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiAvKnJlZGlyZWN0UmVzcG9uc2UqLykg
eyB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBEb2N1bWVudFRo
cmVhZGFibGVMb2FkZXJDbGllbnRfaApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1RocmVh
ZGFibGVMb2FkZXJDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
VGhyZWFkYWJsZUxvYWRlckNsaWVudC5oCShyZXZpc2lvbiA3ODgwNykKKysrIFNvdXJjZS9XZWJD
b3JlL2xvYWRlci9UaHJlYWRhYmxlTG9hZGVyQ2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKQEAgLTUxLDYg
KzUxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DYW5jZWxsYXRpb24oY29uc3QgUmVzb3VyY2VSZXNwb25zZSYp
IHsgfQogCisgICAgICAgIHZpcnR1YWwgYm9vbCBpc0RvY3VtZW50VGhyZWFkYWJsZUxvYWRlckNs
aWVudCgpIHsgcmV0dXJuIGZhbHNlOyB9CisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIFRocmVh
ZGFibGVMb2FkZXJDbGllbnQoKSB7IH0KICAgICAgICAgdmlydHVhbCB+VGhyZWFkYWJsZUxvYWRl
ckNsaWVudCgpIHsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>