<?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>23776</bug_id>
          
          <creation_ts>2009-02-05 18:38:55 -0800</creation_ts>
          <short_desc>Introduce 2 base classes to split WorkerMessaingProxy.</short_desc>
          <delta_ts>2009-02-09 02:02:54 -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 Misc.</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>23777</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jianli</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>108563</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-02-05 18:38:55 -0800</bug_when>
    <thetext>In order to support running Worker in other process, i.e. Chrome&apos;s worker process, we need to split WorkerMessagingProxy into two pieces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108565</commentid>
    <comment_count>1</comment_count>
      <attachid>27374</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-02-05 18:43:55 -0800</bug_when>
    <thetext>Created attachment 27374
Proposed Patch

This patch only adds these two base classes. The next patch will change WorkerMessagingProxy to derive from these two base classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108616</commentid>
    <comment_count>2</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-06 02:56:44 -0800</bug_when>
    <thetext>ChangeLog:
  WorkerMessaingProxy sp

   // A proxy to talk to the worker context.
I&apos;m not sure that this comment adds much info.

  // Creator.
This comment should be omitted.

   static WorkerContextProxyBase* create(const String&amp; scriptURL, Worker* worker);
The param &quot;worker&quot; doesn&apos;t add any info so it should be omited.

Also I don&apos;t think this method is implemented yet, so it probably shouldn&apos;t be here.

Lastly, it bring up lifetime issues.  Is this class deleted by who ever creates it.  I suspect the lifetime will be more like WorkerMessagingProxy and this class will need a method like &quot;void workerObjectDestroyed();&quot;  (something to signal the class that the WorkerObject is done with it).


The per method comments throughout seem to repeat the method name and should just be omitted.

The vcproj file references .cpp files that aren&apos;t part of the patch.

I think GNUMakefile.am needs to have the header files added to it.  </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108647</commentid>
    <comment_count>3</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-06 10:14:34 -0800</bug_when>
    <thetext>I was thinking about the Base suffix.  I don&apos;t think it is needed here because the classes are intended to pure virtual so there will not be a WorkerContextProxy that adds non virtual methods.

It is usually used when you want a class that is non-platform specific but files need to refer to the non base version.  For example, you could have &quot;class FooBase&quot; in platform but files in WebCore/dom would refer to class Foo and #include &quot;foo.h&quot; but foo.h would be in a platform specific directory like platform/win/foo.h.
   
Lastly, if implementation of these classes is going to be platform specific, then dom isn&apos;t the correct directory for them.  You&apos;d want WebCore/platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108661</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-06 10:56:50 -0800</bug_when>
    <thetext>Actually, I take back the comment about moving them to platform because there is a dom dependency.

It is fine where it is, but it will need to be moved before implementing platform specific items.


</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108693</commentid>
    <comment_count>5</comment_count>
      <attachid>27413</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-02-06 13:18:52 -0800</bug_when>
    <thetext>Created attachment 27413
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108697</commentid>
    <comment_count>6</comment_count>
      <attachid>27374</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-06 13:24:09 -0800</bug_when>
    <thetext>Comment on attachment 27374
Proposed Patch

Marking as obsolete due to new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108728</commentid>
    <comment_count>7</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-06 15:16:09 -0800</bug_when>
    <thetext>These issues appear unaddressed:

ChangeLog:
  WorkerMessaingProxy sp

   // A proxy to talk to the worker context.
I&apos;m not sure that this comment adds much info.

  // Creator.
This comment should be omitted.

   static WorkerContextProxyBase* create(const String&amp; scriptURL, Worker*
worker);
The param &quot;worker&quot; doesn&apos;t add any info so it should be omited.

Also I don&apos;t think this method is implemented yet, so it probably shouldn&apos;t be
here.

Lastly, it bring up lifetime issues.  Is this class deleted by who ever creates
it.  I suspect the lifetime will be more like WorkerMessagingProxy and this
class will need a method like &quot;void workerObjectDestroyed();&quot;  (something to
signal the class that the WorkerObject is done with it).


The per method comments throughout seem to repeat the method name and should
just be omitted.


I think GNUMakefile.am needs to have the header files added to it.  </thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108786</commentid>
    <comment_count>8</comment_count>
      <attachid>27441</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2009-02-06 17:40:45 -0800</bug_when>
    <thetext>Created attachment 27441
Proposed Patch

I fixed all the problems excepted those as commented below.

I still keep the comment for the whole class since it clarifies what the class is intended for.

I do not add workerObjectDestroyed to WorkerConextProxy class since I think we can merge it into terminateWorkerContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108868</commentid>
    <comment_count>9</comment_count>
      <attachid>27413</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-07 23:03:51 -0800</bug_when>
    <thetext>Comment on attachment 27413
Proposed Patch

New patch makes this one obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108869</commentid>
    <comment_count>10</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2009-02-07 23:08:23 -0800</bug_when>
    <thetext>Looks good to me.

As suggested by dimich, after this check in, I think we&apos;ll need to move this and some other worker classes to a WebCore/workers dir (and then we&apos;ll have platform specific directories under that).

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108954</commentid>
    <comment_count>11</comment_count>
      <attachid>27441</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-09 01:57:20 -0800</bug_when>
    <thetext>Comment on attachment 27441
Proposed Patch

&gt; +namespace WebCore {
&gt; +    class String;

We usually add an empty line here.

+        virtual void postMessageToWorkerContext(const String&amp; message) = 0;
+        virtual void postMessageToWorkerObject(const String&amp; message) = 0;

The argument name can be omitted in these functions.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108955</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-09 02:02:54 -0800</bug_when>
    <thetext>Committed revision 40780.

When creating patches, please make sure that the current directory is WebKit root - that will make them easier to apply. To make directory scanning faster, you can pass a list to svn-create-patch, e.g.:

svn-create-patch WebCore LayoutTests/ChangeLog LayoutTests/fast/workers</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27374</attachid>
            <date>2009-02-05 18:43:55 -0800</date>
            <delta_ts>2009-02-06 13:24:09 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>AddTwoWorkerProxyBaseInterfaces</filename>
            <type>text/plain</type>
            <size>11640</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwNjk4
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDIt
MDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSAyIGJhc2UgY2xhc3NlcyB0byBz
cGxpdCBXb3JrZXJNZXNzYWluZ1Byb3h5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NzYKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vV29ya2VyQ29udGV4dFByb3h5QmFzZS5oOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckNvbnRleHRQcm94eUJhc2U6On5Xb3JrZXJDb250ZXh0UHJveHlCYXNl
KToKKyAgICAgICAgKiBkb20vV29ya2VyT2JqZWN0UHJveHlCYXNlLmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V29ya2VyT2JqZWN0UHJveHlCYXNlOjp+V29ya2VyT2JqZWN0UHJveHlCYXNl
KToKKwogMjAwOS0wMi0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpJbmRleDogV2ViQ29yZS52Y3Byb2ovV2ViQ29y
ZS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJl
dmlzaW9uIDQwNjcyKQorKysgV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcg
Y29weSkKQEAgLTEyMjAyLDYgKzEyMjAyLDE0IEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8
RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJDb250ZXh0UHJveHlCYXNlLmNw
cCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XGRvbVxXb3JrZXJDb250ZXh0UHJveHlCYXNlLmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJ
PEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV29ya2VyTG9jYXRpb24uY3BwIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KQEAgLTEyMjE4LDYgKzEyMjI2LDE0IEBACiAJCQkJPg0KIAkJCTwv
RmlsZT4NCiAJCQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJPYmplY3RQ
cm94eUJhc2UuY3BwIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0
aXZlUGF0aD0iLi5cZG9tXFdvcmtlck9iamVjdFByb3h5QmFzZS5oIg0KKwkJCQk+DQorCQkJPC9G
aWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdvcmtlclJ1bkxvb3Au
Y3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDQwNjcyKQorKysgV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC01NTMsNiArNTUzLDggQEAKIAkJMjlGRkJCODMwRTdDNUEzRDAw
NDA3NzMwIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyOUZGQkI4MTBFN0M1QTNEMDA0MDc3MzAgLyogQWNjZXNzaWJp
bGl0eUxpc3QuaCAqLzsgfTsKIAkJMkQ5MDY2MDYwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0
YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJE
OTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAgKi87IH07CiAJCTJEOTA2
NjA3MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExh
eW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJMkUzQUM3QjAwRjNCQzVGMTAwNjMzRjA0IC8qIFdvcmtlckNvbnRleHRQcm94eUJhc2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFM0FDN0FG
MEYzQkM1RjEwMDYzM0YwNCAvKiBXb3JrZXJDb250ZXh0UHJveHlCYXNlLmggKi87IH07CisJCTJF
M0FDN0IyMEYzQkM1RkQwMDYzM0YwNCAvKiBXb3JrZXJPYmplY3RQcm94eUJhc2UuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFM0FDN0IxMEYzQkM1RkQw
MDYzM0YwNCAvKiBXb3JrZXJPYmplY3RQcm94eUJhc2UuaCAqLzsgfTsKIAkJMzEyODhFNzIwRTMw
MDVENjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUg
LyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLzsgfTsKIAkJMzEyODhFNzMwRTMwMDVENjAw
MzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNkYwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktp
dENTU0tleWZyYW1lUnVsZS5oICovOyB9OwogCQkzMTI4OEU3NDBFMzAwNUQ2MDAzNjE5QUUgLyog
V2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU3MDBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5
ZnJhbWVzUnVsZS5jcHAgKi87IH07CkBAIC01NDYxLDYgKzU0NjMsOCBAQAogCQkyRDkwNjYwNTBC
RTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IExheW91dFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJE
OTA2NjBCMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2xpcGJvYXJkTWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQkyRDkw
NjYwQzA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQ2xpcGJvYXJkTWFjLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
KwkJMkUzQUM3QUYwRjNCQzVGMTAwNjMzRjA0IC8qIFdvcmtlckNvbnRleHRQcm94eUJhc2UuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyQ29udGV4dFByb3h5QmFzZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRTNBQzdCMTBGM0JDNUZEMDA2MzNGMDQg
LyogV29ya2VyT2JqZWN0UHJveHlCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdvcmtlck9iamVjdFByb3h5QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTI4OEU2RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0tleWZyYW1lUnVs
ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTZGMEUzMDA1RDYwMDM2
MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0tleWZy
YW1lc1J1bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ0NzksMTEgKzE0
NDgzLDEzIEBACiAJCQkJRTFDMkM0NDEwRUFEMDE3QjAwN0U2MUZCIC8qIFdvcmtlckNvbnRleHQu
Y3BwICovLAogCQkJCUUxQzJDNDNEMEVBRDAxMzMwMDdFNjFGQiAvKiBXb3JrZXJDb250ZXh0Lmgg
Ki8sCiAJCQkJRTE4MjU2NEYwRUYyQUNFNjAwOTMzMjQyIC8qIFdvcmtlckNvbnRleHQuaWRsICov
LAorCQkJCTJFM0FDN0FGMEYzQkM1RjEwMDYzM0YwNCAvKiBXb3JrZXJDb250ZXh0UHJveHlCYXNl
LmggKi8sCiAJCQkJRTFDMzYzMDUwRUFGMkQwNzAwNzQxMEJDIC8qIFdvcmtlckxvY2F0aW9uLmNw
cCAqLywKIAkJCQlFMUMzNjMwMDBFQUYyQ0M2MDA3NDEwQkMgLyogV29ya2VyTG9jYXRpb24uaCAq
LywKIAkJCQlFMUMzNjJCQjBFQUYyOUZCMDA3NDEwQkMgLyogV29ya2VyTG9jYXRpb24uaWRsICov
LAogCQkJCUUxNDc5OUIzMEVDREU5RDgwMDI5MkJGMyAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5j
cHAgKi8sCiAJCQkJRTE0Nzk5QTYwRUNERTNBNDAwMjkyQkYzIC8qIFdvcmtlck1lc3NhZ2luZ1By
b3h5LmggKi8sCisJCQkJMkUzQUM3QjEwRjNCQzVGRDAwNjMzRjA0IC8qIFdvcmtlck9iamVjdFBy
b3h5QmFzZS5oICovLAogCQkJCTE4QTA1MzdBMEYyNjg1OUMwMEE1MTcwNSAvKiBXb3JrZXJSdW5M
b29wLmNwcCAqLywKIAkJCQkxOEEwNTM3QjBGMjY4NTlDMDBBNTE3MDUgLyogV29ya2VyUnVuTG9v
cC5oICovLAogCQkJCUUxQzJDNDI4MEVBQ0UwRTAwMDdFNjFGQiAvKiBXb3JrZXJUaHJlYWQuY3Bw
ICovLApAQCAtMTY3MjcsNiArMTY3MzMsOCBAQAogCQkJCTFBNTY5RDI1MEQ3RTJCODIwMDdDMzk4
MyAvKiBydW50aW1lX3Jvb3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMzA5RTFFMDk5RTY0OTIw
MDU2RTU4MSAvKiB2aXNpYmxlX3VuaXRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzk2REI0MzBG
M0E4ODBFMDA1NzNDQjMgLyogUmVuZGVyQm94TW9kZWxPYmplY3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCTJFM0FDN0IwMEYzQkM1RjEwMDYzM0YwNCAvKiBXb3JrZXJDb250ZXh0UHJveHlCYXNlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQkyRTNBQzdCMjBGM0JDNUZEMDA2MzNGMDQgLyogV29ya2VyT2Jq
ZWN0UHJveHlCYXNlLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IGRvbS9Xb3JrZXJDb250ZXh0UHJv
eHlCYXNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gZG9tL1dvcmtlckNvbnRleHRQcm94eUJhc2UuaAkocmV2
aXNpb24gMCkKKysrIGRvbS9Xb3JrZXJDb250ZXh0UHJveHlCYXNlLmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdvcmtlckNvbnRleHRQcm94eUJhc2VfaAorI2RlZmluZSBX
b3JrZXJDb250ZXh0UHJveHlCYXNlX2gKKworI2lmIEVOQUJMRShXT1JLRVJTKQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU3RyaW5nOworICAgIGNsYXNzIFdvcmtlcjsKKworICAg
IC8vIEEgcHJveHkgdG8gdGFsayB0byB0aGUgd29ya2VyIGNvbnRleHQuCisgICAgY2xhc3MgV29y
a2VyQ29udGV4dFByb3h5QmFzZSB7CisgICAgcHVibGljOgorICAgICAgICAvLyBDcmVhdG9yLgor
ICAgICAgICBzdGF0aWMgV29ya2VyQ29udGV4dFByb3h5QmFzZSogY3JlYXRlKGNvbnN0IFN0cmlu
ZyYgc2NyaXB0VVJMLCBXb3JrZXIqIHdvcmtlcik7CisKKyAgICAgICAgdmlydHVhbCB+V29ya2Vy
Q29udGV4dFByb3h5QmFzZSgpIHt9CisKKyAgICAgICAgLy8gVGVybWluYXRlcyB0aGUgd29ya2Vy
IGNvbnRleHQuCisgICAgICAgIHZpcnR1YWwgdm9pZCB0ZXJtaW5hdGVXb3JrZXJDb250ZXh0KCkg
PSAwOworCisgICAgICAgIC8vIFBvc3RzIHRoZSBtZXNzYWdlIHRvIHRoZSB3b3JrZXIgY29udGV4
dC4KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJDb250ZXh0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkgPSAwOworCisgICAgICAgIC8vIEV4aXN0cyBhbnkgcGVuZGluZyBh
Y3Rpdml0eT8KKyAgICAgICAgdmlydHVhbCBib29sIGhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
ID0gMDsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV09SS0VSUykKKworI2VuZGlmIC8vIFdvcmtlckNvbnRleHRQcm94eUJhc2VfaAoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogZG9tL1dvcmtlckNvbnRleHRQcm94eUJhc2UuaApfX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5h
bWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5kZXg6IGRvbS9Xb3JrZXJPYmplY3RQcm94eUJh
c2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBkb20vV29ya2VyT2JqZWN0UHJveHlCYXNlLmgJKHJldmlzaW9u
IDApCisrKyBkb20vV29ya2VyT2JqZWN0UHJveHlCYXNlLmgJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdvcmtlck9iamVjdFByb3h5QmFzZV9oCisjZGVmaW5lIFdvcmtlck9i
amVjdFByb3h5QmFzZV9oCisKKyNpZiBFTkFCTEUoV09SS0VSUykKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworICAgIGNsYXNzIFN0cmluZzsKKworICAgIC8vIEEgcHJveHkgdG8gdGFsayB0byB0aGUg
d29ya2VyIG9iamVjdC4KKyAgICBjbGFzcyBXb3JrZXJPYmplY3RQcm94eUJhc2UgeworICAgIHB1
YmxpYzoKKyAgICAgICAgdmlydHVhbCB+V29ya2VyT2JqZWN0UHJveHlCYXNlKCkge30KKworICAg
ICAgICAvLyBQb3N0cyB0aGUgbWVzc2FnZSB0byB0aGUgd29ya2VyIG9iamVjdC4KKyAgICAgICAg
dmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBtZXNz
YWdlKSA9IDA7CisKKyAgICAgICAgLy8gUG9zdHMgdGhlIGV4Y2VwdGlvbiB0byB0aGUgd29ya2Vy
IG9iamVjdC4KKyAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVj
dChjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlVVJMKSA9IDA7CisKKyAgICAgICAgLy8gUmVwb3J0cyBpZiB0aGVyZSBpcyBwZW5k
aW5nIGFjdGl2aXR5IGluIHRoZSB3b3JrZXIgY29udGV4dC4KKyAgICAgICAgdmlydHVhbCB2b2lk
IHJlcG9ydFBlbmRpbmdBY3Rpdml0eShib29sIGhhc1BlbmRpbmdBY3Rpdml0eSkgPSAwOworCisg
ICAgICAgIC8vIENhbGxlZCB3aGVuIHRoZSB3b3JrZXIgY29udGV4dCBpcyBkZXN0cm95ZWQuCisg
ICAgICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJDb250ZXh0RGVzdHJveWVkKCkgPSAwOworICAgIH07
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQor
CisjZW5kaWYgLy8gV29ya2VyT2JqZWN0UHJveHlCYXNlX2gKClByb3BlcnR5IGNoYW5nZXMgb246
IGRvbS9Xb3JrZXJPYmplY3RQcm94eUJhc2UuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRh
YmxlCiAgICsgKgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27413</attachid>
            <date>2009-02-06 13:18:52 -0800</date>
            <delta_ts>2009-02-07 23:03:51 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>AddTwoWorkerProxyBaseInterfaces2</filename>
            <type>text/plain</type>
            <size>11303</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwNzI3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMDIt
MDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSAyIGJhc2UgY2xhc3NlcyB0byBz
cGxpdCBXb3JrZXJNZXNzYWluZ1Byb3h5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM3NzYKKworICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBkb20vV29ya2VyQ29udGV4dFByb3h5Lmg6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyQ29udGV4dFByb3h5Ojp+V29ya2VyQ29udGV4dFByb3h5KToKKyAgICAgICAg
KiBkb20vV29ya2VyT2JqZWN0UHJveHkuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXb3Jr
ZXJPYmplY3RQcm94eTo6fldvcmtlck9iamVjdFByb3h5KToKKwogMjAwOS0wMi0wNiAgQW5kZXJz
IENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZpeC4KSW5k
ZXg6IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUu
dmNwcm9qL1dlYkNvcmUudmNwcm9qCShyZXZpc2lvbiA0MDcyNikKKysrIFdlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xMjE4Niw2ICsxMjE4NiwxMCBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxkb21c
V29ya2VyQ29udGV4dFByb3h5LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZpbGUNCiAJ
CQkJUmVsYXRpdmVQYXRoPSIuLlxkb21cV29ya2VyTG9jYXRpb24uY3BwIg0KIAkJCQk+DQogCQkJ
PC9GaWxlPg0KQEAgLTEyMjAyLDYgKzEyMjA2LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJ
CQk8RmlsZQ0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJPYmplY3RQcm94eS5oIg0K
KwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQogCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9t
XFdvcmtlclJ1bkxvb3AuY3BwIg0KIAkJCQk+DQogCQkJPC9GaWxlPg0KSW5kZXg6IFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDQwNzI2KQorKysgV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01NTEsNiArNTUxLDggQEAKIAkJMjlG
RkJCODMwRTdDNUEzRDAwNDA3NzMwIC8qIEFjY2Vzc2liaWxpdHlMaXN0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyOUZGQkI4MTBFN0M1QTNEMDA0MDc3
MzAgLyogQWNjZXNzaWJpbGl0eUxpc3QuaCAqLzsgfTsKIAkJMkQ5MDY2MDYwQkUxNDFENDAwOTU2
OTk4IC8qIExheW91dFN0YXRlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJEOTA2NjA0MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5jcHAg
Ki87IH07CiAJCTJEOTA2NjA3MEJFMTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDUwQkUxNDFE
NDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKKwkJMkUzQUM3QjAwRjNCQzVGMTAwNjMzRjA0IC8qIFdvcmtlckNv
bnRleHRQcm94eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkUzQUM3QUYwRjNCQzVGMTAwNjMzRjA0IC8qIFdvcmtlckNvbnRleHRQcm94eS5oICovOyB9
OworCQkyRTNBQzdCMjBGM0JDNUZEMDA2MzNGMDQgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFM0FDN0IxMEYzQkM1
RkQwMDYzM0YwNCAvKiBXb3JrZXJPYmplY3RQcm94eS5oICovOyB9OwogCQkzMTI4OEU3MjBFMzAw
NUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZFMEUzMDA1RDYwMDM2MTlBRSAv
KiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwICovOyB9OwogCQkzMTI4OEU3MzBFMzAwNUQ2MDAz
NjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0
Q1NTS2V5ZnJhbWVSdWxlLmggKi87IH07CiAJCTMxMjg4RTc0MEUzMDA1RDYwMDM2MTlBRSAvKiBX
ZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDMxMjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlm
cmFtZXNSdWxlLmNwcCAqLzsgfTsKQEAgLTU0NTYsNiArNTQ1OCw4IEBACiAJCTJEOTA2NjA1MEJF
MTQxRDQwMDk1Njk5OCAvKiBMYXlvdXRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gTGF5b3V0U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQ5
MDY2MEIwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDbGlwYm9hcmRNYWMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCTJEOTA2
NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlwYm9hcmRNYWMubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBDbGlwYm9hcmRNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owor
CQkyRTNBQzdBRjBGM0JDNUYxMDA2MzNGMDQgLyogV29ya2VyQ29udGV4dFByb3h5LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdvcmtlckNvbnRleHRQcm94eS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQkyRTNBQzdCMTBGM0JDNUZEMDA2MzNGMDQgLyogV29ya2Vy
T2JqZWN0UHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyT2Jq
ZWN0UHJveHkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMzEyODhFNkUwRTMwMDVE
NjAwMzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkzMTI4OEU2RjBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NT
S2V5ZnJhbWVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYktpdENT
U0tleWZyYW1lUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTI4OEU3MDBF
MzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVzUnVsZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NDY4LDExICsxNDQ3MiwxMyBAQAogCQkJCUUx
QzJDNDQxMEVBRDAxN0IwMDdFNjFGQiAvKiBXb3JrZXJDb250ZXh0LmNwcCAqLywKIAkJCQlFMUMy
QzQzRDBFQUQwMTMzMDA3RTYxRkIgLyogV29ya2VyQ29udGV4dC5oICovLAogCQkJCUUxODI1NjRG
MEVGMkFDRTYwMDkzMzI0MiAvKiBXb3JrZXJDb250ZXh0LmlkbCAqLywKKwkJCQkyRTNBQzdBRjBG
M0JDNUYxMDA2MzNGMDQgLyogV29ya2VyQ29udGV4dFByb3h5LmggKi8sCiAJCQkJRTFDMzYzMDUw
RUFGMkQwNzAwNzQxMEJDIC8qIFdvcmtlckxvY2F0aW9uLmNwcCAqLywKIAkJCQlFMUMzNjMwMDBF
QUYyQ0M2MDA3NDEwQkMgLyogV29ya2VyTG9jYXRpb24uaCAqLywKIAkJCQlFMUMzNjJCQjBFQUYy
OUZCMDA3NDEwQkMgLyogV29ya2VyTG9jYXRpb24uaWRsICovLAogCQkJCUUxNDc5OUIzMEVDREU5
RDgwMDI5MkJGMyAvKiBXb3JrZXJNZXNzYWdpbmdQcm94eS5jcHAgKi8sCiAJCQkJRTE0Nzk5QTYw
RUNERTNBNDAwMjkyQkYzIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmggKi8sCisJCQkJMkUzQUM3
QjEwRjNCQzVGRDAwNjMzRjA0IC8qIFdvcmtlck9iamVjdFByb3h5LmggKi8sCiAJCQkJMThBMDUz
N0EwRjI2ODU5QzAwQTUxNzA1IC8qIFdvcmtlclJ1bkxvb3AuY3BwICovLAogCQkJCTE4QTA1MzdC
MEYyNjg1OUMwMEE1MTcwNSAvKiBXb3JrZXJSdW5Mb29wLmggKi8sCiAJCQkJRTFDMkM0MjgwRUFD
RTBFMDAwN0U2MUZCIC8qIFdvcmtlclRocmVhZC5jcHAgKi8sCkBAIC0xNjcxNSw2ICsxNjcyMSw4
IEBACiAJCQkJMUE1NjlEMjUwRDdFMkI4MjAwN0MzOTgzIC8qIHJ1bnRpbWVfcm9vdC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMzMDlFMUUwOTlFNjQ5MjAwNTZFNTgxIC8qIHZpc2libGVfdW5pdHMu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDOTZEQjQzMEYzQTg4MEUwMDU3M0NCMyAvKiBSZW5kZXJC
b3hNb2RlbE9iamVjdC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUzQUM3QjAwRjNCQzVGMTAwNjMz
RjA0IC8qIFdvcmtlckNvbnRleHRQcm94eS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkUzQUM3QjIw
RjNCQzVGRDAwNjMzRjA0IC8qIFdvcmtlck9iamVjdFByb3h5LmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IGRvbS9Xb3JrZXJDb250ZXh0UHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb20vV29ya2VyQ29u
dGV4dFByb3h5LmgJKHJldmlzaW9uIDApCisrKyBkb20vV29ya2VyQ29udGV4dFByb3h5LmgJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICog
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVp
dGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09Q
WVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdvcmtlckNvbnRleHRQcm94eV9oCisj
ZGVmaW5lIFdvcmtlckNvbnRleHRQcm94eV9oCisKKyNpZiBFTkFCTEUoV09SS0VSUykKKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFN0cmluZzsKKyAgICBjbGFzcyBXb3JrZXI7CisK
KyAgICAvLyBBIHByb3h5IHRvIHRhbGsgdG8gdGhlIHdvcmtlciBjb250ZXh0LgorICAgIGNsYXNz
IFdvcmtlckNvbnRleHRQcm94eSB7CisgICAgcHVibGljOgorICAgICAgICAvLyBDcmVhdG9yLgor
ICAgICAgICBzdGF0aWMgV29ya2VyQ29udGV4dFByb3h5KiBjcmVhdGUoY29uc3QgU3RyaW5nJiBz
Y3JpcHRVUkwsIFdvcmtlciogd29ya2VyKTsKKworICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJDb250
ZXh0UHJveHkoKSB7fQorCisgICAgICAgIC8vIFRlcm1pbmF0ZXMgdGhlIHdvcmtlciBjb250ZXh0
LgorICAgICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyQ29udGV4dCgpID0gMDsKKwor
ICAgICAgICAvLyBQb3N0cyB0aGUgbWVzc2FnZSB0byB0aGUgd29ya2VyIGNvbnRleHQuCisgICAg
ICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyQ29udGV4dChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpID0gMDsKKworICAgICAgICAvLyBFeGlzdHMgYW55IHBlbmRpbmcgYWN0aXZpdHk/
CisgICAgICAgIHZpcnR1YWwgYm9vbCBoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdCA9IDA7Cisg
ICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdPUktF
UlMpCisKKyNlbmRpZiAvLyBXb3JrZXJDb250ZXh0UHJveHlfaAoKUHJvcGVydHkgY2hhbmdlcyBv
bjogZG9tL1dvcmtlckNvbnRleHRQcm94eS5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFi
bGUKICAgKyAqCgpJbmRleDogZG9tL1dvcmtlck9iamVjdFByb3h5LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
ZG9tL1dvcmtlck9iamVjdFByb3h5LmgJKHJldmlzaW9uIDApCisrKyBkb20vV29ya2VyT2JqZWN0
UHJveHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV29ya2VyT2JqZWN0
UHJveHlfaAorI2RlZmluZSBXb3JrZXJPYmplY3RQcm94eV9oCisKKyNpZiBFTkFCTEUoV09SS0VS
UykKKworbmFtZXNwYWNlIFdlYkNvcmUgeworICAgIGNsYXNzIFN0cmluZzsKKworICAgIC8vIEEg
cHJveHkgdG8gdGFsayB0byB0aGUgd29ya2VyIG9iamVjdC4KKyAgICBjbGFzcyBXb3JrZXJPYmpl
Y3RQcm94eSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJPYmplY3RQcm94
eSgpIHt9CisKKyAgICAgICAgLy8gUG9zdHMgdGhlIG1lc3NhZ2UgdG8gdGhlIHdvcmtlciBvYmpl
Y3QuCisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0TWVzc2FnZVRvV29ya2VyT2JqZWN0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkgPSAwOworCisgICAgICAgIC8vIFBvc3RzIHRoZSBleGNlcHRpb24g
dG8gdGhlIHdvcmtlciBvYmplY3QuCisgICAgICAgIHZpcnR1YWwgdm9pZCBwb3N0RXhjZXB0aW9u
VG9Xb3JrZXJPYmplY3QoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UsIGludCBsaW5lTnVtYmVy
LCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOworCisgICAgICAgIC8vIFJlcG9ydHMgaWYg
dGhlcmUgaXMgcGVuZGluZyBhY3Rpdml0eSBpbiB0aGUgd29ya2VyIGNvbnRleHQuCisgICAgICAg
IHZpcnR1YWwgdm9pZCByZXBvcnRQZW5kaW5nQWN0aXZpdHkoYm9vbCBoYXNQZW5kaW5nQWN0aXZp
dHkpID0gMDsKKworICAgICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgd29ya2VyIGNvbnRleHQgaXMg
ZGVzdHJveWVkLgorICAgICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyQ29udGV4dERlc3Ryb3llZCgp
ID0gMDsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV09SS0VSUykKKworI2VuZGlmIC8vIFdvcmtlck9iamVjdFByb3h5X2gKClByb3BlcnR5IGNo
YW5nZXMgb246IGRvbS9Xb3JrZXJPYmplY3RQcm94eS5oCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4
ZWN1dGFibGUKICAgKyAqCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27441</attachid>
            <date>2009-02-06 17:40:45 -0800</date>
            <delta_ts>2009-02-09 01:57:20 -0800</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>AddTwoWorkerProxyBaseInterfaces3</filename>
            <type>text/plain</type>
            <size>11209</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDQwNzQ2
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMDktMDIt
MDYgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludHJvZHVjZSAyIGJhc2UgY2xhc3NlcyB0byBz
cGxpdCBXb3JrZXJNZXNzYWdpbmdQcm94eS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzNzc2CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogZG9tL1dvcmtlckNvbnRleHRQ
cm94eS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHRQcm94eTo6fldv
cmtlckNvbnRleHRQcm94eSk6CisgICAgICAgICogZG9tL1dvcmtlck9iamVjdFByb3h5Lmg6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyT2JqZWN0UHJveHk6On5Xb3JrZXJPYmplY3RQ
cm94eSk6CisKIDIwMDktMDItMDYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEp1c3RpbiBHYXJjaWEuCkluZGV4OiBHTlVtYWtlZmlsZS5hbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBHTlVtYWtlZmlsZS5hbQkocmV2aXNpb24gNDA3MjYpCisrKyBHTlVtYWtl
ZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAtMjE5MywxMCArMjE5MywxMiBAQCB3ZWJjb3JlX3Nv
dXJjZXMgKz0gXAogCVdlYkNvcmUvZG9tL1dvcmtlci5oIFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXJD
b250ZXh0LmNwcCBcCiAJV2ViQ29yZS9kb20vV29ya2VyQ29udGV4dC5oIFwKKwlXZWJDb3JlL2Rv
bS9Xb3JrZXJDb250ZXh0UHJveHkuaCBcCiAJV2ViQ29yZS9kb20vV29ya2VyTG9jYXRpb24uY3Bw
IFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXJMb2NhdGlvbi5oIFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXJN
ZXNzYWdpbmdQcm94eS5jcHAgXAogCVdlYkNvcmUvZG9tL1dvcmtlck1lc3NhZ2luZ1Byb3h5Lmgg
XAorCVdlYkNvcmUvZG9tL1dvcmtlck9iamVjdFByb3h5LmggXAogCVdlYkNvcmUvZG9tL1dvcmtl
clJ1bkxvb3AuY3BwIFwKIAlXZWJDb3JlL2RvbS9Xb3JrZXJSdW5Mb29wLmggXAogCVdlYkNvcmUv
ZG9tL1dvcmtlclRocmVhZC5jcHAgXApJbmRleDogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHJldmlzaW9u
IDQwNzI2KQorKysgV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJKHdvcmtpbmcgY29weSkK
QEAgLTEyMTg2LDYgKzEyMTg2LDEwIEBACiAJCQkJPg0KIAkJCTwvRmlsZT4NCiAJCQk8RmlsZQ0K
KwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJDb250ZXh0UHJveHkuaCINCisJCQkJPg0K
KwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJM
b2NhdGlvbi5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+DQpAQCAtMTIyMDEsNiArMTIyMDUsMTAg
QEAKIAkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxXb3JrZXJNZXNzYWdpbmdQcm94eS5oIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KKwkJCTxGaWxlPg0KKwkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxX
b3JrZXJPYmplY3RQcm94eS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQogCQkJ
CVJlbGF0aXZlUGF0aD0iLi5cZG9tXFdvcmtlclJ1bkxvb3AuY3BwIg0KIAkJCQk+DQpJbmRleDog
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gNDA3MjYpCisrKyBXZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU1MSw2ICs1NTEsOCBA
QAogCQkyOUZGQkI4MzBFN0M1QTNEMDA0MDc3MzAgLyogQWNjZXNzaWJpbGl0eUxpc3QuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDI5RkZCQjgxMEU3QzVB
M0QwMDQwNzczMCAvKiBBY2Nlc3NpYmlsaXR5TGlzdC5oICovOyB9OwogCQkyRDkwNjYwNjBCRTE0
MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkQ5MDY2MDQwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0
YXRlLmNwcCAqLzsgfTsKIAkJMkQ5MDY2MDcwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDkwNjYw
NTBCRTE0MUQ0MDA5NTY5OTggLyogTGF5b3V0U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkyRTNBQzg0RTBGM0QwNkQxMDA2MzNGMDQgLyog
V29ya2VyQ29udGV4dFByb3h5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRTNBQzg0RDBGM0QwNkQxMDA2MzNGMDQgLyogV29ya2VyQ29udGV4dFByb3h5
LmggKi87IH07CisJCTJFM0FDODUwMEYzRDA2RjcwMDYzM0YwNCAvKiBXb3JrZXJPYmplY3RQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUzQUM4
NEYwRjNEMDZGNzAwNjMzRjA0IC8qIFdvcmtlck9iamVjdFByb3h5LmggKi87IH07CiAJCTMxMjg4
RTcyMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNkUwRTMwMDVENjAw
MzYxOUFFIC8qIFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHAgKi87IH07CiAJCTMxMjg4RTczMEUz
MDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAv
KiBXZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLzsgfTsKIAkJMzEyODhFNzQwRTMwMDVENjAwMzYx
OUFFIC8qIFdlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyODhFNzAwRTMwMDVENjAwMzYxOUFFIC8qIFdlYktp
dENTU0tleWZyYW1lc1J1bGUuY3BwICovOyB9OwpAQCAtNTQ1Niw2ICs1NDU4LDggQEAKIAkJMkQ5
MDY2MDUwQkUxNDFENDAwOTU2OTk4IC8qIExheW91dFN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBMYXlvdXRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQkyRDkwNjYwQjA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENsaXBib2FyZE1hYy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJMkQ5MDY2MEMwNjY1RDkzNzAwNkI2RjFBIC8qIENsaXBib2FyZE1hYy5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IENsaXBib2Fy
ZE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CisJCTJFM0FDODREMEYzRDA2RDEwMDYzM0YwNCAvKiBXb3JrZXJDb250ZXh0UHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV29ya2VyQ29udGV4dFByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFM0FDODRGMEYzRDA2RjcwMDYzM0YwNCAv
KiBXb3JrZXJPYmplY3RQcm94eS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
b3JrZXJPYmplY3RQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTI4OEU2
RTBFMzAwNUQ2MDAzNjE5QUUgLyogV2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0tleWZyYW1lUnVsZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMjg4RTZGMEUzMDA1RDYwMDM2MTlBRSAvKiBX
ZWJLaXRDU1NLZXlmcmFtZVJ1bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViS2l0Q1NTS2V5ZnJhbWVSdWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMx
Mjg4RTcwMEUzMDA1RDYwMDM2MTlBRSAvKiBXZWJLaXRDU1NLZXlmcmFtZXNSdWxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYktpdENTU0tleWZyYW1lc1J1bGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTQ0NjgsMTEgKzE0NDcyLDEzIEBA
CiAJCQkJRTFDMkM0NDEwRUFEMDE3QjAwN0U2MUZCIC8qIFdvcmtlckNvbnRleHQuY3BwICovLAog
CQkJCUUxQzJDNDNEMEVBRDAxMzMwMDdFNjFGQiAvKiBXb3JrZXJDb250ZXh0LmggKi8sCiAJCQkJ
RTE4MjU2NEYwRUYyQUNFNjAwOTMzMjQyIC8qIFdvcmtlckNvbnRleHQuaWRsICovLAorCQkJCTJF
M0FDODREMEYzRDA2RDEwMDYzM0YwNCAvKiBXb3JrZXJDb250ZXh0UHJveHkuaCAqLywKIAkJCQlF
MUMzNjMwNTBFQUYyRDA3MDA3NDEwQkMgLyogV29ya2VyTG9jYXRpb24uY3BwICovLAogCQkJCUUx
QzM2MzAwMEVBRjJDQzYwMDc0MTBCQyAvKiBXb3JrZXJMb2NhdGlvbi5oICovLAogCQkJCUUxQzM2
MkJCMEVBRjI5RkIwMDc0MTBCQyAvKiBXb3JrZXJMb2NhdGlvbi5pZGwgKi8sCiAJCQkJRTE0Nzk5
QjMwRUNERTlEODAwMjkyQkYzIC8qIFdvcmtlck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJCQlF
MTQ3OTlBNjBFQ0RFM0E0MDAyOTJCRjMgLyogV29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywKKwkJ
CQkyRTNBQzg0RjBGM0QwNkY3MDA2MzNGMDQgLyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywKIAkJ
CQkxOEEwNTM3QTBGMjY4NTlDMDBBNTE3MDUgLyogV29ya2VyUnVuTG9vcC5jcHAgKi8sCiAJCQkJ
MThBMDUzN0IwRjI2ODU5QzAwQTUxNzA1IC8qIFdvcmtlclJ1bkxvb3AuaCAqLywKIAkJCQlFMUMy
QzQyODBFQUNFMEUwMDA3RTYxRkIgLyogV29ya2VyVGhyZWFkLmNwcCAqLywKQEAgLTE2NzE1LDYg
KzE2NzIxLDggQEAKIAkJCQkxQTU2OUQyNTBEN0UyQjgyMDA3QzM5ODMgLyogcnVudGltZV9yb290
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzMwOUUxRTA5OUU2NDkyMDA1NkU1ODEgLyogdmlzaWJs
ZV91bml0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM5NkRCNDMwRjNBODgwRTAwNTczQ0IzIC8q
IFJlbmRlckJveE1vZGVsT2JqZWN0LmggaW4gSGVhZGVycyAqLywKKwkJCQkyRTNBQzg0RTBGM0Qw
NkQxMDA2MzNGMDQgLyogV29ya2VyQ29udGV4dFByb3h5LmggaW4gSGVhZGVycyAqLywKKwkJCQky
RTNBQzg1MDBGM0QwNkY3MDA2MzNGMDQgLyogV29ya2VyT2JqZWN0UHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwpJbmRleDogZG9tL1dvcmtlckNvbnRleHRQcm94eS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGRvbS9X
b3JrZXJDb250ZXh0UHJveHkuaAkocmV2aXNpb24gMCkKKysrIGRvbS9Xb3JrZXJDb250ZXh0UHJv
eHkuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAg
ICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRz
CisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1
Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV29ya2VyQ29udGV4dFBy
b3h5X2gKKyNkZWZpbmUgV29ya2VyQ29udGV4dFByb3h5X2gKKworI2lmIEVOQUJMRShXT1JLRVJT
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU3RyaW5nOworCisgICAgLy8gQSBw
cm94eSB0byB0YWxrIHRvIHRoZSB3b3JrZXIgY29udGV4dC4KKyAgICBjbGFzcyBXb3JrZXJDb250
ZXh0UHJveHkgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+V29ya2VyQ29udGV4dFBy
b3h5KCkge30KKworICAgICAgICB2aXJ0dWFsIHZvaWQgdGVybWluYXRlV29ya2VyQ29udGV4dCgp
ID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlckNvbnRleHQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKSA9IDA7CisKKyAgICAgICAgdmlydHVhbCBib29sIGhhc1Bl
bmRpbmdBY3Rpdml0eSgpIGNvbnN0ID0gMDsKKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV09SS0VSUykKKworI2VuZGlmIC8vIFdvcmtlckNvbnRl
eHRQcm94eV9oCkluZGV4OiBkb20vV29ya2VyT2JqZWN0UHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBk
b20vV29ya2VyT2JqZWN0UHJveHkuaAkocmV2aXNpb24gMCkKKysrIGRvbS9Xb3JrZXJPYmplY3RQ
cm94eS5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAq
ICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBp
dHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJv
ZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXb3JrZXJPYmplY3RQ
cm94eV9oCisjZGVmaW5lIFdvcmtlck9iamVjdFByb3h5X2gKKworI2lmIEVOQUJMRShXT1JLRVJT
KQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisgICAgY2xhc3MgU3RyaW5nOworCisgICAgLy8gQSBw
cm94eSB0byB0YWxrIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgorICAgIGNsYXNzIFdvcmtlck9iamVj
dFByb3h5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfldvcmtlck9iamVjdFByb3h5
KCkge30KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdE1lc3NhZ2VUb1dvcmtlck9iamVjdChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4
Y2VwdGlvblRvV29ya2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGlu
ZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKKworICAgICAgICB2aXJ0dWFs
IHZvaWQgcmVwb3J0UGVuZGluZ0FjdGl2aXR5KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KSA9IDA7
CisKKyAgICAgICAgdmlydHVhbCB2b2lkIHdvcmtlckNvbnRleHREZXN0cm95ZWQoKSA9IDA7Cisg
ICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdPUktF
UlMpCisKKyNlbmRpZiAvLyBXb3JrZXJPYmplY3RQcm94eV9oCg==
</data>
<flag name="review"
          id="13275"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>