<?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>42694</bug_id>
          
          <creation_ts>2010-07-20 15:16:24 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs layoutTestController.numberOfPages</short_desc>
          <delta_ts>2011-04-05 20:05:26 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>253975</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-20 15:16:24 -0700</bug_when>
    <thetext>WebKitTestRunner needs layoutTestController.numberOfPages</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>254005</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-07-20 15:31:22 -0700</bug_when>
    <thetext>&lt;rdar://problem/8213844&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379581</commentid>
    <comment_count>2</comment_count>
      <attachid>88239</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-05 08:27:06 -0700</bug_when>
    <thetext>Created attachment 88239
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379635</commentid>
    <comment_count>3</comment_count>
      <attachid>88239</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-05 09:28:10 -0700</bug_when>
    <thetext>Comment on attachment 88239
fix patch

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

Good change, but I am not happy with how the WebKit2 changes are structured.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebKitTestRunnerSupport.cpp:44
&gt; +int WebKitTestRunnerSupport::numberOfPages(WebCore::Frame* frame, float width, float height)
&gt; +{
&gt; +    if (!frame)
&gt; +        return -1;
&gt; +    if (!width)
&gt; +        width = frame-&gt;view()-&gt;width();
&gt; +    if (!height)
&gt; +        height = frame-&gt;view()-&gt;height();
&gt; +
&gt; +    return PrintContext::numberOfPages(frame, FloatSize(width, height));
&gt; +}

I don’t think this function needs its own file. This code can just go inside InjectedBundle::numberOfPages. While I understand that we might want to put testing functions somewhere different than functions for other purposes, I would not call that file WebKitTestRunnerSupport, nor would I make a new class.

I could imagine making a new source file InjectedBundleTestFunctions.cpp or InjectedBundleTesting.cpp and put some of the InjectedBundle function definitions in there to segregate them from the rest of the class. But this factoring seems to go too far in creating a new class just to hold some functions.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebKitTestRunnerSupport.h:40
&gt; +class WebKitTestRunnerSupport {
&gt; +
&gt; +public:
&gt; +
&gt; +    WebKitTestRunnerSupport();
&gt; +    ~WebKitTestRunnerSupport();
&gt; +
&gt; +    static int numberOfPages(WebCore::Frame*, float width, float height);
&gt; +};

To me it does not make sense to have this be a class. You don’t need a class just to hold some functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379735</commentid>
    <comment_count>4</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-05 10:48:31 -0700</bug_when>
    <thetext>&gt; I don’t think this function needs its own file. This code can just go inside InjectedBundle::numberOfPages. While I understand that we might want to put testing functions somewhere different than functions for other purposes, I would not call that file WebKitTestRunnerSupport, nor would I make a new class.
&gt; 
&gt; I could imagine making a new source file InjectedBundleTestFunctions.cpp or InjectedBundleTesting.cpp and put some of the InjectedBundle function definitions in there to segregate them from the rest of the class. But this factoring seems to go too far in creating a new class just to hold some functions.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebCoreSupport/WebKitTestRunnerSupport.h:40
&gt; &gt; +class WebKitTestRunnerSupport {
&gt; &gt; +
&gt; &gt; +public:
&gt; &gt; +
&gt; &gt; +    WebKitTestRunnerSupport();
&gt; &gt; +    ~WebKitTestRunnerSupport();
&gt; &gt; +
&gt; &gt; +    static int numberOfPages(WebCore::Frame*, float width, float height);
&gt; &gt; +};
&gt; 
&gt; To me it does not make sense to have this be a class. You don’t need a class just to hold some functions.

I was mimicking the DumpRenderTreeSupport of WebKit 1. But you are right, as we have InjectedBundle.cpp, we don&apos;t need a new file/class. New patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>379772</commentid>
    <comment_count>5</comment_count>
      <attachid>88288</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-05 11:38:26 -0700</bug_when>
    <thetext>Created attachment 88288
fix patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380070</commentid>
    <comment_count>6</comment_count>
      <attachid>88288</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-05 20:05:20 -0700</bug_when>
    <thetext>Comment on attachment 88288
fix patch 2

Clearing flags on attachment: 88288

Committed r83010: &lt;http://trac.webkit.org/changeset/83010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380071</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-05 20:05:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88239</attachid>
            <date>2011-04-05 08:27:06 -0700</date>
            <delta_ts>2011-04-05 11:38:26 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>42694_1.patch</filename>
            <type>text/plain</type>
            <size>20725</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyOTQwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDQtMDUgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
Lm51bWJlck9mUGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNjk0CisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJL
aXQyLnBybzoKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHA6Cisg
ICAgICAgIChXS0J1bmRsZU51bWJlck9mUGFnZXMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oklu
amVjdGVkQnVuZGxlOjpudW1iZXJPZlBhZ2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
S2l0OjpXZWJLaXRUZXN0UnVubmVyU3VwcG9ydDo6bnVtYmVyT2ZQYWdlcyk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5oOiBBZGRl
ZC4KKyAgICAgICAgKiB3aW4vV2ViS2l0Mi52Y3Byb2o6CisKIDIwMTEtMDQtMDUgIEFsZWphbmRy
byBHLiBDYXN0cm8gIDxhbGV4QGlnYWxpYS5jb20+CiAKICAgICAgICAgQW5vdGhlciBjb21waWxh
dGlvbiBmaXggYWZ0ZXIgcjgyOTI5IGhvcnJpYmxlIHBhdGNoIG1lcmdlLgpJbmRleDogU291cmNl
L1dlYktpdDIvR05VbWFrZWZpbGUuYW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvR05V
bWFrZWZpbGUuYW0JKHJldmlzaW9uIDgyOTM2KQorKysgU291cmNlL1dlYktpdDIvR05VbWFrZWZp
bGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTYzOCw2ICs2MzgsOCBAQCBsaWJXZWJLaXQyX2xhX1NP
VVJDRVMgPSBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJJbnNwZWN0b3JGcm9udGVuZENsaWVudC5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCBcCisJ
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRUZXN0UnVubmVy
U3VwcG9ydC5jcHAgXAorCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIFwKIAlTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIFwKIAlT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5jcHAg
XApJbmRleDogU291cmNlL1dlYktpdDIvV2ViS2l0Mi5wcm8KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvV2ViS2l0Mi5wcm8JKHJldmlzaW9uIDgyOTM2KQorKysgU291cmNlL1dlYktpdDIv
V2ViS2l0Mi5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTI3Myw2ICsyNzMsNyBAQCBIRUFERVJTICs9
IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkdlb2xvY2F0aW9uQ2xpZW50Lmgg
XAogICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmggXAog
ICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQu
aCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJLaXRUZXN0UnVubmVyU3VwcG9y
dC5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBvcHVwTWVudS5oIFwKICAg
ICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5oIFwKQEAgLTQ4
Nyw2ICs0ODgsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkdlb2xvY2F0aW9uQ2xpZW50LmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCBcCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5jcHAgXAogICAgIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBcCiAgICAgV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQb3B1cE1lbnUuY3BwIFwKICAgICBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlNlYXJjaFBvcHVwTWVudS5jcHAgXApJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
S2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gODI5MzYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtp
bmcgY29weSkKQEAgLTM1OCw2ICszNTgsOCBAQAogCQk1MUQwMkY2QTEzMkVDNzM3MDBCRUFBOTYg
LyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY3MTMyRUM3MzcwMEJFQUE5NiAvKiBXZWJJY29uRGF0
YWJhc2VNZXNzYWdlcy5oICovOyB9OwogCQk1MUQwMkY2QjEzMkVDNzM3MDBCRUFBOTYgLyogV2Vi
SWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFEMDJGNjgxMzJFQzczNzAwQkVBQTk2IC8qIFdl
Ykljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTFEMDJGNkMx
MzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRDAyRjY5MTMyRUM3Mzcw
MEJFQUE5NiAvKiBXZWJJY29uRGF0YWJhc2VQcm94eU1lc3NhZ2VzLmggKi87IH07CisJCTU2Njky
QTVCMTM0QTM5OTIwMDI2RUMxMSAvKiBXZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NjY5MkE1OTEzNEEzOTky
MDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuY3BwICovOyB9OworCQk1NjY5MkE1
QzEzNEEzOTkyMDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU2NjkyQTVBMTM0QTM5OTIwMDI2
RUMxMSAvKiBXZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5oICovOyB9OwogCQk2NTAxQkQxQTEyRjEy
NDM0MDBFOUYyNDggLyogV0tCdW5kbGVJbnNwZWN0b3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjVCODZGMTcxMkYxMUQ3QjAwQjdERDhBIC8qIFdL
QnVuZGxlSW5zcGVjdG9yLmNwcCAqLzsgfTsKIAkJNjU5QzU1MUUxMzAwMDY0MTAwMjVDMEMyIC8q
IEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTQ2QTgyOTEzMDAwMTY0MDAwQ0VCMUMg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmNwcCAqLzsgfTsKIAkJNjVC
ODZGMUUxMkYxMURFMzAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUI4NkYxODEyRjExRDdCMDBCN0RE
OEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
dWJsaWMsICk7IH07IH07CkBAIC0xMjQ3LDYgKzEyNDksOCBAQAogCQk1MUQwMkY2NzEzMkVDNzM3
MDBCRUFBOTYgLyogV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViSWNvbkRhdGFiYXNlTWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjgxMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25EYXRhYmFz
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYkljb25EYXRhYmFzZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTFEMDJGNjkxMzJFQzczNzAwQkVBQTk2IC8qIFdlYkljb25E
YXRhYmFzZVByb3h5TWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViSWNvbkRhdGFiYXNlUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1NjY5MkE1OTEzNEEzOTkyMDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5l
clN1cHBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1NjY5MkE1QTEzNEEz
OTkyMDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDcyOTQxMTZGRjcwQjAwRUU1Mzk2IC8qIFdlYlByb2Nlc3Mu
eGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViUHJvY2Vzcy54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDczRjExMTZGRjkwQzAwRUU1
Mzk2IC8qIEJhc2VUYXJnZXQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gQmFzZVRhcmdldC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjU0
NkE4MjkxMzAwMDE2NDAwMENFQjFDIC8qIEluamVjdGVkQnVuZGxlUGFnZVJlc291cmNlTG9hZENs
aWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1
bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMjQxOCw2ICsyNDIyLDggQEAKIAkJCQlCQzAzMkQ2RDEwRjQzNzhEMDA1OEMxNUEgLyog
V2ViSW5zcGVjdG9yQ2xpZW50LmggKi8sCiAJCQkJMUM4RTI1NkIxMjcwREUzODAwQkM3QkQwIC8q
IFdlYkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmNwcCAqLywKIAkJCQkxQzhFMjU2QTEyNzBERTM4
MDBCQzdCRDAgLyogV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaCAqLywKKwkJCQk1NjY5MkE1
OTEzNEEzOTkyMDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuY3BwICovLAorCQkJ
CTU2NjkyQTVBMTM0QTM5OTIwMDI2RUMxMSAvKiBXZWJLaXRUZXN0UnVubmVyU3VwcG9ydC5oICov
LAogCQkJCTFBM0U3MzYwMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
Y3BwICovLAogCQkJCTFBM0U3MzVGMTFDQzI2NTkwMDdCRDUzOSAvKiBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuaCAqLywKIAkJCQlEM0I5NDg0MjExRkY0QjY1MDAwMzJCMzkgLyogV2ViUG9wdXBNZW51
LmNwcCAqLywKQEAgLTM2NjYsNiArMzY3Miw3IEBACiAJCQkJNTE4MzQ1OTMxMzQ1MzJFOTAwOTJC
Njk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTE4Mzkz
NDkxMzQyOTdBNTAwMTg0MkVDIC8qIFRleHRJbnB1dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDMEZBNTI0MzEzNDU2OTRBMDAyOEU4QzIgLyogTGF5ZXJUcmVlSG9zdENBTWFjLmggaW4gSGVh
ZGVycyAqLywKKwkJCQk1NjY5MkE1QzEzNEEzOTkyMDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5l
clN1cHBvcnQuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50
UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNDI5MCw2ICs0Mjk3LDcgQEAKIAkJCQk1MTIz
Q0YxQjEzM0QyNjBBMDA1NkY4MDAgLyogV0tJY29uRGF0YWJhc2VDRy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGNkE5MDgxMzEzM0MyMDUxMDA4MkMzRjQgLyogV2ViQ29va2llTWFuYWdlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUY2RDYzMkJDMTMzRDE5ODIwMDc0M0Q3NyAvKiBXZWJDb29r
aWVNYW5hZ2VyUHJveHlNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk1NjY5MkE1QjEzNEEzOTky
MDAyNkVDMTEgLyogV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE4MzQ1OTIxMzQ1MzJFOTAwOTJCNjk2IC8qIFdlYkljb25EYXRhYmFzZUNsaWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
SW5qZWN0ZWRCdW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwCShyZXZpc2lvbiA4MjkzNikKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiV2ViQ29udGV4
dE1lc3NhZ2VLaW5kcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogI2lu
Y2x1ZGUgIldlYkRhdGFiYXNlTWFuYWdlci5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5j
bHVkZSAiV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAj
aW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
QEAgLTE0MSw2ICsxNDMsMTEgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0RGF0YWJhc2VRdW90
YSh1aQogICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuc2V0UXVvdGFGb3JPcmlnaW4o
ImZpbGU6Ly8vIiwgcXVvdGEpOwogfQogCitpbnQgSW5qZWN0ZWRCdW5kbGU6Om51bWJlck9mUGFn
ZXMoV2ViRnJhbWUqIGZyYW1lLCBkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdl
SGVpZ2h0SW5QaXhlbHMpCit7CisgICAgcmV0dXJuIFdlYktpdFRlc3RSdW5uZXJTdXBwb3J0Ojpu
dW1iZXJPZlBhZ2VzKGZyYW1lLT5jb3JlRnJhbWUoKSwgcGFnZVdpZHRoSW5QaXhlbHMsIHBhZ2VI
ZWlnaHRJblBpeGVscyk7Cit9CisKIHN0YXRpYyBQYXNzT3duUHRyPFZlY3RvcjxTdHJpbmc+ID4g
dG9TdHJpbmdWZWN0b3IoSW1tdXRhYmxlQXJyYXkqIHBhdHRlcm5zKQogewogICAgIGlmICghcGF0
dGVybnMpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0lu
amVjdGVkQnVuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCShyZXZpc2lvbiA4MjkzNikKKysrIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNjAsNiArNjAsNyBAQCB0eXBlZGVmIHZvaWQqIFBsYXRmb3JtQnVuZGxl
OwogY2xhc3MgSW1tdXRhYmxlQXJyYXk7CiBjbGFzcyBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxk
OwogY2xhc3MgV2ViQ2VydGlmaWNhdGVJbmZvOworY2xhc3MgV2ViRnJhbWU7CiBjbGFzcyBXZWJQ
YWdlOwogY2xhc3MgV2ViUGFnZUdyb3VwUHJveHk7CiAKQEAgLTkyLDYgKzkzLDcgQEAgcHVibGlj
OgogICAgIHZvaWQgb3ZlcnJpZGVYU1NBdWRpdG9yRW5hYmxlZEZvclRlc3RSdW5uZXIoV2ViUGFn
ZUdyb3VwUHJveHkqIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKTsKICAgICB2b2lkIG92ZXJyaWRl
QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91
cFByb3h5KiwgYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMo
V2ViUGFnZUdyb3VwUHJveHkqLCBib29sKTsKKyAgICBpbnQgbnVtYmVyT2ZQYWdlcyhXZWJGcmFt
ZSosIGRvdWJsZSwgZG91YmxlKTsKIAogICAgIC8vIFVzZXJDb250ZW50IEFQSQogICAgIHZvaWQg
YWRkVXNlclNjcmlwdChXZWJQYWdlR3JvdXBQcm94eSosIEluamVjdGVkQnVuZGxlU2NyaXB0V29y
bGQqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSwgY29uc3QgU3RyaW5nJiB1cmwsIEltbXV0YWJsZUFy
cmF5KiB3aGl0ZWxpc3QsIEltbXV0YWJsZUFycmF5KiBibGFja2xpc3QsIFdlYkNvcmU6OlVzZXJT
Y3JpcHRJbmplY3Rpb25UaW1lLCBXZWJDb3JlOjpVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCShyZXZpc2lvbiA4MjkzNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNTIsMyArMTUyLDggQEAgdm9pZCBXS0J1bmRsZVNldERhdGFiYXNlUXVv
dGEoV0tCdW5kbGVSZQogewogICAgIHRvSW1wbChidW5kbGVSZWYpLT5zZXREYXRhYmFzZVF1b3Rh
KHF1b3RhKTsKIH0KKworaW50IFdLQnVuZGxlTnVtYmVyT2ZQYWdlcyhXS0J1bmRsZVJlZiBidW5k
bGVSZWYsIFdLQnVuZGxlRnJhbWVSZWYgZnJhbWVSZWYsIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVs
cywgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscykKK3sKKyAgICByZXR1cm4gdG9JbXBsKGJ1bmRs
ZVJlZiktPm51bWJlck9mUGFnZXModG9JbXBsKGZyYW1lUmVmKSwgcGFnZVdpZHRoSW5QaXhlbHMs
IHBhZ2VIZWlnaHRJblBpeGVscyk7Cit9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2
YXRlLmgJKHJldmlzaW9uIDgyOTM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjks
NiArNjksNyBAQCBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZU92ZXJyaWRlQWxsb3dVbml2CiBXS19F
WFBPUlQgdm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhXS0J1bmRs
ZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVk
KTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMoV0tCdW5kbGVSZWYg
YnVuZGxlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VRdW90YShXS0J1bmRs
ZVJlZiBidW5kbGUsIHVpbnQ2NF90KTsKK1dLX0VYUE9SVCBpbnQgV0tCdW5kbGVOdW1iZXJPZlBh
Z2VzKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVGcmFtZVJlZiBmcmFtZVJlZiwgZG91Ymxl
IHBhZ2VXaWR0aEluUGl4ZWxzLCBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKIAogI2lmZGVm
IF9fY3BsdXNwbHVzCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYktpdFRlc3RSdW5uZXJTdXBwb3J0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYktpdFRlc3RSdW5uZXJTdXBwb3J0
LmNwcAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQuY3BwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQ2IEBACisvKgorICAgIENvcHlyaWdodCAoQykgMjAxMSBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5j
LgorCisgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCisgICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNl
bnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICAgIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4K
KyovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJLaXRUZXN0UnVubmVyU3Vw
cG9ydC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFNpemUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZVZpZXcuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ByaW50Q29udGV4dC5oPgorCit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2ludCBXZWJL
aXRUZXN0UnVubmVyU3VwcG9ydDo6bnVtYmVyT2ZQYWdlcyhXZWJDb3JlOjpGcmFtZSogZnJhbWUs
IGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpCit7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAg
cmV0dXJuIC0xOworICAgIGlmICghd2lkdGgpCisgICAgICAgIHdpZHRoID0gZnJhbWUtPnZpZXco
KS0+d2lkdGgoKTsKKyAgICBpZiAoIWhlaWdodCkKKyAgICAgICAgaGVpZ2h0ID0gZnJhbWUtPnZp
ZXcoKS0+aGVpZ2h0KCk7CisKKyAgICByZXR1cm4gUHJpbnRDb250ZXh0OjpudW1iZXJPZlBhZ2Vz
KGZyYW1lLCBGbG9hdFNpemUod2lkdGgsIGhlaWdodCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
S2l0VGVzdFJ1bm5lclN1cHBvcnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYktpdFRlc3RSdW5uZXJTdXBwb3J0LmgJKHJldmlzaW9u
IDApCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYktpdFRl
c3RSdW5uZXJTdXBwb3J0LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgICAg
Q29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFy
eSgtaWVzKQorICAgIENvcHlyaWdodCAoQykgMjAxMSBBcHBsZSBJbmMuCisKKyAgICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
ICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQ
dWJsaWMKKyAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisKKyAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAgICBidXQgV0lUSE9V
VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICAg
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisgICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisKKyAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAgICB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgorKi8KKworI2lmbmRlZiBX
ZWJLaXRUZXN0UnVubmVyU3VwcG9ydF9oCisjZGVmaW5lIFdlYktpdFRlc3RSdW5uZXJTdXBwb3J0
X2gKKworI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBGcmFtZTsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYktp
dFRlc3RSdW5uZXJTdXBwb3J0IHsKKworcHVibGljOgorCisgICAgV2ViS2l0VGVzdFJ1bm5lclN1
cHBvcnQoKTsKKyAgICB+V2ViS2l0VGVzdFJ1bm5lclN1cHBvcnQoKTsKKworICAgIHN0YXRpYyBp
bnQgbnVtYmVyT2ZQYWdlcyhXZWJDb3JlOjpGcmFtZSosIGZsb2F0IHdpZHRoLCBmbG9hdCBoZWln
aHQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJLaXRUZXN0
UnVubmVyU3VwcG9ydF9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi52Y3Byb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIudmNwcm9qCShyZXZpc2lv
biA4MjkzNikKKysrIFNvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLnZjcHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTY5NCw2ICsxNjk0LDE0IEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZp
bGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxXZWJQcm9jZXNzXFdlYkNvcmVTdXBwb3J0XFdlYktp
dFRlc3RSdW5uZXJTdXBwb3J0LmNwcCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQor
CQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViS2l0VGVz
dFJ1bm5lclN1cHBvcnQuaCIKKwkJCQkJPgorCQkJCTwvRmlsZT4KKwkJCQk8RmlsZQogCQkJCQlS
ZWxhdGl2ZVBhdGg9Ii4uXFdlYlByb2Nlc3NcV2ViQ29yZVN1cHBvcnRcV2ViUGxhdGZvcm1TdHJh
dGVnaWVzLmNwcCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyOTQwKQorKysgVG9vbHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDQtMDUgIENo
YW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250
cm9sbGVyLm51bWJlck9mUGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQyNjk0CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdUUjo6TGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mUGFnZXMpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKwogMjAxMS0wNC0wNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IExhc3psbyBHb21ib3MuCkluZGV4OiBUb29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAkocmV2aXNpb24gODI5MzYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNyArMjksOSBAQAogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlLmgiCiAjaW5jbHVkZSAi
SW5qZWN0ZWRCdW5kbGVQYWdlLmgiCiAjaW5jbHVkZSAiSlNMYXlvdXRUZXN0Q29udHJvbGxlci5o
IgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgogI2luY2x1ZGUgIlN0cmluZ0Z1bmN0aW9u
cy5oIgorI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVGcmFtZS5o
PgogI2luY2x1ZGUgPFdlYktpdDIvV0tCdW5kbGVGcmFtZVByaXZhdGUuaD4KQEAgLTMyMyw2ICsz
MjUsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dGaWxlQQogICAgIFdL
QnVuZGxlU2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKEluamVjdGVkQnVuZGxlOjpzaGFy
ZWQoKS5idW5kbGUoKSwgSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFi
bGVkKTsKIH0KIAoraW50IExheW91dFRlc3RDb250cm9sbGVyOjpudW1iZXJPZlBhZ2VzKGRvdWJs
ZSBwYWdlV2lkdGhJblBpeGVscywgZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscykKK3sKKyAgICBX
S0J1bmRsZUZyYW1lUmVmIG1haW5GcmFtZSA9IFdLQnVuZGxlUGFnZUdldE1haW5GcmFtZShJbmpl
Y3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZSgpLT5wYWdlKCkpOworICAgIHJldHVybiBXS0J1bmRs
ZU51bWJlck9mUGFnZXMoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRsZSgpLCBtYWluRnJh
bWUsIHBhZ2VXaWR0aEluUGl4ZWxzLCBwYWdlSGVpZ2h0SW5QaXhlbHMpOworfQorCiB1bnNpZ25l
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6d2luZG93Q291bnQoKQogewogICAgIHJldHVybiBJbmpl
Y3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUNvdW50KCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oCShyZXZpc2lvbiA4MjkzNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTEyLDYg
KzExMiw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyQWxsRGF0YWJhc2VzKCk7CiAgICAgdm9p
ZCBzZXREYXRhYmFzZVF1b3RhKHVpbnQ2NF90KTsKIAorICAgIC8vIFByaW50aW5nCisgICAgaW50
IG51bWJlck9mUGFnZXMoZG91YmxlIHBhZ2VXaWR0aEluUGl4ZWxzLCBkb3VibGUgcGFnZUhlaWdo
dEluUGl4ZWxzKTsKKwogICAgIGVudW0gV2hhdFRvRHVtcCB7IFJlbmRlclRyZWUsIE1haW5GcmFt
ZVRleHQsIEFsbEZyYW1lc1RleHQgfTsKICAgICBXaGF0VG9EdW1wIHdoYXRUb0R1bXAoKSBjb25z
dCB7IHJldHVybiBtX3doYXRUb0R1bXA7IH0KIApJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9M
YXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9uIDgyOTM2KQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTY0LDYgKzY0LDkgQEAgbW9kdWxlIFdUUiB7CiAgICAgICAg
IHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5KCk7CiAgICAgICAgIHZvaWQgZGlzcGxheSgp
OwogCisgICAgICAgIC8vIFByaW50aW5nCisgICAgICAgIGludCBudW1iZXJPZlBhZ2VzKGluIGRv
dWJsZSBwYWdlV2lkdGhJblBpeGVscywgaW4gZG91YmxlIHBhZ2VIZWlnaHRJblBpeGVscyk7CisK
ICAgICAgICAgLy8gQW5pbWF0aW9uIHRlc3RpbmcuCiAgICAgICAgIGludCBudW1iZXJPZkFjdGl2
ZUFuaW1hdGlvbnMoKTsKICAgICAgICAgYm9vbGVhbiBwYXVzZUFuaW1hdGlvbkF0VGltZU9uRWxl
bWVudFdpdGhJZChpbiBET01TdHJpbmcgYW5pbWF0aW9uTmFtZSwgaW4gZG91YmxlIHRpbWUsIGlu
IERPTVN0cmluZyBlbGVtZW50SWQpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gODI5NDApCisrKyBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0w
NC0wNSAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2OTQKKworICAgICAgICBVbnNraXAgcGFzc2VkIHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL3F0LXdrMi9Ta2lwcGVkOgorCiAyMDExLTA0LTA1ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtp
dC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMt
d2syL1NraXBwZWQJKHJldmlzaW9uIDgyOTM2KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
LXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNDQ3LDExICsxNDQ3LDYgQEAgcHJpbnRp
bmcvcGFnZS1ydWxlLWluLW1lZGlhLXF1ZXJ5Lmh0bWwKIHByaW50aW5nL3NldFByaW50aW5nLmh0
bWwKIHByaW50aW5nL3NpbXVsdGFuZW91cy1wb3NpdGlvbi1mbG9hdC1jaGFuZ2UuaHRtbAogCi0j
IFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdl
cwotIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNjk0PgotcHJp
bnRpbmcvbnVtYmVyT2ZQYWdlcy5odG1sCi1wcmludGluZy9zdHJldGNoLXRvLXZpZXctaGVpZ2h0
Lmh0bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmlz
UGFnZUJveFZpc2libGUKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjY5NT4KIHByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEuaHRtbApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQtd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQtd2syL1NraXBwZWQJKHJldmlzaW9uIDgyOTM3KQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQtd2syL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE4MzQsMTEgKzE4MzQsNiBA
QCBwcmludGluZy9tZWRpYS1xdWVyaWVzLXByaW50Lmh0bWwKIHByaW50aW5nL3BhZ2UtcnVsZS1p
bi1tZWRpYS1xdWVyeS5odG1sCiBwcmludGluZy9zZXRQcmludGluZy5odG1sCiAKLSMgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5udW1iZXJPZlBhZ2VzCi0jIDxo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2OTQ+Ci1wcmludGluZy9u
dW1iZXJPZlBhZ2VzLmh0bWwKLXByaW50aW5nL3N0cmV0Y2gtdG8tdmlldy1oZWlnaHQuaHRtbAot
CiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuaXNQYWdlQm94
VmlzaWJsZQogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNjk1
PgogcHJpbnRpbmcvcGFnZS1mb3JtYXQtZGF0YS5odG1sCg==
</data>
<flag name="review"
          id="80716"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88288</attachid>
            <date>2011-04-05 11:38:26 -0700</date>
            <delta_ts>2011-04-05 20:05:20 -0700</delta_ts>
            <desc>fix patch 2</desc>
            <filename>42694_2.patch</filename>
            <type>text/plain</type>
            <size>10349</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyOTYwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQtMDUgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
Lm51bWJlck9mUGFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTQyNjk0CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlLmNwcDoKKyAgICAgICAgKFdLQnVuZGxlTnVtYmVyT2ZQYWdlcyk6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5qZWN0ZWRCdW5kbGU6Om51bWJlck9mUGFnZXMpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKwogMjAxMS0wNC0w
NSAgQWRhbSBSb2JlbiAgPGFyb2JlbkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZyB3b3JrIGluIFdlYktpdDIgb24gV2luZG93cwpJbmRleDogU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9Jbmpl
Y3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDgyOTM2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM2LDE1ICszNiwxOSBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZXNzYWdlS2luZHMuaCIKICNp
bmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhYmFzZU1h
bmFnZXIuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9KU0xvY2suaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9GcmFtZVZpZXcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dDQ29udHJvbGxlci5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvSlNET01XaW5kb3cuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUHJpbnRD
b250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPHd0Zi9P
d25BcnJheVB0ci5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzT3duQXJyYXlQdHIuaD4KQEAgLTE0MSw2
ICsxNDUsMTkgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6c2V0RGF0YWJhc2VRdW90YSh1aQogICAg
IFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuc2V0UXVvdGFGb3JPcmlnaW4oImZpbGU6Ly8v
IiwgcXVvdGEpOwogfQogCitpbnQgSW5qZWN0ZWRCdW5kbGU6Om51bWJlck9mUGFnZXMoV2ViRnJh
bWUqIGZyYW1lLCBkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdlSGVpZ2h0SW5Q
aXhlbHMpCit7CisgICAgRnJhbWUqIGNvcmVGcmFtZSA9IGZyYW1lID8gZnJhbWUtPmNvcmVGcmFt
ZSgpIDogMDsKKyAgICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIC0xOworICAgIGlm
ICghcGFnZVdpZHRoSW5QaXhlbHMpCisgICAgICAgIHBhZ2VXaWR0aEluUGl4ZWxzID0gY29yZUZy
YW1lLT52aWV3KCktPndpZHRoKCk7CisgICAgaWYgKCFwYWdlSGVpZ2h0SW5QaXhlbHMpCisgICAg
ICAgIHBhZ2VIZWlnaHRJblBpeGVscyA9IGNvcmVGcmFtZS0+dmlldygpLT5oZWlnaHQoKTsKKwor
ICAgIHJldHVybiBQcmludENvbnRleHQ6Om51bWJlck9mUGFnZXMoY29yZUZyYW1lLCBGbG9hdFNp
emUocGFnZVdpZHRoSW5QaXhlbHMsIHBhZ2VIZWlnaHRJblBpeGVscykpOworfQorCiBzdGF0aWMg
UGFzc093blB0cjxWZWN0b3I8U3RyaW5nPiA+IHRvU3RyaW5nVmVjdG9yKEltbXV0YWJsZUFycmF5
KiBwYXR0ZXJucykKIHsKICAgICBpZiAoIXBhdHRlcm5zKQpJbmRleDogU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUu
aAkocmV2aXNpb24gODI5MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAg
dHlwZWRlZiB2b2lkKiBQbGF0Zm9ybUJ1bmRsZTsKIGNsYXNzIEltbXV0YWJsZUFycmF5OwogY2xh
c3MgSW5qZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZDsKIGNsYXNzIFdlYkNlcnRpZmljYXRlSW5mbzsK
K2NsYXNzIFdlYkZyYW1lOwogY2xhc3MgV2ViUGFnZTsKIGNsYXNzIFdlYlBhZ2VHcm91cFByb3h5
OwogCkBAIC05Miw2ICs5Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG92ZXJyaWRlWFNTQXVkaXRv
ckVuYWJsZWRGb3JUZXN0UnVubmVyKFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wg
ZW5hYmxlZCk7CiAgICAgdm9pZCBvdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVV
UkxzRm9yVGVzdFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogICAgIHZvaWQgc2V0
QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKFdlYlBhZ2VHcm91cFByb3h5KiwgYm9vbCk7Cisg
ICAgaW50IG51bWJlck9mUGFnZXMoV2ViRnJhbWUqLCBkb3VibGUsIGRvdWJsZSk7CiAKICAgICAv
LyBVc2VyQ29udGVudCBBUEkKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoV2ViUGFnZUdyb3VwUHJv
eHkqLCBJbmplY3RlZEJ1bmRsZVNjcmlwdFdvcmxkKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNv
bnN0IFN0cmluZyYgdXJsLCBJbW11dGFibGVBcnJheSogd2hpdGVsaXN0LCBJbW11dGFibGVBcnJh
eSogYmxhY2tsaXN0LCBXZWJDb3JlOjpVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgV2ViQ29yZTo6
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAko
cmV2aXNpb24gODI5MzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUyLDMgKzE1Miw4IEBA
IHZvaWQgV0tCdW5kbGVTZXREYXRhYmFzZVF1b3RhKFdLQnVuZGxlUmUKIHsKICAgICB0b0ltcGwo
YnVuZGxlUmVmKS0+c2V0RGF0YWJhc2VRdW90YShxdW90YSk7CiB9CisKK2ludCBXS0J1bmRsZU51
bWJlck9mUGFnZXMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZUZyYW1lUmVmIGZyYW1l
UmVmLCBkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMp
Cit7CisgICAgcmV0dXJuIHRvSW1wbChidW5kbGVSZWYpLT5udW1iZXJPZlBhZ2VzKHRvSW1wbChm
cmFtZVJlZiksIHBhZ2VXaWR0aEluUGl4ZWxzLCBwYWdlSGVpZ2h0SW5QaXhlbHMpOworfQpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJpdmF0ZS5oCShyZXZpc2lvbiA4MjkzNikKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2
YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDYgKzY5LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tC
dW5kbGVPdmVycmlkZUFsbG93VW5pdgogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVTZXRBbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMoV0tCdW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91
cFJlZiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZUNs
ZWFyQWxsRGF0YWJhc2VzKFdLQnVuZGxlUmVmIGJ1bmRsZSk7CiBXS19FWFBPUlQgdm9pZCBXS0J1
bmRsZVNldERhdGFiYXNlUXVvdGEoV0tCdW5kbGVSZWYgYnVuZGxlLCB1aW50NjRfdCk7CitXS19F
WFBPUlQgaW50IFdLQnVuZGxlTnVtYmVyT2ZQYWdlcyhXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVu
ZGxlRnJhbWVSZWYgZnJhbWVSZWYsIGRvdWJsZSBwYWdlV2lkdGhJblBpeGVscywgZG91YmxlIHBh
Z2VIZWlnaHRJblBpeGVscyk7CiAKICNpZmRlZiBfX2NwbHVzcGx1cwogfQpJbmRleDogVG9vbHMv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gODI5NjAp
CisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0wNC0wNSAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5
b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI2OTQKKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvTGF5b3V0VGVzdENvbnRyb2xsZXIuaWRsOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV1RSOjpMYXlvdXRUZXN0Q29udHJvbGxlcjo6bnVtYmVyT2ZQYWdl
cyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oOgorCiAyMDExLTA0LTA1ICBDYXJvbCBTemFibyAgPGNhcm9sQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwCShyZXZpc2lvbiA4MjkzNikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsy
OSw5IEBACiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKICNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZVBhZ2UuaCIKICNpbmNsdWRlICJKU0xheW91dFRlc3RDb250cm9sbGVyLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1XZWJWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nRnVuY3Rpb25zLmgiCisjaW5j
bHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKICNpbmNsdWRlIDxXZWJLaXQyL1dLQnVuZGxlQmFja0Zv
cndhcmRMaXN0Lmg+CiAjaW5jbHVkZSA8V2ViS2l0Mi9XS0J1bmRsZUZyYW1lLmg+CiAjaW5jbHVk
ZSA8V2ViS2l0Mi9XS0J1bmRsZUZyYW1lUHJpdmF0ZS5oPgpAQCAtMzIzLDYgKzMyNSwxMiBAQCB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd0ZpbGVBCiAgICAgV0tCdW5kbGVTZXRB
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoSW5qZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLmJ1bmRs
ZSgpLCBJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQog
CitpbnQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om51bWJlck9mUGFnZXMoZG91YmxlIHBhZ2VXaWR0
aEluUGl4ZWxzLCBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKQoreworICAgIFdLQnVuZGxlRnJh
bWVSZWYgbWFpbkZyYW1lID0gV0tCdW5kbGVQYWdlR2V0TWFpbkZyYW1lKEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5wYWdlKCktPnBhZ2UoKSk7CisgICAgcmV0dXJuIFdLQnVuZGxlTnVtYmVyT2ZQ
YWdlcyhJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIG1haW5GcmFtZSwgcGFnZVdp
ZHRoSW5QaXhlbHMsIHBhZ2VIZWlnaHRJblBpeGVscyk7Cit9CisKIHVuc2lnbmVkIExheW91dFRl
c3RDb250cm9sbGVyOjp3aW5kb3dDb3VudCgpCiB7CiAgICAgcmV0dXJuIEluamVjdGVkQnVuZGxl
OjpzaGFyZWQoKS5wYWdlQ291bnQoKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJl
dmlzaW9uIDgyOTM2KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTIsNiArMTEyLDkgQEAg
cHVibGljOgogICAgIHZvaWQgY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB2b2lkIHNldERhdGFi
YXNlUXVvdGEodWludDY0X3QpOwogCisgICAgLy8gUHJpbnRpbmcKKyAgICBpbnQgbnVtYmVyT2ZQ
YWdlcyhkb3VibGUgcGFnZVdpZHRoSW5QaXhlbHMsIGRvdWJsZSBwYWdlSGVpZ2h0SW5QaXhlbHMp
OworCiAgICAgZW51bSBXaGF0VG9EdW1wIHsgUmVuZGVyVHJlZSwgTWFpbkZyYW1lVGV4dCwgQWxs
RnJhbWVzVGV4dCB9OwogICAgIFdoYXRUb0R1bXAgd2hhdFRvRHVtcCgpIGNvbnN0IHsgcmV0dXJu
IG1fd2hhdFRvRHVtcDsgfQogCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RD
b250cm9sbGVyLmlkbAkocmV2aXNpb24gODI5MzYpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL0xheW91dFRlc3RDb250cm9sbGVyLmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjQsNiArNjQsOSBAQCBtb2R1bGUgV1RSIHsKICAgICAgICAgdm9pZCByZXBh
aW50U3dlZXBIb3Jpem9udGFsbHkoKTsKICAgICAgICAgdm9pZCBkaXNwbGF5KCk7CiAKKyAgICAg
ICAgLy8gUHJpbnRpbmcKKyAgICAgICAgaW50IG51bWJlck9mUGFnZXMoaW4gZG91YmxlIHBhZ2VX
aWR0aEluUGl4ZWxzLCBpbiBkb3VibGUgcGFnZUhlaWdodEluUGl4ZWxzKTsKKwogICAgICAgICAv
LyBBbmltYXRpb24gdGVzdGluZy4KICAgICAgICAgaW50IG51bWJlck9mQWN0aXZlQW5pbWF0aW9u
cygpOwogICAgICAgICBib29sZWFuIHBhdXNlQW5pbWF0aW9uQXRUaW1lT25FbGVtZW50V2l0aElk
KGluIERPTVN0cmluZyBhbmltYXRpb25OYW1lLCBpbiBkb3VibGUgdGltZSwgaW4gRE9NU3RyaW5n
IGVsZW1lbnRJZCk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA4Mjk2MCkKKysrIExheW91dFRlc3RzL0No
YW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDExLTA0LTA1ICBDaGFu
ZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJv
bGxlci5udW1iZXJPZlBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MjY5NAorCisgICAgICAgIFVuc2tpcCBwYXNzZWQgdGVzdHMuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQtd2sy
L1NraXBwZWQ6CisKIDIwMTEtMDQtMDUgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNv
bT4KIAogICAgICAgIFVucmV2aWV3ZWQsIHRlbXBvcmFyaWx5IHN1cHByZXNzIENocm9taXVtIGZh
aWx1cmVzIGZvciB0ZXN0cyBpbiByODI5NDcuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMtd2syL1NraXBwZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdr
Mi9Ta2lwcGVkCShyZXZpc2lvbiA4MjkzNikKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13
azIvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAtMTQ0NywxMSArMTQ0Nyw2IEBAIHByaW50aW5n
L3BhZ2UtcnVsZS1pbi1tZWRpYS1xdWVyeS5odG1sCiBwcmludGluZy9zZXRQcmludGluZy5odG1s
CiBwcmludGluZy9zaW11bHRhbmVvdXMtcG9zaXRpb24tZmxvYXQtY2hhbmdlLmh0bWwKIAotIyBX
ZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLm51bWJlck9mUGFnZXMK
LSMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjY5ND4KLXByaW50
aW5nL251bWJlck9mUGFnZXMuaHRtbAotcHJpbnRpbmcvc3RyZXRjaC10by12aWV3LWhlaWdodC5o
dG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5pc1Bh
Z2VCb3hWaXNpYmxlCiAjIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDI2OTU+CiBwcmludGluZy9wYWdlLWZvcm1hdC1kYXRhLmh0bWwKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL3F0LXdrMi9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0LXdrMi9Ta2lwcGVkCShyZXZpc2lvbiA4MjkzNykKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL3F0LXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xODM0LDExICsxODM0LDYgQEAg
cHJpbnRpbmcvbWVkaWEtcXVlcmllcy1wcmludC5odG1sCiBwcmludGluZy9wYWdlLXJ1bGUtaW4t
bWVkaWEtcXVlcnkuaHRtbAogcHJpbnRpbmcvc2V0UHJpbnRpbmcuaHRtbAogCi0jIFdlYktpdFRl
c3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIubnVtYmVyT2ZQYWdlcwotIyA8aHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNjk0PgotcHJpbnRpbmcvbnVt
YmVyT2ZQYWdlcy5odG1sCi1wcmludGluZy9zdHJldGNoLXRvLXZpZXctaGVpZ2h0Lmh0bWwKLQog
IyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmlzUGFnZUJveFZp
c2libGUKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjY5NT4K
IHByaW50aW5nL3BhZ2UtZm9ybWF0LWRhdGEuaHRtbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>