<?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>67080</bug_id>
          
          <creation_ts>2011-08-26 20:45:23 -0700</creation_ts>
          <short_desc>Add unit test for existing StringBuilder</short_desc>
          <delta_ts>2011-09-23 10:41:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Xianzhu Wang">wangxianzhu</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>aroben</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>457906</commentid>
    <comment_count>0</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-08-26 20:45:23 -0700</bug_when>
    <thetext>Before refactoring StringBuilder, we need a unit test to keep the refactoring safe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460190</commentid>
    <comment_count>1</comment_count>
      <attachid>105890</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-08-31 20:27:41 -0700</bug_when>
    <thetext>Created attachment 105890
patch (requires the patch to bug 67079)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>460193</commentid>
    <comment_count>2</comment_count>
      <attachid>105891</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-08-31 20:30:06 -0700</bug_when>
    <thetext>Created attachment 105891
patch (requires the patch to bug 67079)

Sorry I uploaded a wrong version of patch. This one is correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463192</commentid>
    <comment_count>3</comment_count>
      <attachid>106548</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-06 23:58:57 -0700</bug_when>
    <thetext>Created attachment 106548
updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463196</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-07 00:02:01 -0700</bug_when>
    <thetext>Attachment 106548 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Tools/ChangeLog&apos;, u&apos;Tools/TestWebKitAPI/Te...&quot; exit_code: 1

Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:685:  Missing &quot;developmentRegion = English&quot;.  [xcodeproj/settings] [5]
Total errors found: 1 in 3 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>463198</commentid>
    <comment_count>5</comment_count>
      <attachid>106549</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-07 00:05:02 -0700</bug_when>
    <thetext>Created attachment 106549
fixed style problem</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466789</commentid>
    <comment_count>6</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-13 19:57:53 -0700</bug_when>
    <thetext>As there will be several changes to StringBuilder, I think it&apos;d better if we have this change landed first. Then we can incrementally add unit tests together with the changes to StringBuilder. (Sorry for just mistakenly posting this comments to bug 67756.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466855</commentid>
    <comment_count>7</comment_count>
      <attachid>107291</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-13 23:19:01 -0700</bug_when>
    <thetext>Created attachment 107291
patch (added test for toString, and changed windows build file)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466856</commentid>
    <comment_count>8</comment_count>
      <attachid>107291</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-13 23:20:32 -0700</bug_when>
    <thetext>Comment on attachment 107291
patch (added test for toString, and changed windows build file)

Sorry. Wrong version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466858</commentid>
    <comment_count>9</comment_count>
      <attachid>107292</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-13 23:25:38 -0700</bug_when>
    <thetext>Created attachment 107292
patch (added test for toString, and changed windows build file)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468723</commentid>
    <comment_count>10</comment_count>
      <attachid>107292</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-09-16 12:47:48 -0700</bug_when>
    <thetext>Comment on attachment 107292
patch (added test for toString, and changed windows build file)

Looks good. We can add even more coverage later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468727</commentid>
    <comment_count>11</comment_count>
      <attachid>107292</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-16 12:50:19 -0700</bug_when>
    <thetext>Comment on attachment 107292
patch (added test for toString, and changed windows build file)

Rejecting attachment 107292 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Hunk #3 succeeded at 380 (offset 6 lines).
Hunk #4 succeeded at 590 (offset 6 lines).
2 out of 4 hunks FAILED -- saving rejects to file Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj.rej
patching file Tools/TestWebKitAPI/Tests/WTF/StringBuilderBasic.cpp
patching file Tools/TestWebKitAPI/win/TestWebKitAPI.vcproj
Hunk #1 succeeded at 608 (offset 4 lines).

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/9711697</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469073</commentid>
    <comment_count>12</comment_count>
      <attachid>107769</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-17 08:06:43 -0700</bug_when>
    <thetext>Created attachment 107769
patch that can apply on ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469216</commentid>
    <comment_count>13</comment_count>
      <attachid>107769</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-18 19:31:53 -0700</bug_when>
    <thetext>Comment on attachment 107769
patch that can apply on ToT

Investigating win build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469228</commentid>
    <comment_count>14</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-18 21:11:33 -0700</bug_when>
    <thetext>Need help:
win-ews reports errors about unresolved externals, like:

6&gt;StringBuilder.obj : error LNK2019: unresolved external symbol &quot;public: class WTF::CString __thiscall WTF::String::utf8(bool)const &quot; (?utf8@String@WTF@@QBE?AVCString@2@_N@Z) referenced in function &quot;class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp; __cdecl operator&lt;&lt;(class std::basic_ostream&lt;char,struct std::char_traits&lt;char&gt; &gt; &amp;,class WTF::String const &amp;)&quot; (??6@YAAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AAV01@ABVString@WTF@@@Z)

I guess I should add the missing symbols into JavaScriptCore.def, but I&apos;m wondering if I&apos;m correct why they aren&apos;t in the def file, and if there are any drawbacks of adding them just for unit tests?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469247</commentid>
    <comment_count>15</comment_count>
      <attachid>107806</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-18 23:17:21 -0700</bug_when>
    <thetext>Created attachment 107806
patch tentatively fixes windows build break

Added symbols in JavaScriptCore.def. Not sure if this the correct solution, but uploaded it in case it is correct we can reduce interaction cycles due to the time difference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469276</commentid>
    <comment_count>16</comment_count>
      <attachid>107806</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 01:06:01 -0700</bug_when>
    <thetext>Comment on attachment 107806
patch tentatively fixes windows build break

Adding the symbols breaks WebCore build on Windows. Saw AtomicString.cpp, StringImpl.cpp and WTFString.cpp explicitly included in WebCore.vcproj, so it seems that the symbols of them are intentionally not exported from JavaScriptCore. Should I add the three files into TestWebKitAPI.vcproj?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469284</commentid>
    <comment_count>17</comment_count>
      <attachid>107816</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 01:44:48 -0700</bug_when>
    <thetext>Created attachment 107816
patch (add three string sources into TestWebKitAPI.vcproj)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469308</commentid>
    <comment_count>18</comment_count>
      <attachid>107827</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 03:33:53 -0700</bug_when>
    <thetext>Created attachment 107827
patch (add icu dependency in TestWebKitAPICommon.vsprops)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469850</commentid>
    <comment_count>19</comment_count>
      <attachid>107952</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 18:31:34 -0700</bug_when>
    <thetext>Created attachment 107952
patch (removed Windows support)

I&apos;m unable resolve the Windows build error by myself, as I haven&apos;t a Windows build environment. I&apos;d like to leave this test not supported on Windows. As the other two tests under Tests/WTF, MetaAllocator and RedBlackTree, are also not supporting Windows, so I think this should be accepted (though I think this should be fixed.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>469851</commentid>
    <comment_count>20</comment_count>
      <attachid>107952</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-19 18:36:17 -0700</bug_when>
    <thetext>Comment on attachment 107952
patch (removed Windows support)

Darin, I still requested review for this new patch, because it has some changes since the review+ version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471331</commentid>
    <comment_count>21</comment_count>
      <attachid>108271</attachid>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-21 20:43:58 -0700</bug_when>
    <thetext>Created attachment 108271
patch (resolved conflicts with ToT)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472003</commentid>
    <comment_count>22</comment_count>
      <attachid>108271</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-22 18:41:39 -0700</bug_when>
    <thetext>Comment on attachment 108271
patch (resolved conflicts with ToT)

Clearing flags on attachment: 108271

Committed r95770: &lt;http://trac.webkit.org/changeset/95770&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472004</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-22 18:41:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472145</commentid>
    <comment_count>24</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-23 03:33:00 -0700</bug_when>
    <thetext>Thanks for writing more tests before changing the code!

Could you please add the new file to TestWebKitAPI.vcproj, too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472152</commentid>
    <comment_count>25</comment_count>
    <who name="Xianzhu Wang">wangxianzhu</who>
    <bug_when>2011-09-23 03:53:33 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; Thanks for writing more tests before changing the code!
&gt; 
&gt; Could you please add the new file to TestWebKitAPI.vcproj, too?

Sorry I tried that but failed. You can find the details of the failures in the red &quot;Win&quot; EWS icons. I&apos;m confused by the export stuffs and the way of the three string source files (WTFString.cpp, AtomicString.cpp and CString.cpp) are handled in WebCore.vcproj, and failed to resolve the linking issue of Tests/WTF/StringBuilder.cpp.

Filed bug 68688 about adding new unit tests into vcproj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472188</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-09-23 05:56:45 -0700</bug_when>
    <thetext>This is breaking the build for me. I wonder why it isn&apos;t breaking it for the bots?


CompileC /Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/Objects-normal/x86_64/StringBuilder.o Tests/WTF/StringBuilder.cpp normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI
    /Developer/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -Wno-trigraphs -fno-exceptions -fpascal-strings -O0 -Werror -Wno-return-type -Wparentheses -Wswitch -Wunused-function -Wno-unused-parameter -Wunused-variable -Wunused-value -DENABLE_DASHBOARD_SUPPORT -DWEBKIT_VERSION_MIN_REQUIRED=WEBKIT_VERSION_LATEST -fasm-blocks -Wno-deprecated-declarations -mmacosx-version-min=10.7 -gdwarf-2 -fvisibility=hidden -fvisibility-inlines-hidden -I/Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/TestWebKitAPI.hmap -I/Users/aroben/dev/BuildProducts/Debug/include -I/Users/aroben/dev/BuildProducts/Debug/WebCore.framework/PrivateHeaders/ForwardingHeaders -I/Users/aroben/dev/BuildProducts/Debug/WebCore.framework/PrivateHeaders/icu -I/Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/DerivedSources/x86_64 -I/Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/DerivedSources -Wall -W -Wno-unused-parameter -F/Users/aroben/dev/BuildProducts/Debug -F/System/Library/Frameworks/Quartz.framework/Frameworks -F/System/Library/Frameworks/ApplicationServices.framework/Frameworks -F/System/Library/Frameworks/CoreServices.framework/Frameworks -MMD -MT dependencies -MF /Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/Objects-normal/x86_64/StringBuilder.d -c /Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp -o /Users/aroben/dev/BuildProducts/TestWebKitAPI.build/Debug/TestWebKitAPI.build/Objects-normal/x86_64/StringBuilder.o
In file included from /Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:57:
In file included from /Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/config.h:53:
In file included from /Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:31:
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/internal/gtest-internal.h:97:10:{97:10-97:13}: error: conversion from &apos;const WTF::String&apos; to &apos;bool&apos; is ambiguous [3]
   *os &lt;&lt; val;
          ^~~
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest-message.h:122:5: note: in instantiation of function template specialization &apos;GTestStreamToHelper&lt;WTF::String&gt;&apos; requested here [3]
     ::GTestStreamToHelper(ss_, val);
     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:170:21: note: in instantiation of function template specialization &apos;testing::Message::operator&lt;&lt;&lt;WTF::String&gt;&apos; requested here [3]
   return (Message() &lt;&lt; streamable).GetString();
                     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/internal/gtest-internal.h:230:10: note: in instantiation of function template specialization &apos;testing::internal::StreamableToString&lt;WTF::String&gt;&apos; requested here [3]
   return StreamableToString(value);
          ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1248:10: note: in instantiation of function template specialization &apos;testing::internal::FormatForFailureMessage&lt;WTF::String&gt;&apos; requested here [3]
   return FormatForFailureMessage(value);
          ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1273:20: note: in instantiation of function template specialization &apos;testing::internal::FormatForComparisonFailureMessage&lt;WTF::String, WTF::String&gt;&apos; requested here [3]
                    FormatForComparisonFailureMessage(expected, actual),
                    ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1299:12: note: in instantiation of function template specialization &apos;testing::internal::CmpHelperEQ&lt;WTF::String, WTF::String&gt;&apos; requested here [3]
     return CmpHelperEQ(expected_expression, actual_expression, expected,
            ^
/Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:49:5: note: in instantiation of function template specialization &apos;testing::internal::EqHelper&lt;false&gt;::Compare&lt;WTF::String, WTF::String&gt;&apos; requested here [3]
     EXPECT_EQ(String(expected), String(builder.characters(), builder.length()));
     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1760:3: note: instantiated from:
   EXPECT_PRED_FORMAT2(::testing::internal:: \
   ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest_pred_impl.h:166:3: note: instantiated from:
   GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
   ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest_pred_impl.h:151:3: note: instantiated from:
   GTEST_ASSERT_(pred_format(#v1, #v2, v1, v2),\
   ^
/Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:49:5: note: instantiated from:
     EXPECT_EQ(String(expected), String(builder.characters(), builder.length()));
     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1760:3: note: instantiated from:
   EXPECT_PRED_FORMAT2(::testing::internal:: \
   ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest_pred_impl.h:166:3: note: instantiated from:
   GTEST_PRED_FORMAT2_(pred_format, v1, v2, GTEST_NONFATAL_FAILURE_)
   ^
/Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:49:5: note: instantiated from:
     EXPECT_EQ(String(expected), String(builder.characters(), builder.length()));
     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1760:3: note: instantiated from:
   EXPECT_PRED_FORMAT2(::testing::internal:: \
   ^
/Users/aroben/dev/WebKit/OpenSource/Tools/TestWebKitAPI/Tests/WTF/StringBuilder.cpp:49:5: note: instantiated from:
     EXPECT_EQ(String(expected), String(builder.characters(), builder.length()));
     ^
/Users/aroben/dev/BuildProducts/Debug/gtest.framework/Headers/gtest.h:1760:23: note: instantiated from:
   EXPECT_PRED_FORMAT2(::testing::internal:: \
                       ^
/Users/aroben/dev/BuildProducts/Debug/JavaScriptCore.framework/PrivateHeaders/WTFString.h:283:5: note: candidate function [3]
     operator UnspecifiedBoolTypeA() const;
     ^
/Users/aroben/dev/BuildProducts/Debug/JavaScriptCore.framework/PrivateHeaders/WTFString.h:284:5: note: candidate function [3]
     operator UnspecifiedBoolTypeB() const;
     ^
/usr/include/c++/4.2.1/ostream:176:23: note: passing argument to parameter &apos;__n&apos; here [3]
       operator&lt;&lt;(bool __n)
                       ^
1 error generated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472320</commentid>
    <comment_count>27</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2011-09-23 10:41:36 -0700</bug_when>
    <thetext>I think the problem is that operator&lt;&lt; for WTF::String needs to be declared inside namespace WTF rather than outside of it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105890</attachid>
            <date>2011-08-31 20:27:41 -0700</date>
            <delta_ts>2011-08-31 20:30:06 -0700</delta_ts>
            <desc>patch (requires the patch to bug 67079)</desc>
            <filename>patch-67080</filename>
            <type>text/plain</type>
            <size>3893</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NDE3MCkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiAJCTM3REM2NzkxMTQwRDdENzYwMEFCQ0NEQiAv
KiBET01SYW5nZU9mU3RyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdl
T2ZTdHJpbmcuaHRtbCAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRl
c3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJl
c3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0Nzc3NzAwNjFG
MjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CisJCTgxQjUwMTkzMTQwRjIzMjMwMEQ5RUI1
OCAvKiBTdHJpbmdCdWlsZGVyQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxk
ZXJCYXNpYy5jcHAgKi87IH07CiAJCUJDMTMxODg1MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9y
bVV0aWxpdGllc01hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTMxODg0MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5t
bSAqLzsgfTsKIAkJQkMxMzFBOUIxMTcxMzE2OTAwQjY5NzI3IC8qIG1haW4ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEzMUE5QTExNzEzMTY5MDBC
Njk3MjcgLyogbWFpbi5tbSAqLzsgfTsKIAkJQkMxMzFBQTkxMTcxMzFGQzAwQjY5NzI3IC8qIFRl
c3RzQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzEzMUFBODExNzEzMUZDMDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNwcCAq
LzsgfTsKQEAgLTEzOCw2ICsxMzksNyBAQAogCQkzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyog
RE9NUmFuZ2VPZlN0cmluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRE9NUmFu
Z2VPZlN0cmluZy5odG1sOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEz
MTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
X0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE4MTMxNDc3
NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJp
bmdCdWlsZGVyQmFzaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
U3RyaW5nQnVpbGRlckJhc2ljLmNwcDsgcGF0aCA9IFdURi9TdHJpbmdCdWlsZGVyQmFzaWMuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUg
LyogVGVzdFdlYktpdEFQSSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZp
bGVUeXBlID0gImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAw
OyBwYXRoID0gVGVzdFdlYktpdEFQSTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsg
fTsKIAkJQkMxMzE4ODMxMTcxMTRBODAwQjY5NzI3IC8qIFBsYXRmb3JtVXRpbGl0aWVzLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFBsYXRmb3JtVXRpbGl0aWVzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTMxODg0MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0
Zm9ybVV0aWxpdGllc01hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMzUyLDYgKzM1NCw3IEBACiAJCUJDOTA5NjQ2MTI1NTYxODkwMDA4Mzc1NiAvKiBXVEYgKi8g
PSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTgxQjUwMTkyMTQw
RjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyQmFzaWMuY3BwICovLAogCQkJCUMwMTM2M0M3
MTNDMzk5NzMwMEVGMzk2NCAvKiBTdHJpbmdPcGVyYXRvcnMuY3BwICovLAogCQkJCUJDOTA5NjRC
MTI1NTYxQkYwMDA4Mzc1NiAvKiBWZWN0b3JCYXNpYy5jcHAgKi8sCiAJCQkJMzcyMDBCOTExM0Ex
NjIzMDAwN0E0RkFEIC8qIFZlY3RvclJldmVyc2UuY3BwICovLApAQCAtNDg2LDcgKzQ4OSw2IEBA
CiAJCQlpc2EgPSBQQlhQcm9qZWN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFERUI5
Mjc4MDg3MzNERDQwMDEwRTlDRCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFBy
b2plY3QgIlRlc3RXZWJLaXRBUEkiICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNv
ZGUgMy4xIjsKLQkJCWRldmVsb3BtZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRG
b3JFbmNvZGluZ3MgPSAxOwogCQkJa25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC01
NTgsNiArNTYwLDcgQEAKIAkJCQlDMDg1ODdGQzEzRkVDMzlCMDAxRUY0RTUgLyogSW5zdGFuY2VN
ZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwODU4ODAwMTNGRUMzQTYwMDFF
RjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdE
QzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAq
LywKKwkJCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nl
c3NpbmcgPSAwOwogCQl9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105891</attachid>
            <date>2011-08-31 20:30:06 -0700</date>
            <delta_ts>2011-09-06 23:58:57 -0700</delta_ts>
            <desc>patch (requires the patch to bug 67079)</desc>
            <filename>patch-67080</filename>
            <type>text/plain</type>
            <size>9386</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk0MjY5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMDgtMzEgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDogQWRkZWQuCisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDExLTA4
LTMxICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBEdW1w
UmVuZGVyVHJlZSB0byBXZWJLaXRQbGF0Zm9ybVN1cHBvcnQKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCShyZXZpc2lvbiA5NDE3MCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsy
Myw3IEBACiAJCTM3REM2NzkxMTQwRDdENzYwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCAqLzsgfTsK
IAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1
bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxl
LmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHRO
b2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5j
cHAgKi87IH07CisJCTgxQjUwMTkzMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyQmFz
aWMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFC
NTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXJCYXNpYy5jcHAgKi87IH07CiAJ
CUJDMTMxODg1MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTMxODg0MTE3MTE0
QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSAqLzsgfTsKIAkJQkMxMzFBOUIx
MTcxMzE2OTAwQjY5NzI3IC8qIG1haW4ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQzEzMUE5QTExNzEzMTY5MDBCNjk3MjcgLyogbWFpbi5tbSAqLzsg
fTsKIAkJQkMxMzFBQTkxMTcxMzFGQzAwQjY5NzI3IC8qIFRlc3RzQ29udHJvbGxlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEzMUFBODExNzEz
MUZDMDBCNjk3MjcgLyogVGVzdHNDb250cm9sbGVyLmNwcCAqLzsgfTsKQEAgLTEzOCw2ICsxMzks
NyBAQAogCQkzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1s
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRE9NUmFuZ2VPZlN0cmluZy5odG1sOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0
VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0QiAvKiBIaXRUZXN0
UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyQmFzaWMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU3RyaW5nQnVpbGRlckJhc2ljLmNw
cDsgcGF0aCA9IFdURi9TdHJpbmdCdWlsZGVyQmFzaWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdlYktpdEFQSSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gImNvbXBpbGVkLm1h
Y2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0gVGVzdFdlYktpdEFQ
STsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJQkMxMzE4ODMxMTcxMTRB
ODAwQjY5NzI3IC8qIFBsYXRmb3JtVXRpbGl0aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsYXRmb3JtVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMTMxODg0MTE3MTE0QjYwMEI2OTcyNyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsYXRmb3JtVXRpbGl0aWVz
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzUyLDYgKzM1NCw3IEBACiAJ
CUJDOTA5NjQ2MTI1NTYxODkwMDA4Mzc1NiAvKiBXVEYgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJp
bmdCdWlsZGVyQmFzaWMuY3BwICovLAogCQkJCUMwMTM2M0M3MTNDMzk5NzMwMEVGMzk2NCAvKiBT
dHJpbmdPcGVyYXRvcnMuY3BwICovLAogCQkJCUJDOTA5NjRCMTI1NTYxQkYwMDA4Mzc1NiAvKiBW
ZWN0b3JCYXNpYy5jcHAgKi8sCiAJCQkJMzcyMDBCOTExM0ExNjIzMDAwN0E0RkFEIC8qIFZlY3Rv
clJldmVyc2UuY3BwICovLApAQCAtNDg2LDcgKzQ4OSw2IEBACiAJCQlpc2EgPSBQQlhQcm9qZWN0
OwogCQkJYnVpbGRDb25maWd1cmF0aW9uTGlzdCA9IDFERUI5Mjc4MDg3MzNERDQwMDEwRTlDRCAv
KiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIlRlc3RXZWJLaXRBUEki
ICovOwogCQkJY29tcGF0aWJpbGl0eVZlcnNpb24gPSAiWGNvZGUgMy4xIjsKLQkJCWRldmVsb3Bt
ZW50UmVnaW9uID0gRW5nbGlzaDsKIAkJCWhhc1NjYW5uZWRGb3JFbmNvZGluZ3MgPSAxOwogCQkJ
a25vd25SZWdpb25zID0gKAogCQkJCUVuZ2xpc2gsCkBAIC01NTgsNiArNTYwLDcgQEAKIAkJCQlD
MDg1ODdGQzEzRkVDMzlCMDAxRUY0RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBT
b3VyY2VzICovLAogCQkJCUMwODU4ODAwMTNGRUMzQTYwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhv
ZFN3aXp6bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RC
IC8qIERPTVJhbmdlT2ZTdHJpbmcubW0gaW4gU291cmNlcyAqLywKKwkJCQk4MUI1MDE5MzE0MEYy
MzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
KTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpJbmRl
eDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVy
QmFzaWMuY3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nQnVpbGRlckJhc2ljLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzAgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVm
aW5lIEpTX0VYUE9SVERBVEEKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgV1RGOjpDU3RyaW5n
QnVmZmVyOworCisvLyBGb3IgRVhQRUNUX0VRKFN0cmluZywgU3RyaW5nKQorc3RkOjpvc3RyZWFt
JiBvcGVyYXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQorewor
ICAgIHJldHVybiBvcyA8PCBzdHJpbmcudXRmOCgpLmRhdGEoKTsKK30KKworbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkgeworCit2b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IGNoYXIqIGV4
cGVjdGVkLCBjb25zdCBTdHJpbmdCdWlsZGVyJiBidWlsZGVyKQoreworICAgIC8vIE5vdCB1c2lu
ZyBidWlsZGVyLnRvU3RyaW5nKCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KSBiZWNhdXNlIHRoZXkgYWxsCisgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxk
ZXIuCisgICAgRVhQRUNUX0VRKFN0cmluZyhleHBlY3RlZCksIFN0cmluZyhidWlsZGVyLmNoYXJh
Y3RlcnMoKSwgYnVpbGRlci5sZW5ndGgoKSkpOworfQorCit2b2lkIGV4cGVjdEVtcHR5KGNvbnN0
IFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxl
bmd0aCgpKTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7CisgICAgRVhQRUNU
X0VRKDAsIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxk
ZXJEZWZhdWx0Q29uc3RydWN0b3IpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGV4cGVjdEVtcHR5KGJ1aWxkZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlckFwcGVu
ZCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVu
ZCgiZWZnaCIsIDMpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVu
ZCgnIycpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQo
IiIsIDApOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5h
cHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZ
WiIsIGJ1aWxkZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlckNsZWFyKQoreworICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIp
OworICAgIGJ1aWxkZXIuY2xlYXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKwor
VEVTVChXVEYsIFN0cmluZ0J1aWxkZXJBcnJheSkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1RfRVEoJzAn
LCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3Rh
dGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8g
VGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0
PGNoYXI+KGJ1aWxkZXJbMF0pKTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFy
PihidWlsZGVyWzldKSk7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdCdWlsZGVyUmVzaXplKQorewor
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4
OSIpOworICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKKyAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVy
Lmxlbmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxk
ZXIpOworICAgIGJ1aWxkZXIucmVzaXplKDgpOworICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5s
ZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7
CisKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgYnVpbGRlci5yZXNpemUoNyk7CisgICAg
RVhQRUNUX0VRKDdVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIucmVzaXplKDApOworICAgIGV4cGVj
dEVtcHR5KGJ1aWxkZXIpOworfQorCit9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106548</attachid>
            <date>2011-09-06 23:58:57 -0700</date>
            <delta_ts>2011-09-07 00:05:02 -0700</delta_ts>
            <desc>updated patch</desc>
            <filename>patch-67080a</filename>
            <type>text/plain</type>
            <size>9767</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk0NjQyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMDktMDYgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDogQWRkZWQuCisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDExLTA5
LTA2ICBFcmljIEJvcmVuICA8Ym9yZW5ldEBnbWFpbC5jb20+CiAKICAgICAgICAgW0Nocm9taXVt
XSBNb2RpZnkgV2ViVG91Y2hFdmVudCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggV2ViQ29yZTo6VG91Y2hF
dmVudApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDk0NjQyKQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJD
Q0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9N
UmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyog
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3
MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCAqLzsgfTsKKwkJODFCNTAxOTMxNDBGMjMyMzAw
RDlFQjU4IC8qIFN0cmluZ0J1aWxkZXJCYXNpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5n
QnVpbGRlckJhc2ljLmNwcCAqLzsgfTsKIAkJOTM5QkE5MTcxNDEwMzQxMjAwMUEwMUJEIC8qIERl
dmljZVNjYWxlRmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFj
dG9yT25CYWNrLm1tICovOyB9OwogCQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tl
ZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGht
ZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwogCQlCQzEzMTg4NTExNzExNEI2MDBCNjk3MjcgLyog
UGxhdGZvcm1VdGlsaXRpZXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzEzMTg4NDExNzExNEI2MDBCNjk3MjcgLyogUGxhdGZvcm1VdGlsaXRp
ZXNNYWMubW0gKi87IH07CkBAIC0xNDIsNiArMTQzLDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAw
QUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IERPTVJhbmdlT2ZTdHJpbmcuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0
Tm9kZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZE
RkZBODEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVC
NTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFN0cmluZ0J1aWxkZXJCYXNpYy5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3
NjAwRDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IFRlc3RXZWJLaXRBUEk7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTkzOUJBOTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZh
Y3Rvck9uQmFjay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERl
dmljZVNjYWxlRmFjdG9yT25CYWNrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHA7IHBhdGggPSBXVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1OSw2ICszNjEsNyBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5
QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLywKKwkJCQk4MUI1MDE5MjE0
MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLywKIAkJCQlDMDEzNjND
NzEzQzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0
QjEyNTU2MUJGMDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNB
MTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTQ5NSw3ICs0OTgsNiBA
QAogCQkJaXNhID0gUEJYUHJvamVjdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSAxREVC
OTI3ODA4NzMzREQ0MDAxMEU5Q0QgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQ
cm9qZWN0ICJUZXN0V2ViS2l0QVBJIiAqLzsKIAkJCWNvbXBhdGliaWxpdHlWZXJzaW9uID0gIlhj
b2RlIDMuMSI7Ci0JCQlkZXZlbG9wbWVudFJlZ2lvbiA9IEVuZ2xpc2g7CiAJCQloYXNTY2FubmVk
Rm9yRW5jb2RpbmdzID0gMTsKIAkJCWtub3duUmVnaW9ucyA9ICgKIAkJCQlFbmdsaXNoLApAQCAt
NTY3LDYgKzU2OSw3IEBACiAJCQkJQzA4NTg3RkMxM0ZFQzM5QjAwMUVGNEU1IC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDg1ODgwMDEzRkVDM0E2MDAx
RUY0RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTM3
REM2NzhEMTQwRDdDNTAwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXJCYXNpYy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tl
ZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzOUJBOTE3MTQx
MDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTM3OTlBRDNBMTQxMjBBNDMwMDVFQjBDNiAvKiBTdHJpbmdCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0RnJvbVN0cmluZy5tbSBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyQmFzaWMuY3BwCShyZXZpc2lv
biAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2lj
LmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICog
ICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0
cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9k
dWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlv
ciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIEpTX0VYUE9SVERBVEEK
KworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgV1RGOjpDU3RyaW5nQnVmZmVyOworCisvLyBGb3Ig
RVhQRUNUX0VRKFN0cmluZywgU3RyaW5nKQorc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0ZDo6
b3N0cmVhbSYgb3MsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHJldHVybiBvcyA8PCBz
dHJpbmcudXRmOCgpLmRhdGEoKTsKK30KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2
b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IGNoYXIqIGV4cGVjdGVkLCBjb25zdCBTdHJp
bmdCdWlsZGVyJiBidWlsZGVyKQoreworICAgIC8vIE5vdCB1c2luZyBidWlsZGVyLnRvU3RyaW5n
KCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNhdXNlIHRoZXkgYWxs
CisgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxkZXIuCisgICAgRVhQRUNUX0VR
KFN0cmluZyhleHBlY3RlZCksIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMoKSwgYnVpbGRlci5s
ZW5ndGgoKSkpOworfQorCit2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBFWFBF
Q1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIuY2hh
cmFjdGVycygpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxkZXJEZWZhdWx0Q29uc3RydWN0
b3IpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGV4cGVjdEVtcHR5KGJ1aWxk
ZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlckFwcGVuZCkKK3sKKyAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5Iikp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7CisgICAg
YnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZnaCIsIDMpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOworICAg
IGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4
OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycpOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKworICAgIGJ1
aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIFN0cmlu
Z0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOworICAgIGV4cGVj
dEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkpOworICAg
IGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEuY2hh
cmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQo
IjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOworfQor
CitURVNUKFdURiwgU3RyaW5nQnVpbGRlckNsZWFyKQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVp
bGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1aWxkZXIuY2xl
YXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1
aWxkZXJBcnJheSkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5h
cHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFy
PihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVp
bGRlcls5XSkpOworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgorICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbMF0p
KTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzldKSk7Cit9
CisKK1RFU1QoV1RGLCBTdHJpbmdCdWlsZGVyUmVzaXplKQoreworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1aWxkZXIu
cmVzaXplKDEwKTsKKyAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBl
eHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIu
cmVzaXplKDgpOworICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRv
U3RyaW5nKCk7CisgICAgYnVpbGRlci5yZXNpemUoNyk7CisgICAgRVhQRUNUX0VRKDdVLCBidWls
ZGVyLmxlbmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxk
ZXIpOworICAgIGJ1aWxkZXIucmVzaXplKDApOworICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOwor
fQorCit9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106549</attachid>
            <date>2011-09-07 00:05:02 -0700</date>
            <delta_ts>2011-09-13 23:19:01 -0700</delta_ts>
            <desc>fixed style problem</desc>
            <filename>patch-67080b</filename>
            <type>text/plain</type>
            <size>9468</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk0NjQyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMDktMDcgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDogQWRkZWQuCisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDExLTA5
LTA2ICBFcmljIEJvcmVuICA8Ym9yZW5ldEBnbWFpbC5jb20+CiAKICAgICAgICAgW0Nocm9taXVt
XSBNb2RpZnkgV2ViVG91Y2hFdmVudCBzdHJ1Y3R1cmUgdG8gbWF0Y2ggV2ViQ29yZTo6VG91Y2hF
dmVudApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDk0NjQyKQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDYgKzI0LDcgQEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJD
Q0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9N
UmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyog
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRU
ZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3
MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCAqLzsgfTsKKwkJODFCNTAxOTMxNDBGMjMyMzAw
RDlFQjU4IC8qIFN0cmluZ0J1aWxkZXJCYXNpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5n
QnVpbGRlckJhc2ljLmNwcCAqLzsgfTsKIAkJOTM5QkE5MTcxNDEwMzQxMjAwMUEwMUJEIC8qIERl
dmljZVNjYWxlRmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFj
dG9yT25CYWNrLm1tICovOyB9OwogCQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tl
ZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGht
ZXRpY09wZXJhdGlvbnMuY3BwICovOyB9OwogCQlCQzEzMTg4NTExNzExNEI2MDBCNjk3MjcgLyog
UGxhdGZvcm1VdGlsaXRpZXNNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBCQzEzMTg4NDExNzExNEI2MDBCNjk3MjcgLyogUGxhdGZvcm1VdGlsaXRp
ZXNNYWMubW0gKi87IH07CkBAIC0xNDIsNiArMTQzLDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAw
QUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0
aCA9IERPTVJhbmdlT2ZTdHJpbmcuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRs
ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0
Tm9kZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZE
RkZBODEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVC
NTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFN0cmluZ0J1aWxkZXJCYXNpYy5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3
NjAwRDk2QjVFIC8qIFRlc3RXZWJLaXRBUEkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJ
bkluZGV4ID0gMDsgcGF0aCA9IFRlc3RXZWJLaXRBUEk7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9E
VUNUU19ESVI7IH07CiAJCTkzOUJBOTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZh
Y3Rvck9uQmFjay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERl
dmljZVNjYWxlRmFjdG9yT25CYWNrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
N0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IENoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHA7IHBhdGggPSBXVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTM1OSw2ICszNjEsNyBAQAogCQkJaXNh
ID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5
QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLywKKwkJCQk4MUI1MDE5MjE0
MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLywKIAkJCQlDMDEzNjND
NzEzQzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0
QjEyNTU2MUJGMDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNB
MTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU2Nyw2ICs1NzAsNyBA
QAogCQkJCUMwODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVy
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIEluc3Rh
bmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3QzUw
MDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgxQjUw
MTkzMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyQmFzaWMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGljT3Bl
cmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzlCQTkxNzE0MTAzNDEyMDAxQTAxQkQg
LyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gaW4gU291cmNlcyAqLywKIAkJCQkzNzk5QUQz
QTE0MTIwQTQzMDA1RUIwQzYgLyogU3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdEZyb21TdHJp
bmcubW0gaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RG
L1N0cmluZ0J1aWxkZXJCYXNpYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXJCYXNpYy5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTMwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2RlZmluZSBKU19FWFBPUlREQVRBCisKKyNpbmNsdWRlIDx3
dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK3VzaW5nIFdURjo6Q1N0cmluZ0J1ZmZlcjsKKworLy8gRm9yIEVYUEVDVF9FUShTdHJp
bmcsIFN0cmluZykKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1cm4gb3MgPDwgc3RyaW5nLnV0ZjgoKS5k
YXRhKCk7Cit9CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBleHBlY3RCdWls
ZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBlY3RlZCwgY29uc3QgU3RyaW5nQnVpbGRlciYgYnVp
bGRlcikKK3sKKyAgICAvLyBOb3QgdXNpbmcgYnVpbGRlci50b1N0cmluZygpIG9yIGJ1aWxkZXIu
dG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVzZSB0aGV5IGFsbAorICAgIC8vIGNoYW5n
ZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgorICAgIEVYUEVDVF9FUShTdHJpbmcoZXhwZWN0
ZWQpLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKK30K
Kwordm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWlsZGVyJiBidWlsZGVyKQoreworICAg
IEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRl
ci5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUSgwLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7Cit9
CisKK1RFU1QoV1RGLCBTdHJpbmdCdWlsZGVyRGVmYXVsdENvbnN0cnVjdG9yKQoreworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworVEVT
VChXVEYsIFN0cmluZ0J1aWxkZXJBcHBlbmQpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5k
KCJhYmNkIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwgYnVp
bGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImVmZ2giLCAzKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVu
ZCgiIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwgYnVp
bGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRvU3RyaW5n
KCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxk
ZXIxOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgYnVpbGRlcjEuYXBwZW5kKGJ1
aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5hcHBl
bmQoIlhZWiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnMoKSwgYnVp
bGRlcjEubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJj
ZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKK30KKworVEVTVChXVEYsIFN0
cmluZ0J1aWxkZXJDbGVhcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVp
bGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBidWlsZGVyLmNsZWFyKCk7CisgICAgZXhw
ZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoV1RGLCBTdHJpbmdCdWlsZGVyQXJyYXkpCit7
CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2
Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkp
OworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAg
ICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBF
WFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNU
X0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlcls5XSkpOworfQorCitURVNUKFdURiwg
U3RyaW5nQnVpbGRlclJlc2l6ZSkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
YnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgxMCk7Cisg
ICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg4KTsKKyAg
ICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250
ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworCisgICAgYnVpbGRlci50b1N0cmluZygpOworICAg
IGJ1aWxkZXIucmVzaXplKDcpOworICAgIEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7
CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBidWls
ZGVyLnJlc2l6ZSgwKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworfSAvLyBuYW1l
c3BhY2UK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107291</attachid>
            <date>2011-09-13 23:19:01 -0700</date>
            <delta_ts>2011-09-13 23:20:32 -0700</delta_ts>
            <desc>patch (added test for toString, and changed windows build file)</desc>
            <filename>patch-67080c</filename>
            <type>text/plain</type>
            <size>6776</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1MDc1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMTEtMDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ckJhc2ljLmNwcDogQWRkZWQuCisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6
OmV4cGVjdEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDExLTA5
LTEzICBYaWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
QWRkIG15c2VsZiBhcyBhIGNvbnRyaWJ1dG9yLiBObyByZXZpZXcgbmVlZGVkLgpJbmRleDogVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyQmFzaWMu
Y3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5n
QnVpbGRlckJhc2ljLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIEpT
X0VYUE9SVERBVEEKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgV1RGOjpDU3RyaW5nQnVmZmVy
OworCisvLyBGb3IgRVhQRUNUX0VRKFN0cmluZywgU3RyaW5nKQorc3RkOjpvc3RyZWFtJiBvcGVy
YXRvcjw8KHN0ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHJl
dHVybiBvcyA8PCBzdHJpbmcudXRmOCgpLmRhdGEoKTsKK30KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworCit2b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IGNoYXIqIGV4cGVjdGVk
LCBjb25zdCBTdHJpbmdCdWlsZGVyJiBidWlsZGVyKQoreworICAgIC8vIE5vdCB1c2luZyBidWls
ZGVyLnRvU3RyaW5nKCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNh
dXNlIHRoZXkgYWxsCisgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxkZXIuCisg
ICAgRVhQRUNUX0VRKFN0cmluZyhleHBlY3RlZCksIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMo
KSwgYnVpbGRlci5sZW5ndGgoKSkpOworfQorCit2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmlu
Z0J1aWxkZXImIGJ1aWxkZXIpCit7CisgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgp
KTsKKyAgICBFWFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKDAs
IGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxkZXJEZWZh
dWx0Q29uc3RydWN0b3IpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGV4cGVj
dEVtcHR5KGJ1aWxkZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlckFwcGVuZCkKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVp
bGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZn
aCIsIDMpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1
aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygp
LgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDAp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVu
Z3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQo
YnVpbGRlcjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1
aWxkZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlclRvU3RyaW5nKQoreworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwor
ICAgIFN0cmluZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgp
LCBidWlsZGVyLnRvU3RyaW5nKCkuaW1wbCgpKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmMi
KTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjIiksIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisg
ICAgYnVpbGRlci5wcmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiYyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGJ1aWxkZXIuYXBwZW5k
KCJkZWYiKTsKKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmIiksIHN0cmluZzEpOworICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIHN0cmluZzEuYXBwZW5k
KCJ4eXoiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmIiksIGJ1aWxk
ZXIudG9TdHJpbmcoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZnh5
eiIpLCBzdHJpbmcxKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxkZXJDbGVhcikKK3sKKyAg
ICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODki
KTsKKyAgICBidWlsZGVyLmNsZWFyKCk7CisgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisK
K1RFU1QoV1RGLCBTdHJpbmdCdWlsZGVyQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcw
Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0
YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8v
IFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2Fz
dDxjaGFyPihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hh
cj4oYnVpbGRlcls5XSkpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlclJlc2l6ZSkKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3
ODkiKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CisgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRl
ci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWls
ZGVyKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg4KTsKKyAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIp
OworCisgICAgYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIucmVzaXplKDcpOworICAg
IEVYUEVDVF9FUSg3VSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTYiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgwKTsKKyAgICBleHBl
Y3RFbXB0eShidWlsZGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCShyZXZpc2lvbiA5NTA3NSkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC02MDQsNiArNjA0LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUK
KwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcU3RyaW5nQnVpbGRlckJhc2ljLmNwcCIK
KwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRl
c3RzXFdURlxTdHJpbmdPcGVyYXRvcnMuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107292</attachid>
            <date>2011-09-13 23:25:38 -0700</date>
            <delta_ts>2011-09-17 08:06:43 -0700</delta_ts>
            <desc>patch (added test for toString, and changed windows build file)</desc>
            <filename>patch-67080c</filename>
            <type>text/plain</type>
            <size>10814</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1MDc1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTYgQEAKKzIwMTEtMDktMTMgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3By
b2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2lj
LmNwcDogQWRkZWQuCisgICAgICAgIChvcGVyYXRvcjw8KToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OmV4cGVjdEJ1aWxkZXJDb250ZW50KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVj
dEVtcHR5KToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDExLTA5LTEzICBY
aWFuemh1IFdhbmcgIDx3YW5neGlhbnpodUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIG15
c2VsZiBhcyBhIGNvbnRyaWJ1dG9yLiBObyByZXZpZXcgbmVlZGVkLgpJbmRleDogVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oJKHJldmlzaW9uIDk1MDc1KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5
LDYgKzI5LDcgQEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJp
bmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICov
OyB9OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5k
bGVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9C
dW5kbGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJl
c3VsdE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFu
ZGxlLmNwcCAqLzsgfTsKKwkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxk
ZXJCYXNpYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLzsg
fTsKIAkJOTM5QkE5MTcxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNr
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QkE5
MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tICovOyB9Owog
CQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25z
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3QTk2
NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICov
OyB9OwogCQlCQzEzMTg4NTExNzExNEI2MDBCNjk3MjcgLyogUGxhdGZvcm1VdGlsaXRpZXNNYWMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzEzMTg4
NDExNzExNEI2MDBCNjk3MjcgLyogUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0gKi87IH07CkBAIC0x
NTMsNiArMTU0LDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZT
dHJpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERPTVJhbmdlT2ZTdHJpbmcu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFG
MjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBODEzMTQ3Nzc3MDA2MUYyNEIg
LyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJh
c2ljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFN0cmluZ0J1aWxk
ZXJCYXNpYy5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOERENzZGQTEwNDg2QUE3NjAwRDk2QjVFIC8qIFRlc3RXZWJL
aXRBUEkgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJj
b21waWxlZC5tYWNoLW8uZXhlY3V0YWJsZSI7IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IFRl
c3RXZWJLaXRBUEk7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTkzOUJB
OTE2MTQxMDM0MTIwMDFBMDFCRCAvKiBEZXZpY2VTY2FsZUZhY3Rvck9uQmFjay5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERldmljZVNjYWxlRmFjdG9yT25CYWNr
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5
QjQgLyogQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IENoZWNrZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHA7IHBhdGgg
PSBXVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTM3NCw2ICszNzYsNyBAQAogCQkJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0Yw
QyAvKiBNZXRhQWxsb2NhdG9yLmNwcCAqLywKIAkJCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMg
LyogUmVkQmxhY2tUcmVlLmNwcCAqLywKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyog
Q2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCAqLywKKwkJCQk4MUI1MDE5MjE0MEYyMzIz
MDBEOUVCNTggLyogU3RyaW5nQnVpbGRlckJhc2ljLmNwcCAqLywKIAkJCQlDMDEzNjNDNzEzQzM5
OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0QjEyNTU2
MUJGMDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNBMTYyMzAw
MDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU4Myw2ICs1ODYsNyBAQAogCQkJ
CUMwODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIEluc3RhbmNlTWV0
aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3QzUwMDBBQkND
REIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgxQjUwMTkzMTQw
RjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyQmFzaWMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNkM0Q0MxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJsYWNrVHJlZS5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwRkM2QzRDRjE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBN0E5NjZEQjE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFy
aXRobWV0aWNPcGVyYXRpb25zLmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJhc2ljLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdCdWlsZGVyQmFzaWMuY3BwCShyZXZp
c2lvbiAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlckJh
c2ljLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgor
ICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9m
IGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBw
cm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBw
cmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjZGVmaW5lIEpTX0VYUE9SVERB
VEEKKworI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgV1RGOjpDU3RyaW5nQnVmZmVyOworCisvLyBG
b3IgRVhQRUNUX0VRKFN0cmluZywgU3RyaW5nKQorc3RkOjpvc3RyZWFtJiBvcGVyYXRvcjw8KHN0
ZDo6b3N0cmVhbSYgb3MsIGNvbnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIHJldHVybiBvcyA8
PCBzdHJpbmcudXRmOCgpLmRhdGEoKTsKK30KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewor
Cit2b2lkIGV4cGVjdEJ1aWxkZXJDb250ZW50KGNvbnN0IGNoYXIqIGV4cGVjdGVkLCBjb25zdCBT
dHJpbmdCdWlsZGVyJiBidWlsZGVyKQoreworICAgIC8vIE5vdCB1c2luZyBidWlsZGVyLnRvU3Ry
aW5nKCkgb3IgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBiZWNhdXNlIHRoZXkg
YWxsCisgICAgLy8gY2hhbmdlIGludGVybmFsIHN0YXRlIG9mIGJ1aWxkZXIuCisgICAgRVhQRUNU
X0VRKFN0cmluZyhleHBlY3RlZCksIFN0cmluZyhidWlsZGVyLmNoYXJhY3RlcnMoKSwgYnVpbGRl
ci5sZW5ndGgoKSkpOworfQorCit2b2lkIGV4cGVjdEVtcHR5KGNvbnN0IFN0cmluZ0J1aWxkZXIm
IGJ1aWxkZXIpCit7CisgICAgRVhQRUNUX0VRKDBVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBF
WFBFQ1RfVFJVRShidWlsZGVyLmlzRW1wdHkoKSk7CisgICAgRVhQRUNUX0VRKDAsIGJ1aWxkZXIu
Y2hhcmFjdGVycygpKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxkZXJEZWZhdWx0Q29uc3Ry
dWN0b3IpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGV4cGVjdEVtcHR5KGJ1
aWxkZXIpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlckFwcGVuZCkKK3sKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2Nzg5
IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7Cisg
ICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZnaCIsIDMpOwor
ICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIpOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1
Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycpOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKworICAg
IGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOworICAgIGV4
cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAgICBi
dWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkpOwor
ICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRlcjEu
Y2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRl
bnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIpOwor
fQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlclRvU3RyaW5nKQoreworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIFN0cmlu
ZyBzdHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVy
LnRvU3RyaW5nKCkuaW1wbCgpKTsKKworICAgIGJ1aWxkZXIuYXBwZW5kKCJhYmMiKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjIiksIGJ1aWxkZXIudG9TdHJpbmcoKSk7Cisg
ICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgYnVpbGRl
ci5wcmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiYyIpLCBidWlsZGVyLnRvU3RyaW5nKCkpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJkZWYiKTsK
KyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmIiksIHN0cmluZzEpOworICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIHN0cmluZzEuYXBwZW5kKCJ4eXoiKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmIiksIGJ1aWxkZXIudG9TdHJp
bmcoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZnh5eiIpLCBzdHJp
bmcxKTsKK30KKworVEVTVChXVEYsIFN0cmluZ0J1aWxkZXJDbGVhcikKK3sKKyAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBi
dWlsZGVyLmNsZWFyKCk7CisgICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoV1RG
LCBTdHJpbmdCdWlsZGVyQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGlj
X2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0
PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihi
dWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRl
cls5XSkpOworfQorCitURVNUKFdURiwgU3RyaW5nQnVpbGRlclJlc2l6ZSkKK3sKKyAgICBTdHJp
bmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAg
ICBidWlsZGVyLnJlc2l6ZSgxMCk7CisgICAgRVhQRUNUX0VRKDEwVSwgYnVpbGRlci5sZW5ndGgo
KSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODkiLCBidWlsZGVyKTsKKyAg
ICBidWlsZGVyLnJlc2l6ZSg4KTsKKyAgICBFWFBFQ1RfRVEoOFUsIGJ1aWxkZXIubGVuZ3RoKCkp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2NyIsIGJ1aWxkZXIpOworCisgICAg
YnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIucmVzaXplKDcpOworICAgIEVYUEVDVF9F
USg3VSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0
NTYiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgwKTsKKyAgICBleHBlY3RFbXB0eShi
dWlsZGVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
d2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCShyZXZpc2lvbiA5NTA3NSkKKysrIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC02
MDQsNiArNjA0LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcU3RyaW5nQnVpbGRlckJhc2ljLmNwcCIKKwkJCQkJPgor
CQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdURlxT
dHJpbmdPcGVyYXRvcnMuY3BwIgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>
<flag name="review"
          id="103953"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="103954"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107769</attachid>
            <date>2011-09-17 08:06:43 -0700</date>
            <delta_ts>2011-09-18 23:17:21 -0700</delta_ts>
            <desc>patch that can apply on ToT</desc>
            <filename>67080a</filename>
            <type>text/plain</type>
            <size>13774</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1MzgwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTEtMDktMTcgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3BlcmF0b3I8PCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAxMS0wOS0xNiAgRWxsaW90IFBvZ2VyICA8ZXBvZ2VyQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgYWRkIG5vbi1DRyBXZWJraXQtTWFjIGJ1aWxkcyB0byBmbGFraW5lc3MgZGFzaGJvYXJk
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkocmV2aXNpb24gOTUz
ODApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQAogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICdUZXN0
V2ViS2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2VkQXJpdGht
ZXRpY09wZXJhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwJywKICAg
ICAgICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAgICAgICAgICdUZXN0
cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAnLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDk1MzgwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAkJ
MzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RDNjc4RjE0
MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0QkZERkZB
NzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMx
NDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9
OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZG
QTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCAqLzsgfTsK
KwkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAxOTIxNDBGMjMyMzAw
RDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk1MjBCQ0Y0QzE0MUVCMDlFMDA5
MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hp
dmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFy
Y2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICovOyB9OwogCQk5MzlC
QTkxNzE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCQTkxNjE0MTAzNDEy
MDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi87IH07CkBAIC0xNTUsNiAr
MTU2LDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERPTVJhbmdlT2ZTdHJpbmcuaHRtbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBODEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0
VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdCdWlsZGVyLmNwcDsgcGF0
aCA9IFdURi9TdHJpbmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmVfQnVuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdl
YkFyY2hpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXJj
aGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4NkFBNzYw
MEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5J
bmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwpAQCAtMzgwLDYgKzM4Miw3IEBACiAJCQkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3
RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0Yw
QyAvKiBSZWRCbGFja1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAv
KiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAorCQkJCTgxQjUwMTkyMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQlDMDEzNjNDNzEzQzM5OTcz
MDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0QjEyNTU2MUJG
MDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNBMTYyMzAwMDdB
NEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU4OSw2ICs1OTIsNyBAQAogCQkJCUMw
ODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3QzUwMDBBQkNDREIg
LyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgxQjUwMTkzMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzZD
NENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNkM0Q0YxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworLy8g
Rm9yIEVYUEVDVF9FUShTdHJpbmcsIFN0cmluZykKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChz
dGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1cm4gb3Mg
PDwgc3RyaW5nLnV0ZjgoKS5kYXRhKCk7Cit9CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
Kwordm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBlY3RlZCwgY29uc3Qg
U3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICAvLyBOb3QgdXNpbmcgYnVpbGRlci50b1N0
cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVzZSB0aGV5
IGFsbAorICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgorICAgIEVYUEVD
VF9FUShTdHJpbmcoZXhwZWN0ZWQpLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpKTsKK30KKwordm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWlsZGVy
JiBidWlsZGVyKQoreworICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAg
RVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUSgwLCBidWlsZGVy
LmNoYXJhY3RlcnMoKSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZXhwZWN0RW1wdHko
YnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKK3sKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7
CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZnaCIsIDMp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIp
OworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKwor
ICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAg
ICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkp
OworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRl
cjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIp
OworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKK3sKKyAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVp
bGRlci50b1N0cmluZygpLmltcGwoKSk7CisKKyAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCku
CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CisgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgorICAg
IGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwg
c3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4K
KyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKworICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIucmVzaXpl
KDEwKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworfQor
CitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCit7Cisg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEFT
U0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
LmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hh
cmFjdGVycygpKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Cisg
ICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hh
bmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBp
cyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOworICAgIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNTRVJUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisKKyAgICAvLyBD
aGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgorICAg
IFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAg
ICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7
CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgorICAgIHN0
cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9F
UShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgYnVpbGRl
ci5yZXNpemUoMTApOworICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQoreworICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1
aWxkZXIuY2xlYXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGlj
X2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0
PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihi
dWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRl
cls5XSkpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCit7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Cisg
ICAgYnVpbGRlci5yZXNpemUoMTApOworICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3Ro
KCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7Cisg
ICAgYnVpbGRlci5yZXNpemUoOCk7CisgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgp
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKworICAg
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg3KTsKKyAgICBFWFBFQ1Rf
RVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5yZXNpemUoMCk7CisgICAgZXhwZWN0RW1wdHko
YnVpbGRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkocmV2aXNpb24gOTUzODApCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAt
NjA4LDYgKzYwOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJl
bGF0aXZlUGF0aD0iLi5cVGVzdHNcV1RGXFN0cmluZ0J1aWxkZXIuY3BwIgorCQkJCQk+CisJCQkJ
PC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV1RGXFN0cmlu
Z09wZXJhdG9ycy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>
<flag name="commit-queue"
          id="104546"
          type_id="3"
          status="-"
          setter="wangxianzhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107806</attachid>
            <date>2011-09-18 23:17:21 -0700</date>
            <delta_ts>2011-09-19 01:44:48 -0700</delta_ts>
            <desc>patch tentatively fixes windows build break</desc>
            <filename>67080c</filename>
            <type>text/plain</type>
            <size>16294</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTU0MDEpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTEtMDktMTggIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVyCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogSmF2YVNjcmlwdENvcmUu
dmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZjoKKwogMjAxMS0wOS0xOCAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZWQgUHJvZmls
ZXJTZXJ2ZXIuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZgkocmV2aXNpb24gOTU0MDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRl
Zgkod29ya2luZyBjb3B5KQpAQCAtMTcsNiArMTcsNyBAQCBFWFBPUlRTCiAgICAgPz8wUmVmQ291
bnRlZExlYWtDb3VudGVyQFdURkBAUUFFQFBCREBaCiAgICAgPz8wUmVnRXhwT2JqZWN0QEpTQ0BA
SUFFQFBBVkpTR2xvYmFsT2JqZWN0QDFAUEFWU3RydWN0dXJlQDFAUEFWUmVnRXhwQDFAQFoKICAg
ICA/PzBTSEExQFdURkBAUUFFQFhaCisgICAgPz8wU3RyaW5nQFdURkBAUUFFQFBCX1dJQFoKICAg
ICA/PzBTdHJpbmdPYmplY3RASlNDQEBJQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWU3RydWN0dXJl
QDFAQFoKICAgICA/PzBTdHJ1Y3R1cmVASlNDQEBBQUVAQUFWSlNHbG9iYWxEYXRhQDFAUEFWSlNH
bG9iYWxPYmplY3RAMUBWSlNWYWx1ZUAxQEFCVlR5cGVJbmZvQDFAUEJVQ2xhc3NJbmZvQDFAQFoK
ICAgICA/PzBUaHJlYWRDb25kaXRpb25AV1RGQEBRQUVAWFoKQEAgLTYyLDYgKzYzLDcgQEAgRVhQ
T1JUUwogICAgID9hbGxvY2F0ZUBIZWFwQEpTQ0BAUUFFUEFYQUFVU2l6ZUNsYXNzQE5ld1NwYWNl
QDJAQFoKICAgICA/YWxsb2NhdGVQcm9wZXJ0eVN0b3JhZ2VASlNPYmplY3RASlNDQEBRQUVYQUFW
SlNHbG9iYWxEYXRhQDJASUlAWgogICAgID9hbGxvY2F0ZVNsb3dDYXNlQEhlYXBASlNDQEBBQUVQ
QVhBQVVTaXplQ2xhc3NATmV3U3BhY2VAMkBAWgorICAgID9hcHBlbmRAU3RyaW5nQFdURkBAUUFF
WEFCVjEyQEBaCiAgICAgP2FwcGVuZEBTdHJpbmdCdWlsZGVyQFdURkBAUUFFWFBCRElAWgogICAg
ID9hcHBlbmRAU3RyaW5nQnVpbGRlckBXVEZAQFFBRVhQQl9XSUBaCiAgICAgP2FzY2lpQFVTdHJp
bmdASlNDQEBRQkU/QVZDU3RyaW5nQFdURkBAWFoKQEAgLTE2MCw2ICsxNjIsNyBAQCBFWFBPUlRT
CiAgICAgP2VtcHR5QFN0cmluZ0ltcGxAV1RGQEBTQVBBVjEyQFhaCiAgICAgP2VudW1lcmFibGVA
UHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUJFX05YWgogICAgID9lcXVhbEBJZGVudGlmaWVyQEpT
Q0BAU0FfTlBCVlN0cmluZ0ltcGxAV1RGQEBQQkRAWgorICAgID9lcXVhbEBXVEZAQFlBX05QQlZT
dHJpbmdJbXBsQDFAMEBaCiAgICAgP2VxdWFsVVRGMTZXaXRoVVRGOEBVbmljb2RlQFdURkBAWUFf
TlBCX1cwUEJEMUBaCiAgICAgP2V2YWx1YXRlQERlYnVnZ2VyQ2FsbEZyYW1lQEpTQ0BAUUJFP0FW
SlNWYWx1ZUAyQEFCVlVTdHJpbmdAMkBBQVYzMkBAWgogICAgID9leGNsdWRlQFByb2ZpbGVASlND
QEBRQUVYUEJWUHJvZmlsZU5vZGVAMkBAWgpAQCAtMzc5LDYgKzM4Miw3IEBAIEVYUE9SVFMKICAg
ICA/dW5sb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXhAV1RGQEBZQVhYWgogICAg
ID91bnByb3RlY3RASGVhcEBKU0NAQFFBRV9OVkpTVmFsdWVAMkBAWgogICAgID91bndyYXBwZWRP
YmplY3RASlNPYmplY3RASlNDQEBVQUVQQVYxMkBYWgorICAgID91dGY4QFN0cmluZ0BXVEZAQFFC
RT9BVkNTdHJpbmdAMkBfTkBaCiAgICAgP3V0ZjhAVVN0cmluZ0BKU0NAQFFCRT9BVkNTdHJpbmdA
V1RGQEBfTkBaCiAgICAgP3ZhbGlkYXRlVmFsdWVATWFya1N0YWNrQEpTQ0BAS0FYVkpTVmFsdWVA
MkBAWgogICAgID92aXNpdENoaWxkcmVuQEpTR2xvYmFsT2JqZWN0QEpTQ0BAVUFFWEFBVlNsb3RW
aXNpdG9yQDJAQFoKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDk1NDAwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDktMTggIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFu
emh1QGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBT
dHJpbmdCdWlsZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD02NzA4MAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3Bl
cmF0b3I8PCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAxMS0wOS0xNiAgRWxsaW90IFBvZ2VyICA8ZXBvZ2VyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgYWRkIG5vbi1DRyBXZWJraXQtTWFjIGJ1aWxkcyB0byBmbGFraW5l
c3MgZGFzaGJvYXJkCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQko
cmV2aXNpb24gOTU0MDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogICAgICd2YXJpYWJsZXMnOiB7CiAg
ICAgICAgICdUZXN0V2ViS2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9D
aGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdUZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAg
ICAgICAgICdUZXN0cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAnLApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJKHJldmlzaW9uIDk1NDAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYg
KzI5LDcgQEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAzN0RDNjc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9
OwogCQk0QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVf
QnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5k
bGUuY3BwICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3Vs
dE5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxl
LmNwcCAqLzsgfTsKKwkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAx
OTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk1MjBCQ0Y0
QzE0MUVCMDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4
IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3
RUE4IC8qIFdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICov
OyB9OwogCQk5MzlCQTkxNzE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJh
Y2subW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlC
QTkxNjE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi87IH07
CkBAIC0xNTUsNiArMTU2LDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJh
bmdlT2ZTdHJpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERPTVJhbmdlT2ZT
dHJpbmcuaHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2
QzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5k
bGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBODEzMTQ3Nzc3MDA2
MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVp
bGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdCdWls
ZGVyLmNwcDsgcGF0aCA9IFdURi9TdHJpbmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxl
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmVfQnVu
ZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIwQkNGNEIxNDFFQjA5RTAw
OTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gV2ViQXJjaGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2
RkExMDQ4NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUi
OyBpbmNsdWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0g
QlVJTFRfUFJPRFVDVFNfRElSOyB9OwpAQCAtMzgwLDYgKzM4Miw3IEBACiAJCQkJMEZDNkM0Q0Ux
NDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQx
MDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUND
QzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAorCQkJCTgx
QjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQlDMDEz
NjNDNzEzQzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkw
OTY0QjEyNTU2MUJGMDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkx
MTNBMTYyMzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU4OSw2ICs1OTIs
NyBAQAogCQkJCUMwODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6
bGVyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIElu
c3RhbmNlTWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3
QzUwMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgx
QjUwMTkzMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTBGQzZDNENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJMEZDNkM0Q0YxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNr
ZWRBcml0aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAw
KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUK
KyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5l
aXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNv
bnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVy
aXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRl
biBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVE
IFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJp
bmcuaD4KKworLy8gRm9yIEVYUEVDVF9FUShTdHJpbmcsIFN0cmluZykKK3N0ZDo6b3N0cmVhbSYg
b3BlcmF0b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAg
ICByZXR1cm4gb3MgPDwgc3RyaW5nLnV0ZjgoKS5kYXRhKCk7Cit9CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKwordm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBl
Y3RlZCwgY29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICAvLyBOb3QgdXNpbmcg
YnVpbGRlci50b1N0cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkg
YmVjYXVzZSB0aGV5IGFsbAorICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVy
LgorICAgIEVYUEVDVF9FUShTdHJpbmcoZXhwZWN0ZWQpLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0
ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkpKTsKK30KKwordm9pZCBleHBlY3RFbXB0eShjb25zdCBT
dHJpbmdCdWlsZGVyJiBidWlsZGVyKQoreworICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5n
dGgoKSk7CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9F
USgwLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3Qs
IERlZmF1bHRDb25zdHJ1Y3RvcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVu
ZCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3Ry
aW5nKCIwMTIzNDU2Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVu
ZCgiZWZnaCIsIDMpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVm
ZyIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVy
Q29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVu
ZCgnIycpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0
cmluZygpLgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQo
IiIsIDApOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBi
dWlsZGVyKTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5h
cHBlbmQoYnVpbGRlcjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhw
ZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZ
WiIsIGJ1aWxkZXIpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3
ODkiKTsKKyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5n
LmltcGwoKSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CisKKyAgICAvLyBDaGFuZ2luZyB0
aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9m
IHRvU3RyaW5nKCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3
eHl6Iik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisg
ICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9y
aWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBj
aGFuZ2VkLgorICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgc3RyaW5nID0g
YnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNk
ZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJB
QkMiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXoiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1
bHQgb2YgdG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3Ry
aW5nQnVpbGRlci4KKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWls
ZGVyLnRvU3RyaW5nKCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKworICAgIC8vIFJlc2l6aW5n
IHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQg
b2YgdG9TdHJpbmcoKS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1
aWxkZXIucmVzaXplKDEwKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJU
X0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0
cmluZzEpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5k
KCIwMTIzNDU2Nzg5Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJp
bmcpOworICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCks
IGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVz
ZXJ2ZUNhcGFjaXR5KCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0
dXZ3eHl6Iik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwor
CisgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhl
IG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRo
ZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgy
MDApOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7Cisg
ICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiKSwgc3RyaW5nKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VR
KFN0cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7
CisKKyAgICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2Vy
dmVDYXBhY2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdC
dWlsZGVyLgorICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2Fw
YWNpdHkoKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hh
cmFjdGVycygpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamts
bW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIp
OworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2
d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYi
KSwgc3RyaW5nMSk7CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQg
bm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0
eSgpLgorICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOwor
ICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7
CisgICAgYnVpbGRlci5yZXNpemUoMTApOworICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKKyAg
ICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpB
QkMiKSwgc3RyaW5nMSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQorewor
ICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4
OSIpOworICAgIGJ1aWxkZXIuY2xlYXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30K
KworVEVTVChTdHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VR
KCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScs
IHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7
IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNf
Y2FzdDxjaGFyPihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8
Y2hhcj4oYnVpbGRlcls5XSkpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUp
Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CisgICAgYnVpbGRlci5yZXNpemUoMTApOworICAgIEVYUEVDVF9FUSgxMFUsIGJ1
aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5Iiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5yZXNpemUoOCk7CisgICAgRVhQRUNUX0VRKDhVLCBidWls
ZGVyLmxlbmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWls
ZGVyKTsKKworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg3KTsK
KyAgICBFWFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJD
b250ZW50KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5yZXNpemUoMCk7CisgICAg
ZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlCkluZGV4OiBUb29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkocmV2aXNpb24gOTU0MDAp
CisrKyBUb29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkod29ya2lu
ZyBjb3B5KQpAQCAtNjA4LDYgKzYwOCwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxG
aWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVzdHNcV1RGXFN0cmluZ0J1aWxkZXIuY3BwIgor
CQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZlUGF0aD0iLi5cVGVz
dHNcV1RGXFN0cmluZ09wZXJhdG9ycy5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>
<flag name="commit-queue"
          id="104592"
          type_id="3"
          status="-"
          setter="wangxianzhu"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107816</attachid>
            <date>2011-09-19 01:44:48 -0700</date>
            <delta_ts>2011-09-19 03:33:53 -0700</delta_ts>
            <desc>patch (add three string sources into TestWebKitAPI.vcproj)</desc>
            <filename>67080d</filename>
            <type>text/plain</type>
            <size>14273</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1NDAwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMTEtMDktMTggIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3BlcmF0b3I8PCk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNU
KToKKwogMjAxMS0wOS0xNiAgRWxsaW90IFBvZ2VyICA8ZXBvZ2VyQGdvb2dsZS5jb20+CiAKICAg
ICAgICAgYWRkIG5vbi1DRyBXZWJraXQtTWFjIGJ1aWxkcyB0byBmbGFraW5lc3MgZGFzaGJvYXJk
CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkocmV2aXNpb24gOTU0
MDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkod29ya2luZyBj
b3B5KQpAQCAtMzIsNiArMzIsNyBAQAogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAgICdUZXN0
V2ViS2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2VkQXJpdGht
ZXRpY09wZXJhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5nQnVpbGRl
ci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3BwJywKICAg
ICAgICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAgICAgICAgICdUZXN0
cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAnLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJl
dmlzaW9uIDk1NDAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcgQEAKIAkJ
MzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RDNjc4RjE0
MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0QkZERkZB
NzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE2MTMx
NDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwICovOyB9
OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNEJGREZG
QTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCAqLzsgfTsK
KwkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAxOTIxNDBGMjMyMzAw
RDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk1MjBCQ0Y0QzE0MUVCMDlFMDA5
MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hp
dmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFy
Y2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICovOyB9OwogCQk5MzlC
QTkxNzE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCQTkxNjE0MTAzNDEy
MDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi87IH07CkBAIC0xNTUsNiAr
MTU2LDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERPTVJhbmdlT2ZTdHJpbmcuaHRtbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFGMjRCIC8q
IEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBODEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0
VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdCdWlsZGVyLmNwcDsgcGF0
aCA9IFdURi9TdHJpbmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmVfQnVuZGxlLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdl
YkFyY2hpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXJj
aGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4NkFBNzYw
MEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGV4
cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNsdWRlSW5J
bmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwpAQCAtMzgwLDYgKzM4Miw3IEBACiAJCQkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3
RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0Yw
QyAvKiBSZWRCbGFja1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAv
KiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAorCQkJCTgxQjUwMTkyMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQlDMDEzNjNDNzEzQzM5OTcz
MDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0QjEyNTU2MUJG
MDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNBMTYyMzAwMDdB
NEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU4OSw2ICs1OTIsNyBAQAogCQkJCUMw
ODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIEluc3RhbmNlTWV0aG9k
U3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3QzUwMDBBQkNDREIg
LyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgxQjUwMTkzMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzZD
NENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDNkM0Q0YxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0aG1ldGlj
T3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAwKQorKysgVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisg
KiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdo
dCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5h
bWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisg
KiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUg
Q09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAor
ICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9Bc3NlcnRp
b25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworLy8g
Rm9yIEVYUEVDVF9FUShTdHJpbmcsIFN0cmluZykKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0b3I8PChz
dGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1cm4gb3Mg
PDwgc3RyaW5nLnV0ZjgoKS5kYXRhKCk7Cit9CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsK
Kwordm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBlY3RlZCwgY29uc3Qg
U3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICAvLyBOb3QgdXNpbmcgYnVpbGRlci50b1N0
cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVzZSB0aGV5
IGFsbAorICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgorICAgIEVYUEVD
VF9FUShTdHJpbmcoZXhwZWN0ZWQpLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIubGVuZ3RoKCkpKTsKK30KKwordm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdCdWlsZGVy
JiBidWlsZGVyKQoreworICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAg
RVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUSgwLCBidWlsZGVy
LmNoYXJhY3RlcnMoKSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1bHRDb25z
dHJ1Y3RvcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZXhwZWN0RW1wdHko
YnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKK3sKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIwMTIzNDU2
Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7
CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgi
MDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZnaCIsIDMp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1aWxkZXIp
OworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEy
MzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycpOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKwor
ICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygpLgorICAg
IFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDApOworICAg
IGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVyKTsKKyAg
ICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVuZ3RoKCkp
OworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQoYnVpbGRl
cjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVpbGRlckNv
bnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1aWxkZXIp
OworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKK3sKKyAgICBTdHJpbmdC
dWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBT
dHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwoKSwgYnVp
bGRlci50b1N0cmluZygpLmltcGwoKSk7CisKKyAgICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVp
bGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCku
CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7CisgICAg
QVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hhbmdp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2VkLgorICAg
IGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgc3RyaW5nID0gYnVpbGRlci50b1N0
cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9w
cXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwg
c3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJp
bmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4K
KyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAx
MjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRvU3RyaW5n
KCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJz
dHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKworICAgIC8vIFJlc2l6aW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmco
KS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIucmVzaXpl
KDEwKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworfQor
CitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkpCit7Cisg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworICAgIEFT
U0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
LmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hh
cmFjdGVycygpKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNob3VsZCBu
b3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5
KCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7Cisg
ICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hh
bmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJl
c3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBhY2l0eSBp
cyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOworICAgIHN0
cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNTRVJUX0VR
KHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3RyaW5n
KTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEy
MzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisKKyAgICAvLyBD
aGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgp
IHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVyLgorICAg
IFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAg
ICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VS
VF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBi
dWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5n
KCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3RyaW5nMSk7
CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0
aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgorICAgIHN0
cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9F
UShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgYnVpbGRl
ci5yZXNpemUoMTApOworICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgc3RyaW5n
MSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQoreworICAgIFN0cmluZ0J1
aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1
aWxkZXIuY2xlYXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAg
IGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGlj
X2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0
PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRlc3QgYWZ0
ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxjaGFyPihi
dWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRl
cls5XSkpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCit7CisgICAgU3Ry
aW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7Cisg
ICAgYnVpbGRlci5yZXNpemUoMTApOworICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIubGVuZ3Ro
KCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRlcik7Cisg
ICAgYnVpbGRlci5yZXNpemUoOCk7CisgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxlbmd0aCgp
KTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsKKworICAg
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg3KTsKKyAgICBFWFBFQ1Rf
RVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIz
NDU2IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5yZXNpemUoMCk7CisgICAgZXhwZWN0RW1wdHko
YnVpbGRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJ
L3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkocmV2aXNpb24gOTU0MDApCisrKyBUb29scy9U
ZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAt
Mzg2LDYgKzM4NiwyMiBAQAogCTwvUmVmZXJlbmNlcz4KIAk8RmlsZXM+CiAJCTxGaWx0ZXIKKwkJ
CU5hbWU9InN0cmluZ3MiCisJCQk+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25m
aWd1cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZVxBdG9taWNT
dHJpbmcuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRo
PSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3JpcHRDb3Jl
XFN0cmluZ0ltcGwuY3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCisJCQkJUmVsYXRp
dmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcaW5jbHVkZVxwcml2YXRlXEphdmFTY3Jp
cHRDb3JlXFdURlN0cmluZy5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQk8L0ZpbHRlcj4KKwkJ
PEZpbHRlcgogCQkJTmFtZT0id2luIgogCQkJPgogCQkJPEZpbGUKQEAgLTYwOCw2ICs2MjQsMTAg
QEAKIAkJCQkJPgogCQkJCTwvRmlsZT4KIAkJCQk8RmlsZQorCQkJCQlSZWxhdGl2ZVBhdGg9Ii4u
XFRlc3RzXFdURlxTdHJpbmdCdWlsZGVyLmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8
RmlsZQogCQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFRlc3RzXFdURlxTdHJpbmdPcGVyYXRvcnMuY3Bw
IgogCQkJCQk+CiAJCQkJPC9GaWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107827</attachid>
            <date>2011-09-19 03:33:53 -0700</date>
            <delta_ts>2011-09-19 18:31:34 -0700</delta_ts>
            <desc>patch (add icu dependency in TestWebKitAPICommon.vsprops)</desc>
            <filename>67080e</filename>
            <type>text/plain</type>
            <size>15054</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1NDAwKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjAgQEAKKzIwMTEtMDktMTggIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJQ29tbW9uLnZzcHJvcHM6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICog
VGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQSS52Y3Byb2o6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3Bl
cmF0b3I8PCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6
CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKwogMjAxMS0wOS0xNiAgRWxsaW90IFBvZ2VyICA8ZXBvZ2VyQGdvb2ds
ZS5jb20+CiAKICAgICAgICAgYWRkIG5vbi1DRyBXZWJraXQtTWFjIGJ1aWxkcyB0byBmbGFraW5l
c3MgZGFzaGJvYXJkCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lw
aQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQko
cmV2aXNpb24gOTU0MDApCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lw
aQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogICAgICd2YXJpYWJsZXMnOiB7CiAg
ICAgICAgICdUZXN0V2ViS2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9D
aGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdUZXN0cy9XVEYv
U3RyaW5nQnVpbGRlci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRv
cnMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAg
ICAgICAgICdUZXN0cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAnLApJbmRleDogVG9vbHMvVGVzdFdl
YktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJQ29tbW9uLnZzcHJvcHMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9Db25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJ
Q29tbW9uLnZzcHJvcHMJKHJldmlzaW9uIDk1NDAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9D
b25maWd1cmF0aW9ucy9UZXN0V2ViS2l0QVBJQ29tbW9uLnZzcHJvcHMJKHdvcmtpbmcgY29weSkK
QEAgLTEwLDcgKzEwLDcgQEAKIAkvPgogCTxUb29sCiAJCU5hbWU9IlZDTGlua2VyVG9vbCIKLQkJ
QWRkaXRpb25hbERlcGVuZGVuY2llcz0iV2ViS2l0JChXZWJLaXRETExDb25maWdTdWZmaXgpLmxp
YiBKYXZhU2NyaXB0Q29yZSQoV2ViS2l0RExMQ29uZmlnU3VmZml4KS5saWIgZ3Rlc3QubGliIgor
CQlBZGRpdGlvbmFsRGVwZW5kZW5jaWVzPSJXZWJLaXQkKFdlYktpdERMTENvbmZpZ1N1ZmZpeCku
bGliIEphdmFTY3JpcHRDb3JlJChXZWJLaXRETExDb25maWdTdWZmaXgpLmxpYiBndGVzdC5saWIg
bGliaWN1aW4kKExpYnJhcnlDb25maWdTdWZmaXgpLmxpYiBsaWJpY3V1YyQoTGlicmFyeUNvbmZp
Z1N1ZmZpeCkubGliIgogCQlTdWJTeXN0ZW09IjEiCiAJLz4KIDwvVmlzdWFsU3R1ZGlvUHJvcGVy
dHlTaGVldD4KSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NTQwMCkKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAJCTM3REM2NzkxMTQwRDdENzYw
MEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8q
IERPTVJhbmdlT2ZTdHJpbmcuaHRtbCAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRC
IC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyog
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0
Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0
QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CisJCTgxQjUwMTkzMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdC
dWlsZGVyLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEMxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hp
dmVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyMEJDRjRBMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi87
IH07CiAJCTUyMEJDRjREMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMEJDRjRCMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLzsgfTsKIAkJOTM5QkE5MTcxNDEwMzQxMjAwMUEw
MUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmlj
ZVNjYWxlRmFjdG9yT25CYWNrLm1tICovOyB9OwpAQCAtMTU1LDYgKzE1Niw3IEBACiAJCTM3REM2
NzhGMTQwRDdEM0EwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBET01SYW5nZU9mU3RyaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9k
ZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFu
ZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCNTAxOTIx
NDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3RyaW5nQnVpbGRlci5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVp
bGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMEJDRjRBMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBcmNoaXZlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUyMEJDRjRCMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdl
YktpdEFQSSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
VGVzdFdlYktpdEFQSTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM4
MCw2ICszODIsNyBAQAogCQkJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2Nh
dG9yLmNwcCAqLywKIAkJCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVl
LmNwcCAqLywKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0
aWNPcGVyYXRpb25zLmNwcCAqLywKKwkJCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgKi8sCiAJCQkJQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0IC8qIFN0cmlu
Z09wZXJhdG9ycy5jcHAgKi8sCiAJCQkJQkM5MDk2NEIxMjU1NjFCRjAwMDgzNzU2IC8qIFZlY3Rv
ckJhc2ljLmNwcCAqLywKIAkJCQkzNzIwMEI5MTEzQTE2MjMwMDA3QTRGQUQgLyogVmVjdG9yUmV2
ZXJzZS5jcHAgKi8sCkBAIC01ODksNiArNTkyLDcgQEAKIAkJCQlDMDg1ODdGQzEzRkVDMzlCMDAx
RUY0RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMw
ODU4ODAwMTNGRUMzQTYwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJp
bmcubW0gaW4gU291cmNlcyAqLywKKwkJCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM2QzRDQzE0MTAyN0UwMDA1QjdG
MEMgLyogUmVkQmxhY2tUcmVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzZDNENGMTQxMDM0
QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTk2
NkRCMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKy8vIEZvciBFWFBFQ1RfRVEoU3Ry
aW5nLCBTdHJpbmcpCitzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZy51dGY4KCku
ZGF0YSgpOworfQorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3ZvaWQgZXhwZWN0QnVp
bGRlckNvbnRlbnQoY29uc3QgY2hhciogZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKKyAgICAvLyBjaGFu
Z2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KKyAgICBFWFBFQ1RfRVEoU3RyaW5nKGV4cGVj
dGVkKSwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKSk7Cit9
CisKK3ZvaWQgZXhwZWN0RW1wdHkoY29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBFWFBFQ1RfRVEoMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5jaGFyYWN0ZXJzKCkpOwor
fQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCit7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOworfQorCitU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImVmZ2giLCAzKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFw
cGVuZCgiIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRvU3Ry
aW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXIxOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgYnVpbGRlcjEuYXBwZW5k
KGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5h
cHBlbmQoIlhZWiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnMoKSwg
YnVpbGRlcjEubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKK30KKworVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0
cmluZyk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5p
bXBsKCkpOworCisgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgorICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOworICAgIEFTU0VSVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBp
biBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVD
YXBhY2l0eSgyMDApOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisKKyAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCisgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIHN0cmluZzEu
YXBwZW5kKCJERUYiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwg
c3RyaW5nMSk7CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCisgICAgc3RyaW5nMSA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CisgICAgYnVpbGRl
ci5hcHBlbmQoIiMjIyIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKK30KKworVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQoreworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIFN0cmluZyBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOworICAgIEFT
U0VSVF9FUShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisKKyAg
ICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgorICAgIGJ1aWxkZXIu
YXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOworICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCisg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKKyAgICBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVy
cygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgYnVpbGRlci5h
cHBlbmQoIkFCQyIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVj
dCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KKyAgICBTdHJpbmcgc3RyaW5nMSA9
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNTRVJUX0VRKHN0cmlu
ZzEuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworCisgICAgLy8gUmVzaXpp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3Rl
cnMoKSwgYnVpbGRlci5jaGFyYWN0ZXJzKCkpOworICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKKyAg
ICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworfQorCitURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBidWlsZGVyLmNsZWFyKCk7Cisg
ICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFy
cmF5KQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgi
MDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxk
ZXJbMF0pKTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzld
KSk7CisgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCku
CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAg
IEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKK30KKworVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1aWxkZXIucmVzaXpl
KDEwKTsKKyAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIucmVzaXpl
KDgpOworICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgYnVpbGRlci5yZXNpemUoNyk7CisgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxl
bmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOwor
ICAgIGJ1aWxkZXIucmVzaXplKDApOworICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOworfQorCit9
IC8vIG5hbWVzcGFjZQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktpdEFQ
SS52Y3Byb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vVGVzdFdlYktp
dEFQSS52Y3Byb2oJKHJldmlzaW9uIDk1NDAwKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS93aW4v
VGVzdFdlYktpdEFQSS52Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTM4Niw2ICszODYsMjIgQEAK
IAk8L1JlZmVyZW5jZXM+CiAJPEZpbGVzPgogCQk8RmlsdGVyCisJCQlOYW1lPSJzdHJpbmdzIgor
CQkJPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxpbmNsdWRlXHByaXZhdGVcSmF2YVNjcmlwdENvcmVcQXRvbWljU3RyaW5nLmNwcCIKKwkJCQk+
CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1cmF0aW9u
QnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZVxTdHJpbmdJbXBsLmNwcCIK
KwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iJChDb25maWd1
cmF0aW9uQnVpbGREaXIpXGluY2x1ZGVccHJpdmF0ZVxKYXZhU2NyaXB0Q29yZVxXVEZTdHJpbmcu
Y3BwIgorCQkJCT4KKwkJCTwvRmlsZT4KKwkJPC9GaWx0ZXI+CisJCTxGaWx0ZXIKIAkJCU5hbWU9
IndpbiIKIAkJCT4KIAkJCTxGaWxlCkBAIC02MDgsNiArNjI0LDEwIEBACiAJCQkJCT4KIAkJCQk8
L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcU3RyaW5n
QnVpbGRlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxUZXN0c1xXVEZcU3RyaW5nT3BlcmF0b3JzLmNwcCIKIAkJCQkJPgogCQkJCTwv
RmlsZT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107952</attachid>
            <date>2011-09-19 18:31:34 -0700</date>
            <delta_ts>2011-09-21 20:43:58 -0700</delta_ts>
            <desc>patch (removed Windows support)</desc>
            <filename>67080f</filename>
            <type>text/plain</type>
            <size>13261</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1NDI5KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDktMTggIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3BlcmF0b3I8
PCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKwogMjAxMS0wOS0xNiAgRWxsaW90IFBvZ2VyICA8ZXBvZ2VyQGdvb2dsZS5jb20+
CiAKICAgICAgICAgYWRkIG5vbi1DRyBXZWJraXQtTWFjIGJ1aWxkcyB0byBmbGFraW5lc3MgZGFz
aGJvYXJkCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkocmV2aXNp
b24gOTU0MjkpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkuZ3lwaQkod29y
a2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQAogICAgICd2YXJpYWJsZXMnOiB7CiAgICAgICAg
ICdUZXN0V2ViS2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2Vk
QXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwJywKKyAgICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5n
QnVpbGRlci5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9TdHJpbmdPcGVyYXRvcnMuY3Bw
JywKICAgICAgICAgICAgICdUZXN0cy9XVEYvVmVjdG9yQmFzaWMuY3BwJywKICAgICAgICAgICAg
ICdUZXN0cy9XVEYvVmVjdG9yUmV2ZXJzZS5jcHAnLApJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oJKHJldmlzaW9uIDk1NDI5KQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTI5LDYgKzI5LDcg
QEAKIAkJMzdEQzY3OTExNDBEN0Q3NjAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJpbmcuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzN0RD
Njc4RjE0MEQ3RDNBMDBBQkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5odG1sICovOyB9OwogCQk0
QkZERkZBNzEzMTQ3NzZDMDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRG
RkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3Bw
ICovOyB9OwogCQk0QkZERkZBOTEzMTQ3Nzc3MDA2MUYyNEIgLyogSGl0VGVzdFJlc3VsdE5vZGVI
YW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCAq
LzsgfTsKKwkJODFCNTAxOTMxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODFCNTAxOTIxNDBG
MjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovOyB9OwogCQk1MjBCQ0Y0QzE0MUVC
MDlFMDA5MzdFQTggLyogV2ViQXJjaGl2ZV9CdW5kbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdl
YkFyY2hpdmVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEQxNDFFQjA5RTAwOTM3RUE4IC8q
IFdlYkFyY2hpdmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmUuY3BwICovOyB9Owog
CQk5MzlCQTkxNzE0MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzlCQTkxNjE0
MTAzNDEyMDAxQTAxQkQgLyogRGV2aWNlU2NhbGVGYWN0b3JPbkJhY2subW0gKi87IH07CkBAIC0x
NTUsNiArMTU2LDcgQEAKIAkJMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZT
dHJpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IERPTVJhbmdlT2ZTdHJpbmcu
aHRtbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNEJGREZGQTYxMzE0Nzc2QzAwNjFG
MjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZV9CdW5kbGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0QkZERkZBODEzMTQ3Nzc3MDA2MUYyNEIg
LyogSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gSGl0VGVzdFJlc3VsdE5vZGVIYW5kbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3RyaW5nQnVpbGRlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBTdHJpbmdCdWlsZGVyLmNw
cDsgcGF0aCA9IFdURi9TdHJpbmdCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNTIwQkNGNEExNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hpdmVfQnVuZGxlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmVfQnVuZGxlLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTIwQkNGNEIxNDFFQjA5RTAwOTM3RUE4
IC8qIFdlYkFyY2hpdmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
V2ViQXJjaGl2ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCThERDc2RkExMDQ4
NkFBNzYwMEQ5NkI1RSAvKiBUZXN0V2ViS2l0QVBJICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGV4cGxpY2l0RmlsZVR5cGUgPSAiY29tcGlsZWQubWFjaC1vLmV4ZWN1dGFibGUiOyBpbmNs
dWRlSW5JbmRleCA9IDA7IHBhdGggPSBUZXN0V2ViS2l0QVBJOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwpAQCAtMzgwLDYgKzM4Miw3IEBACiAJCQkJMEZDNkM0Q0UxNDEwMzRB
RDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAw
MDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUNDQzgwMDVF
RjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAorCQkJCTgxQjUwMTky
MTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCAqLywKIAkJCQlDMDEzNjNDNzEz
QzM5OTczMDBFRjM5NjQgLyogU3RyaW5nT3BlcmF0b3JzLmNwcCAqLywKIAkJCQlCQzkwOTY0QjEy
NTU2MUJGMDAwODM3NTYgLyogVmVjdG9yQmFzaWMuY3BwICovLAogCQkJCTM3MjAwQjkxMTNBMTYy
MzAwMDdBNEZBRCAvKiBWZWN0b3JSZXZlcnNlLmNwcCAqLywKQEAgLTU4OSw2ICs1OTIsNyBAQAog
CQkJCUMwODU4N0ZDMTNGRUMzOUIwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJQzA4NTg4MDAxM0ZFQzNBNjAwMUVGNEU1IC8qIEluc3RhbmNl
TWV0aG9kU3dpenpsZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkzN0RDNjc4RDE0MEQ3QzUwMDBB
QkNDREIgLyogRE9NUmFuZ2VPZlN0cmluZy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTgxQjUwMTkz
MTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBGQzZDNENDMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFja1RyZWUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMEZDNkM0Q0YxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQTdBOTY2REIxNDBFQ0NDODAwNUVGOUI0IC8qIENoZWNrZWRBcml0
aG1ldGljT3BlcmF0aW9ucy5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAwKQorKysg
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgPHd0Zi9B
c3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KworLy8gRm9yIEVYUEVDVF9FUShTdHJpbmcsIFN0cmluZykKK3N0ZDo6b3N0cmVhbSYgb3BlcmF0
b3I8PChzdGQ6Om9zdHJlYW0mIG9zLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICByZXR1
cm4gb3MgPDwgc3RyaW5nLnV0ZjgoKS5kYXRhKCk7Cit9CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKKwordm9pZCBleHBlY3RCdWlsZGVyQ29udGVudChjb25zdCBjaGFyKiBleHBlY3RlZCwg
Y29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAgICAvLyBOb3QgdXNpbmcgYnVpbGRl
ci50b1N0cmluZygpIG9yIGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCkgYmVjYXVz
ZSB0aGV5IGFsbAorICAgIC8vIGNoYW5nZSBpbnRlcm5hbCBzdGF0ZSBvZiBidWlsZGVyLgorICAg
IEVYUEVDVF9FUShTdHJpbmcoZXhwZWN0ZWQpLCBTdHJpbmcoYnVpbGRlci5jaGFyYWN0ZXJzKCks
IGJ1aWxkZXIubGVuZ3RoKCkpKTsKK30KKwordm9pZCBleHBlY3RFbXB0eShjb25zdCBTdHJpbmdC
dWlsZGVyJiBidWlsZGVyKQoreworICAgIEVYUEVDVF9FUSgwVSwgYnVpbGRlci5sZW5ndGgoKSk7
CisgICAgRVhQRUNUX1RSVUUoYnVpbGRlci5pc0VtcHR5KCkpOworICAgIEVYUEVDVF9FUSgwLCBi
dWlsZGVyLmNoYXJhY3RlcnMoKSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIERlZmF1
bHRDb25zdHJ1Y3RvcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgZXhwZWN0
RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFwcGVuZCkKK3sK
KyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoU3RyaW5nKCIw
MTIzNDU2Nzg5IikpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVp
bGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImFiY2QiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2QiLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiZWZn
aCIsIDMpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyIsIGJ1
aWxkZXIpOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVu
dCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFwcGVuZCgnIycp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsgLy8gVGVzdCBhZnRlciByZWlmeVN0cmluZygp
LgorICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjE7CisgICAgYnVpbGRlci5hcHBlbmQoIiIsIDAp
OworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5YWJjZGVmZyMiLCBidWlsZGVy
KTsKKyAgICBidWlsZGVyMS5hcHBlbmQoYnVpbGRlci5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIubGVu
Z3RoKCkpOworICAgIGJ1aWxkZXIxLmFwcGVuZCgiWFlaIik7CisgICAgYnVpbGRlci5hcHBlbmQo
YnVpbGRlcjEuY2hhcmFjdGVycygpLCBidWlsZGVyMS5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIzAxMjM0NTY3ODlhYmNkZWZnI1hZWiIsIGJ1
aWxkZXIpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZykKK3sKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsK
KyAgICBTdHJpbmcgc3RyaW5nID0gYnVpbGRlci50b1N0cmluZygpOworICAgIEFTU0VSVF9FUShT
dHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmltcGwo
KSwgYnVpbGRlci50b1N0cmluZygpLmltcGwoKSk7CisKKyAgICAvLyBDaGFuZ2luZyB0aGUgU3Ry
aW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3Ry
aW5nKCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6Iik7
CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAgLy8g
Q2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFs
IHJlc3VsdCBvZiB0b1N0cmluZygpIGluIGNhc2UgdGhlIGNhcGFjaXR5IGlzIG5vdCBjaGFuZ2Vk
LgorICAgIGJ1aWxkZXIucmVzZXJ2ZUNhcGFjaXR5KDIwMCk7CisgICAgc3RyaW5nID0gYnVpbGRl
ci50b1N0cmluZygpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworICAgIGJ1aWxkZXIuYXBwZW5kKCJBQkMiKTsK
KyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4
eXoiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBvcmlnaW5hbCByZXN1bHQgb2Yg
dG9TdHJpbmcoKSBzaG91bGQgbm90IGFmZmVjdCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVp
bGRlci4KKyAgICBTdHJpbmcgc3RyaW5nMSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
c3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBidWlsZGVyLnRv
U3RyaW5nKCkpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xt
bm9wcXJzdHV2d3h5ekFCQ0RFRiIpLCBzdHJpbmcxKTsKKworICAgIC8vIFJlc2l6aW5nIHRoZSBT
dHJpbmdCdWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9T
dHJpbmcoKS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZygpOworICAgIGJ1aWxkZXIu
cmVzaXplKDEwKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBUb1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkp
Cit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIz
NDU2Nzg5Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOwor
ICAgIEFTU0VSVF9FUShzdHJpbmcuaW1wbCgpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpLmltcGwoKSk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxk
ZXIuY2hhcmFjdGVycygpKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWlsZGVyIHNo
b3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQcmVzZXJ2ZUNh
cGFjaXR5KCkuCisgICAgYnVpbGRlci5hcHBlbmQoImFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6
Iik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OSIpLCBzdHJpbmcpOworCisgICAg
Ly8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBpbiBjYXNlIHRoZSBjYXBh
Y2l0eSBpcyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVDYXBhY2l0eSgyMDApOwor
ICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNT
RVJUX0VRKHN0cmluZy5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVycygpKTsKKyAgICBB
U1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwg
c3RyaW5nKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VRKFN0cmlu
ZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisKKyAg
ICAvLyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBh
Y2l0eSgpIHNob3VsZCBub3QgYWZmZWN0IHRoZSBjb250ZW50IG9mIHRoZSBTdHJpbmdCdWlsZGVy
LgorICAgIFN0cmluZyBzdHJpbmcxID0gYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHko
KTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nMS5jaGFyYWN0ZXJzKCksIGJ1aWxkZXIuY2hhcmFjdGVy
cygpKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFy
c3R1dnd4eXpBQkMiKSwgc3RyaW5nMSk7CisgICAgc3RyaW5nMS5hcHBlbmQoIkRFRiIpOworICAg
IEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ekFC
QyIpLCBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpKTsKKyAgICBBU1NFUlRfRVEo
U3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwgc3Ry
aW5nMSk7CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFm
ZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgor
ICAgIHN0cmluZzEgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFT
U0VSVF9FUShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAg
YnVpbGRlci5yZXNpemUoMTApOworICAgIGJ1aWxkZXIuYXBwZW5kKCIjIyMiKTsKKyAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwg
c3RyaW5nMSk7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIENsZWFyKQoreworICAgIFN0
cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOwor
ICAgIGJ1aWxkZXIuY2xlYXIoKTsKKyAgICBleHBlY3RFbXB0eShidWlsZGVyKTsKK30KKworVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgQXJyYXkpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVy
OworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgRVhQRUNUX0VRKCcwJywg
c3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAgIEVYUEVDVF9FUSgnOScsIHN0YXRp
Y19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKKyAgICBidWlsZGVyLnRvU3RyaW5nKCk7IC8vIFRl
c3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBFWFBFQ1RfRVEoJzAnLCBzdGF0aWNfY2FzdDxj
aGFyPihidWlsZGVyWzBdKSk7CisgICAgRVhQRUNUX0VRKCc5Jywgc3RhdGljX2Nhc3Q8Y2hhcj4o
YnVpbGRlcls5XSkpOworfQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBSZXNpemUpCit7Cisg
ICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5
Iik7CisgICAgYnVpbGRlci5yZXNpemUoMTApOworICAgIEVYUEVDVF9FUSgxMFUsIGJ1aWxkZXIu
bGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5IiwgYnVpbGRl
cik7CisgICAgYnVpbGRlci5yZXNpemUoOCk7CisgICAgRVhQRUNUX0VRKDhVLCBidWlsZGVyLmxl
bmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NjciLCBidWlsZGVyKTsK
KworICAgIGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSg3KTsKKyAgICBF
WFBFQ1RfRVEoN1UsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50
KCIwMTIzNDU2IiwgYnVpbGRlcik7CisgICAgYnVpbGRlci5yZXNpemUoMCk7CisgICAgZXhwZWN0
RW1wdHkoYnVpbGRlcik7Cit9CisKK30gLy8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108271</attachid>
            <date>2011-09-21 20:43:58 -0700</date>
            <delta_ts>2011-09-22 18:41:39 -0700</delta_ts>
            <desc>patch (resolved conflicts with ToT)</desc>
            <filename>67080g</filename>
            <type>text/plain</type>
            <size>13295</size>
            <attacher name="Xianzhu Wang">wangxianzhu</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDk1NjkyKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTggQEAKKzIwMTEtMDktMjEgIFhpYW56aHUgV2FuZyAgPHdhbmd4aWFuemh1QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBBZGQgdW5pdCB0ZXN0IGZvciBleGlzdGluZyBTdHJpbmdCdWlsZGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NzA4MAor
CisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHA6IEFkZGVkLgorICAgICAgICAob3BlcmF0b3I8
PCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RCdWlsZGVyQ29udGVudCk6CisgICAg
ICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RFbXB0eSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpURVNUKToKKwogMjAxMS0wOS0yMSAgQW5uYSBDYXZlbmRlciAgPGFubmFjY0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgVXBkYXRlIGNvbW1pdHRlcnMucHkgd2l0aCBhIG5ldyBjb250cmlidXRv
ciBjb250YWN0ICAgICAgICAKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5n
eXBpCShyZXZpc2lvbiA5NTY5MikKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS5neXBpCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAgICAgICAgICdUZXN0V2Vi
S2l0QVBJX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3RzL1dURi9DaGVja2VkQXJpdGhtZXRp
Y09wZXJhdGlvbnMuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvUmVkQmxhY2tUcmVlLmNw
cCcsCisgICAgICAgICAgICAnVGVzdHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwJywKICAgICAgICAg
ICAgICdUZXN0cy9XVEYvU3RyaW5nT3BlcmF0b3JzLmNwcCcsCiAgICAgICAgICAgICAnVGVzdHMv
V1RGL1ZlY3RvckJhc2ljLmNwcCcsCiAgICAgICAgICAgICAnVGVzdHMvV1RGL1ZlY3RvclJldmVy
c2UuY3BwJywKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA5NTY5MikKKysr
IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAJCTM3REM2NzkxMTQwRDdENzYw
MEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzdEQzY3OEYxNDBEN0QzQTAwQUJDQ0RCIC8q
IERPTVJhbmdlT2ZTdHJpbmcuaHRtbCAqLzsgfTsKIAkJNEJGREZGQTcxMzE0Nzc2QzAwNjFGMjRC
IC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlX0J1bmRsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0QkZERkZBNjEzMTQ3NzZDMDA2MUYyNEIgLyog
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcCAqLzsgfTsKIAkJNEJGREZGQTkxMzE0
Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDRCRkRGRkE4MTMxNDc3NzcwMDYxRjI0
QiAvKiBIaXRUZXN0UmVzdWx0Tm9kZUhhbmRsZS5jcHAgKi87IH07CisJCTgxQjUwMTkzMTQwRjIz
MjMwMEQ5RUI1OCAvKiBTdHJpbmdCdWlsZGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgxQjUwMTkyMTQwRjIzMjMwMEQ5RUI1OCAvKiBTdHJpbmdC
dWlsZGVyLmNwcCAqLzsgfTsKIAkJNTIwQkNGNEMxNDFFQjA5RTAwOTM3RUE4IC8qIFdlYkFyY2hp
dmVfQnVuZGxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDUyMEJDRjRBMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi87
IH07CiAJCTUyMEJDRjREMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyMEJDRjRCMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLzsgfTsKIAkJOTM5QkE5MTcxNDEwMzQxMjAwMUEw
MUJEIC8qIERldmljZVNjYWxlRmFjdG9yT25CYWNrLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM5QkE5MTYxNDEwMzQxMjAwMUEwMUJEIC8qIERldmlj
ZVNjYWxlRmFjdG9yT25CYWNrLm1tICovOyB9OwpAQCAtMTU4LDYgKzE1OSw3IEBACiAJCTM3REM2
NzhGMTQwRDdEM0EwMEFCQ0NEQiAvKiBET01SYW5nZU9mU3RyaW5nLmh0bWwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0Lmh0bWw7IHBhdGggPSBET01SYW5nZU9mU3RyaW5nLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTRCRkRGRkE2MTMxNDc3NkMwMDYxRjI0QiAvKiBIaXRUZXN0UmVzdWx0Tm9k
ZUhhbmRsZV9CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SGl0VGVzdFJlc3VsdE5vZGVIYW5kbGVfQnVuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEJGREZGQTgxMzE0Nzc3NzAwNjFGMjRCIC8qIEhpdFRlc3RSZXN1bHROb2RlSGFu
ZGxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhpdFRlc3RSZXN1
bHROb2RlSGFuZGxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODFCNTAxOTIx
NDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxkZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBuYW1lID0gU3RyaW5nQnVpbGRlci5jcHA7IHBhdGggPSBXVEYvU3RyaW5nQnVp
bGRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyMEJDRjRBMTQxRUIwOUUw
MDkzN0VBOCAvKiBXZWJBcmNoaXZlX0J1bmRsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJBcmNoaXZlX0J1bmRsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUyMEJDRjRCMTQxRUIwOUUwMDkzN0VBOCAvKiBXZWJBcmNoaXZlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkFyY2hpdmUuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk4REQ3NkZBMTA0ODZBQTc2MDBEOTZCNUUgLyogVGVzdFdl
YktpdEFQSSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0g
ImNvbXBpbGVkLm1hY2gtby5leGVjdXRhYmxlIjsgaW5jbHVkZUluSW5kZXggPSAwOyBwYXRoID0g
VGVzdFdlYktpdEFQSTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKQEAgLTM4
Niw2ICszODgsNyBAQAogCQkJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2Nh
dG9yLmNwcCAqLywKIAkJCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVl
LmNwcCAqLywKIAkJCQlBN0E5NjZEQTE0MEVDQ0M4MDA1RUY5QjQgLyogQ2hlY2tlZEFyaXRobWV0
aWNPcGVyYXRpb25zLmNwcCAqLywKKwkJCQk4MUI1MDE5MjE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgKi8sCiAJCQkJQzAxMzYzQzcxM0MzOTk3MzAwRUYzOTY0IC8qIFN0cmlu
Z09wZXJhdG9ycy5jcHAgKi8sCiAJCQkJQkM5MDk2NEIxMjU1NjFCRjAwMDgzNzU2IC8qIFZlY3Rv
ckJhc2ljLmNwcCAqLywKIAkJCQkzNzIwMEI5MTEzQTE2MjMwMDA3QTRGQUQgLyogVmVjdG9yUmV2
ZXJzZS5jcHAgKi8sCkBAIC01OTYsNiArNTk5LDcgQEAKIAkJCQlDMDg1ODdGQzEzRkVDMzlCMDAx
RUY0RTUgLyogSW5zdGFuY2VNZXRob2RTd2l6emxlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMw
ODU4ODAwMTNGRUMzQTYwMDFFRjRFNSAvKiBJbnN0YW5jZU1ldGhvZFN3aXp6bGVyLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJMzdEQzY3OEQxNDBEN0M1MDAwQUJDQ0RCIC8qIERPTVJhbmdlT2ZTdHJp
bmcubW0gaW4gU291cmNlcyAqLywKKwkJCQk4MUI1MDE5MzE0MEYyMzIzMDBEOUVCNTggLyogU3Ry
aW5nQnVpbGRlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRkM2QzRDQzE0MTAyN0UwMDA1QjdG
MEMgLyogUmVkQmxhY2tUcmVlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGQzZDNENGMTQxMDM0
QUQwMDVCN0YwQyAvKiBNZXRhQWxsb2NhdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3QTk2
NkRCMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJpdGhtZXRpY09wZXJhdGlvbnMuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9TdHJpbmdC
dWlsZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9T
dHJpbmdCdWlsZGVyLmNwcAkocmV2aXNpb24gMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV1RGL1N0cmluZ0J1aWxkZXIuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5NyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKy8vIEZvciBFWFBFQ1RfRVEoU3Ry
aW5nLCBTdHJpbmcpCitzdGQ6Om9zdHJlYW0mIG9wZXJhdG9yPDwoc3RkOjpvc3RyZWFtJiBvcywg
Y29uc3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgcmV0dXJuIG9zIDw8IHN0cmluZy51dGY4KCku
ZGF0YSgpOworfQorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3ZvaWQgZXhwZWN0QnVp
bGRlckNvbnRlbnQoY29uc3QgY2hhciogZXhwZWN0ZWQsIGNvbnN0IFN0cmluZ0J1aWxkZXImIGJ1
aWxkZXIpCit7CisgICAgLy8gTm90IHVzaW5nIGJ1aWxkZXIudG9TdHJpbmcoKSBvciBidWlsZGVy
LnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpIGJlY2F1c2UgdGhleSBhbGwKKyAgICAvLyBjaGFu
Z2UgaW50ZXJuYWwgc3RhdGUgb2YgYnVpbGRlci4KKyAgICBFWFBFQ1RfRVEoU3RyaW5nKGV4cGVj
dGVkKSwgU3RyaW5nKGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKSk7Cit9
CisKK3ZvaWQgZXhwZWN0RW1wdHkoY29uc3QgU3RyaW5nQnVpbGRlciYgYnVpbGRlcikKK3sKKyAg
ICBFWFBFQ1RfRVEoMFUsIGJ1aWxkZXIubGVuZ3RoKCkpOworICAgIEVYUEVDVF9UUlVFKGJ1aWxk
ZXIuaXNFbXB0eSgpKTsKKyAgICBFWFBFQ1RfRVEoMCwgYnVpbGRlci5jaGFyYWN0ZXJzKCkpOwor
fQorCitURVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBEZWZhdWx0Q29uc3RydWN0b3IpCit7CisgICAg
U3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOworfQorCitU
RVNUKFN0cmluZ0J1aWxkZXJUZXN0LCBBcHBlbmQpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWls
ZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kKFN0cmluZygiMDEyMzQ1Njc4OSIpKTsKKyAgICBleHBl
Y3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkIiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoImVmZ2giLCAzKTsKKyAgICBleHBlY3RCdWls
ZGVyQ29udGVudCgiMDEyMzQ1Njc4OWFiY2RlZmciLCBidWlsZGVyKTsKKyAgICBidWlsZGVyLmFw
cGVuZCgiIik7CisgICAgZXhwZWN0QnVpbGRlckNvbnRlbnQoIjAxMjM0NTY3ODlhYmNkZWZnIiwg
YnVpbGRlcik7CisgICAgYnVpbGRlci5hcHBlbmQoJyMnKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRvU3Ry
aW5nKCk7IC8vIFRlc3QgYWZ0ZXIgcmVpZnlTdHJpbmcoKS4KKyAgICBTdHJpbmdCdWlsZGVyIGJ1
aWxkZXIxOworICAgIGJ1aWxkZXIuYXBwZW5kKCIiLCAwKTsKKyAgICBleHBlY3RCdWlsZGVyQ29u
dGVudCgiMDEyMzQ1Njc4OWFiY2RlZmcjIiwgYnVpbGRlcik7CisgICAgYnVpbGRlcjEuYXBwZW5k
KGJ1aWxkZXIuY2hhcmFjdGVycygpLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBidWlsZGVyMS5h
cHBlbmQoIlhZWiIpOworICAgIGJ1aWxkZXIuYXBwZW5kKGJ1aWxkZXIxLmNoYXJhY3RlcnMoKSwg
YnVpbGRlcjEubGVuZ3RoKCkpOworICAgIGV4cGVjdEJ1aWxkZXJDb250ZW50KCIwMTIzNDU2Nzg5
YWJjZGVmZyMwMTIzNDU2Nzg5YWJjZGVmZyNYWVoiLCBidWlsZGVyKTsKK30KKworVEVTVChTdHJp
bmdCdWlsZGVyVGVzdCwgVG9TdHJpbmcpCit7CisgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwor
ICAgIGJ1aWxkZXIuYXBwZW5kKCIwMTIzNDU2Nzg5Iik7CisgICAgU3RyaW5nIHN0cmluZyA9IGJ1
aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5IiksIHN0
cmluZyk7CisgICAgQVNTRVJUX0VRKHN0cmluZy5pbXBsKCksIGJ1aWxkZXIudG9TdHJpbmcoKS5p
bXBsKCkpOworCisgICAgLy8gQ2hhbmdpbmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3VsdCBvZiB0b1N0cmluZygpLgorICAgIGJ1aWxkZXIuYXBw
ZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOworICAgIEFTU0VSVF9FUShTdHJpbmco
IjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdCdWls
ZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmcoKSBp
biBjYXNlIHRoZSBjYXBhY2l0eSBpcyBub3QgY2hhbmdlZC4KKyAgICBidWlsZGVyLnJlc2VydmVD
YXBhY2l0eSgyMDApOworICAgIHN0cmluZyA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBBU1NF
UlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiKSwgc3Ry
aW5nKTsKKyAgICBidWlsZGVyLmFwcGVuZCgiQUJDIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygi
MDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisKKyAgICAv
LyBDaGFuZ2luZyB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkgc2hvdWxkIG5vdCBh
ZmZlY3QgdGhlIGNvbnRlbnQgb2YgdGhlIFN0cmluZ0J1aWxkZXIuCisgICAgU3RyaW5nIHN0cmlu
ZzEgPSBidWlsZGVyLnRvU3RyaW5nKCk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworICAgIHN0cmluZzEu
YXBwZW5kKCJERUYiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hp
amtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZygpKTsKKyAgICBBU1NFUlRf
RVEoU3RyaW5nKCIwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUYiKSwg
c3RyaW5nMSk7CisKKyAgICAvLyBSZXNpemluZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90
IGFmZmVjdCB0aGUgb3JpZ2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nKCkuCisgICAgc3RyaW5nMSA9
IGJ1aWxkZXIudG9TdHJpbmcoKTsKKyAgICBidWlsZGVyLnJlc2l6ZSgxMCk7CisgICAgYnVpbGRl
ci5hcHBlbmQoIiMjIyIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZn
aGlqa2xtbm9wcXJzdHV2d3h5ekFCQyIpLCBzdHJpbmcxKTsKK30KKworVEVTVChTdHJpbmdCdWls
ZGVyVGVzdCwgVG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KQoreworICAgIFN0cmluZ0J1aWxkZXIg
YnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIFN0cmluZyBz
dHJpbmcgPSBidWlsZGVyLnRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9F
UShTdHJpbmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmlt
cGwoKSwgYnVpbGRlci50b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS5pbXBsKCkpOworICAgIEFT
U0VSVF9FUShzdHJpbmcuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisKKyAg
ICAvLyBDaGFuZ2luZyB0aGUgU3RyaW5nQnVpbGRlciBzaG91bGQgbm90IGFmZmVjdCB0aGUgb3Jp
Z2luYWwgcmVzdWx0IG9mIHRvU3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpLgorICAgIGJ1aWxkZXIu
YXBwZW5kKCJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiIpOworICAgIEFTU0VSVF9FUShTdHJp
bmcoIjAxMjM0NTY3ODkiKSwgc3RyaW5nKTsKKworICAgIC8vIENoYW5naW5nIHRoZSBTdHJpbmdC
dWlsZGVyIHNob3VsZCBub3QgYWZmZWN0IHRoZSBvcmlnaW5hbCByZXN1bHQgb2YgdG9TdHJpbmdQ
cmVzZXJ2ZUNhcGFjaXR5KCkgaW4gY2FzZSB0aGUgY2FwYWNpdHkgaXMgbm90IGNoYW5nZWQuCisg
ICAgYnVpbGRlci5yZXNlcnZlQ2FwYWNpdHkoMjAwKTsKKyAgICBzdHJpbmcgPSBidWlsZGVyLnRv
U3RyaW5nUHJlc2VydmVDYXBhY2l0eSgpOworICAgIEFTU0VSVF9FUShzdHJpbmcuY2hhcmFjdGVy
cygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1
Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6IiksIHN0cmluZyk7CisgICAgYnVpbGRlci5h
cHBlbmQoIkFCQyIpOworICAgIEFTU0VSVF9FUShTdHJpbmcoIjAxMjM0NTY3ODlhYmNkZWZnaGlq
a2xtbm9wcXJzdHV2d3h5eiIpLCBzdHJpbmcpOworCisgICAgLy8gQ2hhbmdpbmcgdGhlIG9yaWdp
bmFsIHJlc3VsdCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKSBzaG91bGQgbm90IGFmZmVj
dCB0aGUgY29udGVudCBvZiB0aGUgU3RyaW5nQnVpbGRlci4KKyAgICBTdHJpbmcgc3RyaW5nMSA9
IGJ1aWxkZXIudG9TdHJpbmdQcmVzZXJ2ZUNhcGFjaXR5KCk7CisgICAgQVNTRVJUX0VRKHN0cmlu
ZzEuY2hhcmFjdGVycygpLCBidWlsZGVyLmNoYXJhY3RlcnMoKSk7CisgICAgQVNTRVJUX0VRKFN0
cmluZygiMDEyMzQ1Njc4OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEp
OworICAgIHN0cmluZzEuYXBwZW5kKCJERUYiKTsKKyAgICBBU1NFUlRfRVEoU3RyaW5nKCIwMTIz
NDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkMiKSwgYnVpbGRlci50b1N0cmluZ1By
ZXNlcnZlQ2FwYWNpdHkoKSk7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4OWFiY2Rl
ZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDREVGIiksIHN0cmluZzEpOworCisgICAgLy8gUmVzaXpp
bmcgdGhlIFN0cmluZ0J1aWxkZXIgc2hvdWxkIG5vdCBhZmZlY3QgdGhlIG9yaWdpbmFsIHJlc3Vs
dCBvZiB0b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKS4KKyAgICBzdHJpbmcxID0gYnVpbGRlci50
b1N0cmluZ1ByZXNlcnZlQ2FwYWNpdHkoKTsKKyAgICBBU1NFUlRfRVEoc3RyaW5nLmNoYXJhY3Rl
cnMoKSwgYnVpbGRlci5jaGFyYWN0ZXJzKCkpOworICAgIGJ1aWxkZXIucmVzaXplKDEwKTsKKyAg
ICBidWlsZGVyLmFwcGVuZCgiIyMjIik7CisgICAgQVNTRVJUX0VRKFN0cmluZygiMDEyMzQ1Njc4
OWFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6QUJDIiksIHN0cmluZzEpOworfQorCitURVNUKFN0
cmluZ0J1aWxkZXJUZXN0LCBDbGVhcikKK3sKKyAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Cisg
ICAgYnVpbGRlci5hcHBlbmQoIjAxMjM0NTY3ODkiKTsKKyAgICBidWlsZGVyLmNsZWFyKCk7Cisg
ICAgZXhwZWN0RW1wdHkoYnVpbGRlcik7Cit9CisKK1RFU1QoU3RyaW5nQnVpbGRlclRlc3QsIEFy
cmF5KQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZCgi
MDEyMzQ1Njc4OSIpOworICAgIEVYUEVDVF9FUSgnMCcsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxk
ZXJbMF0pKTsKKyAgICBFWFBFQ1RfRVEoJzknLCBzdGF0aWNfY2FzdDxjaGFyPihidWlsZGVyWzld
KSk7CisgICAgYnVpbGRlci50b1N0cmluZygpOyAvLyBUZXN0IGFmdGVyIHJlaWZ5U3RyaW5nKCku
CisgICAgRVhQRUNUX0VRKCcwJywgc3RhdGljX2Nhc3Q8Y2hhcj4oYnVpbGRlclswXSkpOworICAg
IEVYUEVDVF9FUSgnOScsIHN0YXRpY19jYXN0PGNoYXI+KGJ1aWxkZXJbOV0pKTsKK30KKworVEVT
VChTdHJpbmdCdWlsZGVyVGVzdCwgUmVzaXplKQoreworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRl
cjsKKyAgICBidWlsZGVyLmFwcGVuZCgiMDEyMzQ1Njc4OSIpOworICAgIGJ1aWxkZXIucmVzaXpl
KDEwKTsKKyAgICBFWFBFQ1RfRVEoMTBVLCBidWlsZGVyLmxlbmd0aCgpKTsKKyAgICBleHBlY3RC
dWlsZGVyQ29udGVudCgiMDEyMzQ1Njc4OSIsIGJ1aWxkZXIpOworICAgIGJ1aWxkZXIucmVzaXpl
KDgpOworICAgIEVYUEVDVF9FUSg4VSwgYnVpbGRlci5sZW5ndGgoKSk7CisgICAgZXhwZWN0QnVp
bGRlckNvbnRlbnQoIjAxMjM0NTY3IiwgYnVpbGRlcik7CisKKyAgICBidWlsZGVyLnRvU3RyaW5n
KCk7CisgICAgYnVpbGRlci5yZXNpemUoNyk7CisgICAgRVhQRUNUX0VRKDdVLCBidWlsZGVyLmxl
bmd0aCgpKTsKKyAgICBleHBlY3RCdWlsZGVyQ29udGVudCgiMDEyMzQ1NiIsIGJ1aWxkZXIpOwor
ICAgIGJ1aWxkZXIucmVzaXplKDApOworICAgIGV4cGVjdEVtcHR5KGJ1aWxkZXIpOworfQorCit9
IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>