<?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>57572</bug_id>
          
          <creation_ts>2011-03-31 13:40:10 -0700</creation_ts>
          <short_desc>WebKitTestRunner needs layoutTestController.setAllowFileAccessFromFileURLs</short_desc>
          <delta_ts>2011-04-27 14:54:32 -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>Tools / Tests</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>59638</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chang Shu">cshu</reporter>
          <assigned_to name="Chang Shu">cshu</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>377405</commentid>
    <comment_count>0</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-03-31 13:40:10 -0700</bug_when>
    <thetext>Fails at least:
fast/frames/location-change-no-file-access.html
fast/xmlhttprequest/xmlhttprequest-no-file-access.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378786</commentid>
    <comment_count>1</comment_count>
      <attachid>88059</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 08:00:03 -0700</bug_when>
    <thetext>Created attachment 88059
fix patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378802</commentid>
    <comment_count>2</comment_count>
      <attachid>88059</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-04-04 08:34:13 -0700</bug_when>
    <thetext>Comment on attachment 88059
fix patch

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

&gt; LayoutTests/platform/mac-wk2/Skipped:1443
&gt; -# WebKitTestRunner needs layoutTestController.setAllowFileAccessFromFileURLs
&gt; -# &lt;https://bugs.webkit.org/show_bug.cgi?id=57572&gt;
&gt; -fast/frames/location-change-no-file-access.html
&gt;  fast/xmlhttprequest/xmlhttprequest-no-file-access.html
&gt; -
&gt;  fast/xmlhttprequest/xmlhttprequest-nonexistent-file.html

This orphans these still-skipped tests in a section with no label. It’s better to move them to an appropriately-labeled section.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378806</commentid>
    <comment_count>3</comment_count>
      <attachid>88064</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 08:43:20 -0700</bug_when>
    <thetext>Created attachment 88064
fix patch 2: follow review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378818</commentid>
    <comment_count>4</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-04 09:06:03 -0700</bug_when>
    <thetext>Darin, can you r+ again? thx</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378857</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 10:18:40 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 88059:

http/tests/websocket/tests/multiple-connections.html bug 53825 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378904</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 11:27:24 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 88064:

java/lc3/JSBoolean/boolean-002-n.html bug 57769 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378908</commentid>
    <comment_count>7</comment_count>
      <attachid>88064</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 11:29:38 -0700</bug_when>
    <thetext>Comment on attachment 88064
fix patch 2: follow review

Clearing flags on attachment: 88064

Committed r82848: &lt;http://trac.webkit.org/changeset/82848&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378909</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-04 11:29:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389339</commentid>
    <comment_count>9</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-20 10:44:14 -0700</bug_when>
    <thetext>It is not necessary to update Webkit2 preference while calling LayoutTestController.setAllowFileAccessFromFileURLs and LayoutTestController.setAllowUniveralAccessFromFileURLs. I am going to upload a patch for code refactory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>389342</commentid>
    <comment_count>10</comment_count>
      <attachid>90360</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-04-20 10:49:26 -0700</bug_when>
    <thetext>Created attachment 90360
fix patch: code refactory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392924</commentid>
    <comment_count>11</comment_count>
      <attachid>90360</attachid>
    <who name="Laszlo Gombos">laszlo.gombos</who>
    <bug_when>2011-04-26 16:04:35 -0700</bug_when>
    <thetext>Comment on attachment 90360
fix patch: code refactory

lgtm, r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393043</commentid>
    <comment_count>12</comment_count>
      <attachid>90360</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-26 16:43:14 -0700</bug_when>
    <thetext>Comment on attachment 90360
fix patch: code refactory

Clearing flags on attachment: 90360

Committed r84980: &lt;http://trac.webkit.org/changeset/84980&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>393044</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-26 16:43:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88059</attachid>
            <date>2011-04-04 08:00:03 -0700</date>
            <delta_ts>2011-04-04 08:43:20 -0700</delta_ts>
            <desc>fix patch</desc>
            <filename>57572_1.patch</filename>
            <type>text/plain</type>
            <size>11414</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODM0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMDQgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVB
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVyKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAoV0tCdW5kbGVTZXRBbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKwogMjAxMS0wNC0wNCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFydGluIFJvYmluc29uLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmNwcAkocmV2aXNpb24gODI4MjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDgg
QEAgc3RhdGljIGJvb2wgaGFzWFNTQXVkaXRvckVuYWJsZWRUZXN0UnVubgogc3RhdGljIGJvb2wg
eHNzQXVkaXRvckVuYWJsZWRUZXN0UnVubmVyT3ZlcnJpZGU7CiBzdGF0aWMgYm9vbCBoYXNBbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZTsKIHN0YXRpYyBi
b29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJyaWRlOwor
c3RhdGljIGJvb2wgaGFzQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJy
aWRlOworc3RhdGljIGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92
ZXJyaWRlOwogCiBXZWJQcmVmZXJlbmNlc1N0b3JlOjpXZWJQcmVmZXJlbmNlc1N0b3JlKCkKIHsK
QEAgLTcyLDYgKzc0LDkgQEAgYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpkZWNvZGUoQ29yZUlQ
QwogICAgIGlmIChoYXNBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJP
dmVycmlkZSkKICAgICAgICAgcy5tX2Jvb2xWYWx1ZXMuc2V0KFdlYlByZWZlcmVuY2VzS2V5Ojph
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0tleSgpLCBhbGxvd1VuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZSk7CiAKKyAgICBpZiAoaGFzQWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJyaWRlKQorICAgICAgICBzLm1fYm9vbFZh
bHVlcy5zZXQoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0tl
eSgpLCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNUZXN0UnVubmVyT3ZlcnJpZGUpOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTg3LDYgKzkyLDEyIEBAIHZvaWQgV2ViUHJlZmVyZW5j
ZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd1UKICAgICBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc1Rlc3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7CiB9CiAKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVy
KGJvb2wgZW5hYmxlZCkKK3sKKyAgICBoYXNBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNUZXN0
UnVubmVyT3ZlcnJpZGUgPSB0cnVlOworICAgIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc1Rl
c3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXNTdG9y
ZTo6cmVtb3ZlVGVzdFJ1bm5lck92ZXJyaWRlcygpCiB7CiAgICAgaGFzWFNTQXVkaXRvckVuYWJs
ZWRUZXN0UnVubmVyT3ZlcnJpZGUgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAkocmV2aXNpb24gODI4MjUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjks
NiArMTY5LDcgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewogCiAgICAgc3RhdGljIHZv
aWQgb3ZlcnJpZGVYU1NBdWRpdG9yRW5hYmxlZEZvclRlc3RSdW5uZXIoYm9vbCk7CiAgICAgc3Rh
dGljIHZvaWQgb3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RS
dW5uZXIoYm9vbCk7CisgICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVBbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNGb3JUZXN0UnVubmVyKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RS
dW5uZXJPdmVycmlkZXMoKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc3RyaW5n
VmFsdWVzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDgyODI1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsMTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6b3ZlcnJpZGVBbGxvd1VuaXZlcgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRB
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGVkKTsKIH0KIAordm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKFdlYlBhZ2VHcm91cFBy
b3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICAvLyBPdmVycmlkZSB0aGUgcHJl
ZmVyZW5jZSBmb3IgYWxsIGZ1dHVyZSBwYWdlcy4KKyAgICBXZWJQcmVmZXJlbmNlc1N0b3JlOjpv
dmVycmlkZUFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoZW5hYmxlZCk7
CisKKyAgICAvLyBDaGFuZ2UgdGhlIHNldHRpbmcgZm9yIGV4aXN0aW5nIG9uZXMuCisgICAgY29u
c3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3Vw
LT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOworICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJh
dG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCisg
ICAgICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyhlbmFibGVkKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6Y2xlYXJBbGxEYXRhYmFzZXMo
KQogewogICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGVsZXRlQWxsRGF0YWJhc2Vz
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCShyZXZpc2lvbiA4MjgyNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY3RpdmF0ZU1hY0Zv
bnRBc2NlbnRIYWNrKCk7CiAgICAgdm9pZCBvdmVycmlkZVhTU0F1ZGl0b3JFbmFibGVkRm9yVGVz
dFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpOwogICAg
IHZvaWQgb3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5u
ZXIoV2ViUGFnZUdyb3VwUHJveHkqLCBib29sKTsKKyAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyhXZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogCiAgICAgLy8gVXNlckNv
bnRlbnQgQVBJCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KFdlYlBhZ2VHcm91cFByb3h5KiwgSW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJp
bmcmIHVybCwgSW1tdXRhYmxlQXJyYXkqIHdoaXRlbGlzdCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNr
bGlzdCwgV2ViQ29yZTo6VXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAJKHJldmlzaW9u
IDgyODI1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsMTEgQEAgdm9pZCBX
S0J1bmRsZU92ZXJyaWRlQWxsb3dVbml2ZXJzYWxBY2NlcwogICAgIHRvSW1wbChidW5kbGVSZWYp
LT5vdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVzdFJ1bm5lcih0
b0ltcGwocGFnZUdyb3VwUmVmKSwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV0tCdW5kbGVTZXRBbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwoYnVu
ZGxlUmVmKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRvSW1wbChwYWdlR3JvdXBS
ZWYpLCBlbmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZVJlcG9ydEV4Y2VwdGlvbihKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBleGNlcHRpb24pCiB7CiAgICAgSW5qZWN0ZWRCdW5k
bGU6OnJlcG9ydEV4Y2VwdGlvbihjb250ZXh0LCBleGNlcHRpb24pOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUHJpdmF0ZS5oCShyZXZpc2lvbiA4MjgyNSkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVB
bGxVc2VyQ29udAogLy8gV2lsbCBtYWtlIFdlYlByb2Nlc3MgaWdub3JlIHRoaXMgcHJlZmVyZW5j
ZSB1bnRpbCBhIHByZWZlcmVuY2VzIGNoYW5nZSBub3RpZmljYXRpb24sIG9ubHkgZm9yIFdlYktp
dFRlc3RSdW5uZXIgdXNlLgogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVPdmVycmlkZVhTU0F1ZGl0
b3JFbmFibGVkRm9yVGVzdFJ1bm5lcihXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
T3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoV0tC
dW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIGJvb2wgZW5h
YmxlZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyhXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMo
V0tCdW5kbGVSZWYgYnVuZGxlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VR
dW90YShXS0J1bmRsZVJlZiBidW5kbGUsIHVpbnQ2NF90KTsKIApJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gODI4MzQpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNC0w
NCAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU3MgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0wNC0wNCAg
UGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCBmaXggZXhjZXB0aW9uIGluIHJlYmFzZWxpbmUgdG9vbC4KSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4MjgyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTgsNiArMzE4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFs
bG93VW5pdmUKICAgICBXS0J1bmRsZU92ZXJyaWRlQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHNGb3JUZXN0UnVubmVyKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKIH0KIAordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5wYWdlR3JvdXAoKSwgZW5hYmxlZCk7Cit9CisKIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9s
bGVyOjp3aW5kb3dDb3VudCgpCiB7CiAgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5wYWdlQ291bnQoKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDgy
ODI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sIHZhbHVlKSB7
IG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0WFNTQXVk
aXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcyhib29sKTsKKyAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sKTsKIAogICAgIC8vIFNwZWNpYWwgRE9NIGZ1bmN0aW9ucy4KICAgICBKU1ZhbHVlUmVmIGNv
bXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU1ZhbHVlUmVmIGVsZW1lbnQpOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRU
ZXN0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9u
IDgyODI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcg
QEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hl
bkNvbXBsZXRlKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldFhTU0F1ZGl0b3JF
bmFibGVkKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzKGluIGJvb2xlYW4gdmFsdWUpOworICAgICAgICB2b2lkIHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhpbiBib29sZWFuIHZhbHVlKTsKIAogICAgICAgICAv
LyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZExp
c3QoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODM0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMDQgIENoYW5nIFNodSAg
PGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICBVbnNraXAgcGFzc2VkIHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOgorCiAyMDExLTA0LTA0ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShy
ZXZpc2lvbiA4MjgyNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTQzOSwxMSArMTQzOSw3IEBAIGVkaXRpbmcvc3R5bGUvaWZyYW1l
LW9ubG9hZC1jcmFzaC13aW4uaHQKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjY5MT4KIGZhc3QvbG9hZGVyL3N0b3AtcHJvdmlzaW9uYWwtbG9hZHMuaHRtbAog
Ci0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTc1NzI+Ci1mYXN0L2ZyYW1lcy9sb2NhdGlvbi1jaGFuZ2Utbm8tZmlsZS1hY2Nl
c3MuaHRtbAogZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1uby1maWxlLWFjY2Vz
cy5odG1sCi0KIGZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm9uZXhpc3RlbnQt
ZmlsZS5odG1sCiAKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcmludGluZwo=
</data>
<flag name="review"
          id="80516"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="80521"
          type_id="3"
          status="-"
          setter="cshu"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88064</attachid>
            <date>2011-04-04 08:43:20 -0700</date>
            <delta_ts>2011-04-04 11:29:38 -0700</delta_ts>
            <desc>fix patch 2: follow review</desc>
            <filename>57572_2.patch</filename>
            <type>text/plain</type>
            <size>11986</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODM0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDQtMDQgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6
ZGVjb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVB
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVyKToKKyAgICAgICAgKiBTaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGUuY3BwOgorICAgICAgICAoV0tCdW5kbGVTZXRBbGxvd0ZpbGVB
Y2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQcml2YXRlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxl
OjpzZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKwogMjAxMS0wNC0wNCAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
TWFydGluIFJvYmluc29uLgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzU3RvcmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmNwcAkocmV2aXNpb24gODI4MjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDgg
QEAgc3RhdGljIGJvb2wgaGFzWFNTQXVkaXRvckVuYWJsZWRUZXN0UnVubgogc3RhdGljIGJvb2wg
eHNzQXVkaXRvckVuYWJsZWRUZXN0UnVubmVyT3ZlcnJpZGU7CiBzdGF0aWMgYm9vbCBoYXNBbGxv
d1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZTsKIHN0YXRpYyBi
b29sIGFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJyaWRlOwor
c3RhdGljIGJvb2wgaGFzQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJy
aWRlOworc3RhdGljIGJvb2wgYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92
ZXJyaWRlOwogCiBXZWJQcmVmZXJlbmNlc1N0b3JlOjpXZWJQcmVmZXJlbmNlc1N0b3JlKCkKIHsK
QEAgLTcyLDYgKzc0LDkgQEAgYm9vbCBXZWJQcmVmZXJlbmNlc1N0b3JlOjpkZWNvZGUoQ29yZUlQ
QwogICAgIGlmIChoYXNBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJP
dmVycmlkZSkKICAgICAgICAgcy5tX2Jvb2xWYWx1ZXMuc2V0KFdlYlByZWZlcmVuY2VzS2V5Ojph
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0tleSgpLCBhbGxvd1VuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZSk7CiAKKyAgICBpZiAoaGFzQWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJyaWRlKQorICAgICAgICBzLm1fYm9vbFZh
bHVlcy5zZXQoV2ViUHJlZmVyZW5jZXNLZXk6OmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0tl
eSgpLCBhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNUZXN0UnVubmVyT3ZlcnJpZGUpOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTg3LDYgKzkyLDEyIEBAIHZvaWQgV2ViUHJlZmVyZW5j
ZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd1UKICAgICBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc1Rlc3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7CiB9CiAKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVy
KGJvb2wgZW5hYmxlZCkKK3sKKyAgICBoYXNBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNUZXN0
UnVubmVyT3ZlcnJpZGUgPSB0cnVlOworICAgIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc1Rl
c3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7Cit9CisKIHZvaWQgV2ViUHJlZmVyZW5jZXNTdG9y
ZTo6cmVtb3ZlVGVzdFJ1bm5lck92ZXJyaWRlcygpCiB7CiAgICAgaGFzWFNTQXVkaXRvckVuYWJs
ZWRUZXN0UnVubmVyT3ZlcnJpZGUgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hh
cmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAkocmV2aXNpb24gODI4MjUpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNjks
NiArMTY5LDcgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmUgewogCiAgICAgc3RhdGljIHZv
aWQgb3ZlcnJpZGVYU1NBdWRpdG9yRW5hYmxlZEZvclRlc3RSdW5uZXIoYm9vbCk7CiAgICAgc3Rh
dGljIHZvaWQgb3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RS
dW5uZXIoYm9vbCk7CisgICAgc3RhdGljIHZvaWQgb3ZlcnJpZGVBbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNGb3JUZXN0UnVubmVyKGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIHJlbW92ZVRlc3RS
dW5uZXJPdmVycmlkZXMoKTsKIAogICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fc3RyaW5n
VmFsdWVzOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAJKHJldmlzaW9uIDgyODI1KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMCw2ICsxMjAsMTcgQEAgdm9pZCBJbmplY3RlZEJ1bmRs
ZTo6b3ZlcnJpZGVBbGxvd1VuaXZlcgogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRB
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhlbmFibGVkKTsKIH0KIAordm9pZCBJbmpl
Y3RlZEJ1bmRsZTo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKFdlYlBhZ2VHcm91cFBy
b3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICAvLyBPdmVycmlkZSB0aGUgcHJl
ZmVyZW5jZSBmb3IgYWxsIGZ1dHVyZSBwYWdlcy4KKyAgICBXZWJQcmVmZXJlbmNlc1N0b3JlOjpv
dmVycmlkZUFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoZW5hYmxlZCk7
CisKKyAgICAvLyBDaGFuZ2UgdGhlIHNldHRpbmcgZm9yIGV4aXN0aW5nIG9uZXMuCisgICAgY29u
c3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0gUGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3Vw
LT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOworICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJh
dG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBpdGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCisg
ICAgICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJM
cyhlbmFibGVkKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZTo6Y2xlYXJBbGxEYXRhYmFzZXMo
KQogewogICAgIFdlYkRhdGFiYXNlTWFuYWdlcjo6c2hhcmVkKCkuZGVsZXRlQWxsRGF0YWJhc2Vz
KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVj
dGVkQnVuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCShyZXZpc2lvbiA4MjgyNSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhY3RpdmF0ZU1hY0Zv
bnRBc2NlbnRIYWNrKCk7CiAgICAgdm9pZCBvdmVycmlkZVhTU0F1ZGl0b3JFbmFibGVkRm9yVGVz
dFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpOwogICAg
IHZvaWQgb3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5u
ZXIoV2ViUGFnZUdyb3VwUHJveHkqLCBib29sKTsKKyAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyhXZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogCiAgICAgLy8gVXNlckNv
bnRlbnQgQVBJCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KFdlYlBhZ2VHcm91cFByb3h5KiwgSW5q
ZWN0ZWRCdW5kbGVTY3JpcHRXb3JsZCosIGNvbnN0IFN0cmluZyYgc291cmNlLCBjb25zdCBTdHJp
bmcmIHVybCwgSW1tdXRhYmxlQXJyYXkqIHdoaXRlbGlzdCwgSW1tdXRhYmxlQXJyYXkqIGJsYWNr
bGlzdCwgV2ViQ29yZTo6VXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYkNvcmU6OlVzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5jcHAJKHJldmlzaW9u
IDgyODI1KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMyw2ICsxMzMsMTEgQEAgdm9pZCBX
S0J1bmRsZU92ZXJyaWRlQWxsb3dVbml2ZXJzYWxBY2NlcwogICAgIHRvSW1wbChidW5kbGVSZWYp
LT5vdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVzdFJ1bm5lcih0
b0ltcGwocGFnZUdyb3VwUmVmKSwgZW5hYmxlZCk7CiB9CiAKK3ZvaWQgV0tCdW5kbGVTZXRBbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBh
Z2VHcm91cFJlZiBwYWdlR3JvdXBSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwoYnVu
ZGxlUmVmKS0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRvSW1wbChwYWdlR3JvdXBS
ZWYpLCBlbmFibGVkKTsKK30KKwogdm9pZCBXS0J1bmRsZVJlcG9ydEV4Y2VwdGlvbihKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNWYWx1ZVJlZiBleGNlcHRpb24pCiB7CiAgICAgSW5qZWN0ZWRCdW5k
bGU6OnJlcG9ydEV4Y2VwdGlvbihjb250ZXh0LCBleGNlcHRpb24pOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUHJpdmF0ZS5oCShyZXZpc2lvbiA4MjgyNSkKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVB
bGxVc2VyQ29udAogLy8gV2lsbCBtYWtlIFdlYlByb2Nlc3MgaWdub3JlIHRoaXMgcHJlZmVyZW5j
ZSB1bnRpbCBhIHByZWZlcmVuY2VzIGNoYW5nZSBub3RpZmljYXRpb24sIG9ubHkgZm9yIFdlYktp
dFRlc3RSdW5uZXIgdXNlLgogV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVPdmVycmlkZVhTU0F1ZGl0
b3JFbmFibGVkRm9yVGVzdFJ1bm5lcihXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdy
b3VwUmVmIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxl
T3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoV0tC
dW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIGJvb2wgZW5h
YmxlZCk7CitXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyhXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMo
V0tCdW5kbGVSZWYgYnVuZGxlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VR
dW90YShXS0J1bmRsZVJlZiBidW5kbGUsIHVpbnQ2NF90KTsKIApJbmRleDogVG9vbHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gODI4MzQpCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0wNC0w
NCAgQ2hhbmcgU2h1ICA8Y3NodUB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NzU3MgorCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxl
ci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0wNC0wNCAg
UGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJl
dmlld2VkLCBmaXggZXhjZXB0aW9uIGluIHJlYmFzZWxpbmUgdG9vbC4KSW5kZXg6IFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA4MjgyNSkKKysrIFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMTgsNiArMzE4LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFs
bG93VW5pdmUKICAgICBXS0J1bmRsZU92ZXJyaWRlQWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmls
ZVVSTHNGb3JUZXN0UnVubmVyKEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5idW5kbGUoKSwgSW5q
ZWN0ZWRCdW5kbGU6OnNoYXJlZCgpLnBhZ2VHcm91cCgpLCBlbmFibGVkKTsKIH0KIAordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGJvb2wg
ZW5hYmxlZCkKK3sKKyAgICBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhJ
bmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5wYWdlR3JvdXAoKSwgZW5hYmxlZCk7Cit9CisKIHVuc2lnbmVkIExheW91dFRlc3RDb250cm9s
bGVyOjp3aW5kb3dDb3VudCgpCiB7CiAgICAgcmV0dXJuIEluamVjdGVkQnVuZGxlOjpzaGFyZWQo
KS5wYWdlQ291bnQoKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDgy
ODI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NSw2ICs3NSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZShib29sIHZhbHVlKSB7
IG1fc2hvdWxkQ2xvc2VFeHRyYVdpbmRvd3MgPSB2YWx1ZTsgfQogICAgIHZvaWQgc2V0WFNTQXVk
aXRvckVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMcyhib29sKTsKKyAgICB2b2lkIHNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhi
b29sKTsKIAogICAgIC8vIFNwZWNpYWwgRE9NIGZ1bmN0aW9ucy4KICAgICBKU1ZhbHVlUmVmIGNv
bXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU1ZhbHVlUmVmIGVsZW1lbnQpOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRU
ZXN0Q29udHJvbGxlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHJldmlzaW9u
IDgyODI1KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5n
cy9MYXlvdXRUZXN0Q29udHJvbGxlci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcg
QEAgbW9kdWxlIFdUUiB7CiAgICAgICAgIHZvaWQgc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hl
bkNvbXBsZXRlKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldFhTU0F1ZGl0b3JF
bmFibGVkKGluIGJvb2xlYW4gdmFsdWUpOwogICAgICAgICB2b2lkIHNldEFsbG93VW5pdmVyc2Fs
QWNjZXNzRnJvbUZpbGVVUkxzKGluIGJvb2xlYW4gdmFsdWUpOworICAgICAgICB2b2lkIHNldEFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhpbiBib29sZWFuIHZhbHVlKTsKIAogICAgICAgICAv
LyBTcGVjaWFsIERPTSBmdW5jdGlvbnMuCiAgICAgICAgIHZvaWQgY2xlYXJCYWNrRm9yd2FyZExp
c3QoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgyODM0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDQtMDQgIENoYW5nIFNodSAg
PGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICBVbnNraXAgcGFzc2VkIHRlc3Rz
LgorCisgICAgICAgICogcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkOgorCiAyMDExLTA0LTA0ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBYYW4gTG9wZXouCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBw
ZWQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCShy
ZXZpc2lvbiA4MjgyNSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAko
d29ya2luZyBjb3B5KQpAQCAtMTQzOSwxMyArMTQzOSw2IEBAIGVkaXRpbmcvc3R5bGUvaWZyYW1l
LW9ubG9hZC1jcmFzaC13aW4uaHQKICMgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD00MjY5MT4KIGZhc3QvbG9hZGVyL3N0b3AtcHJvdmlzaW9uYWwtbG9hZHMuaHRtbAog
Ci0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzCi0jIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTc1NzI+Ci1mYXN0L2ZyYW1lcy9sb2NhdGlvbi1jaGFuZ2Utbm8tZmlsZS1hY2Nl
c3MuaHRtbAotZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1uby1maWxlLWFjY2Vz
cy5odG1sCi0KLWZhc3QveG1saHR0cHJlcXVlc3QveG1saHR0cHJlcXVlc3Qtbm9uZXhpc3RlbnQt
ZmlsZS5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRQcmludGluZwogIyA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTQyNjkzPgogcHJpbnRpbmcvY29tcG9zaXRpbmctbGF5ZXItcHJpbnRpbmcuaHRtbApAQCAtMTk0
NSw2ICsxOTM4LDggQEAgZmFzdC9vdmVyZmxvdy9vdmVyZmxvd19oaWRkZW4uaHRtbAogZmFzdC93
b3JrZXJzL3N0b3JhZ2UvaW50ZXJydXB0LWRhdGFiYXNlLXN5bmMuaHRtbAogZmFzdC93b3JrZXJz
L3N0b3JhZ2UvaW50ZXJydXB0LWRhdGFiYXNlLmh0bWwKIGZhc3Qvd29ya2Vycy9zdG9yYWdlL3Vz
ZS1zYW1lLWRhdGFiYXNlLWluLXBhZ2UtYW5kLXdvcmtlcnMuaHRtbAorZmFzdC94bWxodHRwcmVx
dWVzdC94bWxodHRwcmVxdWVzdC1uby1maWxlLWFjY2Vzcy5odG1sCitmYXN0L3htbGh0dHByZXF1
ZXN0L3htbGh0dHByZXF1ZXN0LW5vbmV4aXN0ZW50LWZpbGUuaHRtbAogaHR0cC90ZXN0cy9hcHBj
YWNoZS9kaWZmZXJlbnQtaHR0cHMtb3JpZ2luLXJlc291cmNlLW1haW4uaHRtbAogaHR0cC90ZXN0
cy9hcHBjYWNoZS9mYWxsYmFjay5odG1sCiBodHRwL3Rlc3RzL2NhY2hlL3N1YnJlc291cmNlLWV4
cGlyYXRpb24tMS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>90360</attachid>
            <date>2011-04-20 10:49:26 -0700</date>
            <delta_ts>2011-04-26 16:43:14 -0700</delta_ts>
            <desc>fix patch: code refactory</desc>
            <filename>57572_3.patch</filename>
            <type>text/plain</type>
            <size>10918</size>
            <attacher name="Chang Shu">cshu</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0Mzk0KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDQtMjAgIENoYW5nIFNo
dSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVy
LnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICBSZW1vdmUgdGhlIHVubmVj
ZXNzYXJ5IGNvZGUgdGhhdCB1cGRhdGVzIHByZWZlcmVuY2UuCisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByZWZlcmVuY2Vz
U3RvcmU6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaDoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcDoK
KyAgICAgICAgKFdLQnVuZGxlU2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRl
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRBbGxvd1VuaXZlcnNhbEFj
Y2Vzc0Zyb21GaWxlVVJMcyk6CisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRB
bGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKwogMjAxMS0wNC0yMCAgQWxlamFuZHJvIEcuIENh
c3RybyAgPGFsZXhAaWdhbGlhLmNvbT4KIAogICAgICAgICBGaXhlZCBHVEsrIGNvbXBpbGF0aW9u
IGFmdGVyIHI4NDIwNi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNl
c1N0b3JlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5jcHAJKHJldmlzaW9uIDg0Mzc2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYlByZWZlcmVuY2VzU3RvcmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCwxMCArNTAsNiBA
QCBuYW1lc3BhY2UgV2ViUHJlZmVyZW5jZXNLZXkgewogCiBzdGF0aWMgYm9vbCBoYXNYU1NBdWRp
dG9yRW5hYmxlZFRlc3RSdW5uZXJPdmVycmlkZTsKIHN0YXRpYyBib29sIHhzc0F1ZGl0b3JFbmFi
bGVkVGVzdFJ1bm5lck92ZXJyaWRlOwotc3RhdGljIGJvb2wgaGFzQWxsb3dVbml2ZXJzYWxBY2Nl
c3NGcm9tRmlsZVVSTHNUZXN0UnVubmVyT3ZlcnJpZGU7Ci1zdGF0aWMgYm9vbCBhbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZTsKLXN0YXRpYyBib29sIGhh
c0FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZTsKLXN0YXRpYyBi
b29sIGFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZTsKIAogV2Vi
UHJlZmVyZW5jZXNTdG9yZTo6V2ViUHJlZmVyZW5jZXNTdG9yZSgpCiB7CkBAIC03MiwxMiArNjgs
NiBAQCBib29sIFdlYlByZWZlcmVuY2VzU3RvcmU6OmRlY29kZShDb3JlSVBDCiAgICAgaWYgKGhh
c1hTU0F1ZGl0b3JFbmFibGVkVGVzdFJ1bm5lck92ZXJyaWRlKQogICAgICAgICBzLm1fYm9vbFZh
bHVlcy5zZXQoV2ViUHJlZmVyZW5jZXNLZXk6Onhzc0F1ZGl0b3JFbmFibGVkS2V5KCksIHhzc0F1
ZGl0b3JFbmFibGVkVGVzdFJ1bm5lck92ZXJyaWRlKTsKIAotICAgIGlmIChoYXNBbGxvd1VuaXZl
cnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZSkKLSAgICAgICAgcy5tX2Jv
b2xWYWx1ZXMuc2V0KFdlYlByZWZlcmVuY2VzS2V5OjphbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0tleSgpLCBhbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJP
dmVycmlkZSk7Ci0KLSAgICBpZiAoaGFzQWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1
bm5lck92ZXJyaWRlKQotICAgICAgICBzLm1fYm9vbFZhbHVlcy5zZXQoV2ViUHJlZmVyZW5jZXNL
ZXk6OmFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0tleSgpLCBhbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHNUZXN0UnVubmVyT3ZlcnJpZGUpOwotCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAg
LTg3LDE4ICs3Nyw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVYU1NBdWQK
ICAgICB4c3NBdWRpdG9yRW5hYmxlZFRlc3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7CiB9CiAK
LXZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoYm9vbCBlbmFibGVkKQotewotICAgIGhhc0FsbG93VW5p
dmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzVGVzdFJ1bm5lck92ZXJyaWRlID0gdHJ1ZTsKLSAgICBh
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZSA9IGVuYWJs
ZWQ7Ci19Ci0KLXZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVyKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBoYXNBbGxv
d0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNUZXN0UnVubmVyT3ZlcnJpZGUgPSB0cnVlOwotICAgIGFs
bG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc1Rlc3RSdW5uZXJPdmVycmlkZSA9IGVuYWJsZWQ7Ci19
Ci0KIHZvaWQgV2ViUHJlZmVyZW5jZXNTdG9yZTo6cmVtb3ZlVGVzdFJ1bm5lck92ZXJyaWRlcygp
CiB7CiAgICAgaGFzWFNTQXVkaXRvckVuYWJsZWRUZXN0UnVubmVyT3ZlcnJpZGUgPSBmYWxzZTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAkocmV2
aXNpb24gODQzNzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9y
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNzAsOCArMTcwLDYgQEAgc3RydWN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUgewogICAgIGRvdWJsZSBnZXREb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
IGtleSkgY29uc3Q7CiAKICAgICBzdGF0aWMgdm9pZCBvdmVycmlkZVhTU0F1ZGl0b3JFbmFibGVk
Rm9yVGVzdFJ1bm5lcihib29sKTsKLSAgICBzdGF0aWMgdm9pZCBvdmVycmlkZUFsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVzdFJ1bm5lcihib29sKTsKLSAgICBzdGF0aWMgdm9p
ZCBvdmVycmlkZUFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMc0ZvclRlc3RSdW5uZXIoYm9vbCk7
CiAgICAgc3RhdGljIHZvaWQgcmVtb3ZlVGVzdFJ1bm5lck92ZXJyaWRlcygpOwogCiAgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4gbV9zdHJpbmdWYWx1ZXM7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVu
ZGxlLmNwcAkocmV2aXNpb24gODQzNzYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTEzLDEy
ICsxMTMsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZVhTU0F1ZGl0b3JFCiAgICAg
ICAgICgqaXRlciktPnNldHRpbmdzKCktPnNldFhTU0F1ZGl0b3JFbmFibGVkKGVuYWJsZWQpOwog
fQogCi12b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzRm9yVGVzdFJ1bm5lcihXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29s
IGVuYWJsZWQpCit2b2lkIEluamVjdGVkQnVuZGxlOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zy
b21GaWxlVVJMcyhXZWJQYWdlR3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCiB7
Ci0gICAgLy8gT3ZlcnJpZGUgdGhlIHByZWZlcmVuY2UgZm9yIGFsbCBmdXR1cmUgcGFnZXMuCi0g
ICAgV2ViUHJlZmVyZW5jZXNTdG9yZTo6b3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0ZvclRlc3RSdW5uZXIoZW5hYmxlZCk7Ci0KLSAgICAvLyBDaGFuZ2UgdGhlIHNldHRp
bmcgZm9yIGV4aXN0aW5nIG9uZXMuCiAgICAgY29uc3QgSGFzaFNldDxQYWdlKj4mIHBhZ2VzID0g
UGFnZUdyb3VwOjpwYWdlR3JvdXAocGFnZUdyb3VwLT5pZGVudGlmaWVyKCkpLT5wYWdlcygpOwog
ICAgIGZvciAoSGFzaFNldDxQYWdlKj46Oml0ZXJhdG9yIGl0ZXIgPSBwYWdlcy5iZWdpbigpOyBp
dGVyICE9IHBhZ2VzLmVuZCgpOyArK2l0ZXIpCiAgICAgICAgICgqaXRlciktPnNldHRpbmdzKCkt
PnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKGVuYWJsZWQpOwpAQCAtMTI2LDEw
ICsxMjIsNiBAQCB2b2lkIEluamVjdGVkQnVuZGxlOjpvdmVycmlkZUFsbG93VW5pdmVyCiAKIHZv
aWQgSW5qZWN0ZWRCdW5kbGU6OnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhXZWJQYWdl
R3JvdXBQcm94eSogcGFnZUdyb3VwLCBib29sIGVuYWJsZWQpCiB7Ci0gICAgLy8gT3ZlcnJpZGUg
dGhlIHByZWZlcmVuY2UgZm9yIGFsbCBmdXR1cmUgcGFnZXMuCi0gICAgV2ViUHJlZmVyZW5jZXNT
dG9yZTo6b3ZlcnJpZGVBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHNGb3JUZXN0UnVubmVyKGVu
YWJsZWQpOwotCi0gICAgLy8gQ2hhbmdlIHRoZSBzZXR0aW5nIGZvciBleGlzdGluZyBvbmVzLgog
ICAgIGNvbnN0IEhhc2hTZXQ8UGFnZSo+JiBwYWdlcyA9IFBhZ2VHcm91cDo6cGFnZUdyb3VwKHBh
Z2VHcm91cC0+aWRlbnRpZmllcigpKS0+cGFnZXMoKTsKICAgICBmb3IgKEhhc2hTZXQ8UGFnZSo+
OjppdGVyYXRvciBpdGVyID0gcGFnZXMuYmVnaW4oKTsgaXRlciAhPSBwYWdlcy5lbmQoKTsgKytp
dGVyKQogICAgICAgICAoKml0ZXIpLT5zZXR0aW5ncygpLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMoZW5hYmxlZCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCShyZXZpc2lvbiA4NDM3
NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRC
dW5kbGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTEsNyArOTEsNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCByZW1vdmVBbGxWaXNpdGVkTGlua3MoKTsKICAgICB2b2lkIGFjdGl2YXRlTWFjRm9udEFzY2Vu
dEhhY2soKTsKICAgICB2b2lkIG92ZXJyaWRlWFNTQXVkaXRvckVuYWJsZWRGb3JUZXN0UnVubmVy
KFdlYlBhZ2VHcm91cFByb3h5KiBwYWdlR3JvdXAsIGJvb2wgZW5hYmxlZCk7Ci0gICAgdm9pZCBv
dmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVzdFJ1bm5lcihXZWJQ
YWdlR3JvdXBQcm94eSosIGJvb2wpOworICAgIHZvaWQgc2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NG
cm9tRmlsZVVSTHMoV2ViUGFnZUdyb3VwUHJveHkqLCBib29sKTsKICAgICB2b2lkIHNldEFsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyhXZWJQYWdlR3JvdXBQcm94eSosIGJvb2wpOwogICAgIGlu
dCBudW1iZXJPZlBhZ2VzKFdlYkZyYW1lKiwgZG91YmxlLCBkb3VibGUpOwogICAgIGludCBwYWdl
TnVtYmVyRm9yRWxlbWVudEJ5SWQoV2ViRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBkb3VibGUsIGRv
dWJsZSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNwcAkocmV2aXNpb24gODQzNzYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTI4LDkgKzEyOCw5IEBAIHZvaWQgV0tCdW5kbGVPdmVycmlk
ZVhTU0F1ZGl0b3JFbmFibGVkRm8KICAgICB0b0ltcGwoYnVuZGxlUmVmKS0+b3ZlcnJpZGVYU1NB
dWRpdG9yRW5hYmxlZEZvclRlc3RSdW5uZXIodG9JbXBsKHBhZ2VHcm91cFJlZiksIGVuYWJsZWQp
OwogfQogCi12b2lkIFdLQnVuZGxlT3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxl
VVJMc0ZvclRlc3RSdW5uZXIoV0tCdW5kbGVSZWYgYnVuZGxlUmVmLCBXS0J1bmRsZVBhZ2VHcm91
cFJlZiBwYWdlR3JvdXBSZWYsIGJvb2wgZW5hYmxlZCkKK3ZvaWQgV0tCdW5kbGVTZXRBbGxvd1Vu
aXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxl
UGFnZUdyb3VwUmVmIHBhZ2VHcm91cFJlZiwgYm9vbCBlbmFibGVkKQogewotICAgIHRvSW1wbChi
dW5kbGVSZWYpLT5vdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVz
dFJ1bm5lcih0b0ltcGwocGFnZUdyb3VwUmVmKSwgZW5hYmxlZCk7CisgICAgdG9JbXBsKGJ1bmRs
ZVJlZiktPnNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKHRvSW1wbChwYWdlR3Jv
dXBSZWYpLCBlbmFibGVkKTsKIH0KIAogdm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyhXS0J1bmRsZVJlZiBidW5kbGVSZWYsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBh
Z2VHcm91cFJlZiwgYm9vbCBlbmFibGVkKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUHJp
dmF0ZS5oCShyZXZpc2lvbiA4NDM3NikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY1
LDcgKzY1LDcgQEAgV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVSZW1vdmVBbGxVc2VyQ29udAogCiAv
LyBXaWxsIG1ha2UgV2ViUHJvY2VzcyBpZ25vcmUgdGhpcyBwcmVmZXJlbmNlIHVudGlsIGEgcHJl
ZmVyZW5jZXMgY2hhbmdlIG5vdGlmaWNhdGlvbiwgb25seSBmb3IgV2ViS2l0VGVzdFJ1bm5lciB1
c2UuCiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZU92ZXJyaWRlWFNTQXVkaXRvckVuYWJsZWRGb3JU
ZXN0UnVubmVyKFdLQnVuZGxlUmVmIGJ1bmRsZSwgV0tCdW5kbGVQYWdlR3JvdXBSZWYgcGFnZUdy
b3VwLCBib29sIGVuYWJsZWQpOwotV0tfRVhQT1JUIHZvaWQgV0tCdW5kbGVPdmVycmlkZUFsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzRm9yVGVzdFJ1bm5lcihXS0J1bmRsZVJlZiBidW5k
bGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwgYm9vbCBlbmFibGVkKTsKK1dLX0VY
UE9SVCB2b2lkIFdLQnVuZGxlU2V0QWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHMoV0tC
dW5kbGVSZWYgYnVuZGxlLCBXS0J1bmRsZVBhZ2VHcm91cFJlZiBwYWdlR3JvdXAsIGJvb2wgZW5h
YmxlZCk7CiBXS19FWFBPUlQgdm9pZCBXS0J1bmRsZVNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMcyhXS0J1bmRsZVJlZiBidW5kbGUsIFdLQnVuZGxlUGFnZUdyb3VwUmVmIHBhZ2VHcm91cCwg
Ym9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlQ2xlYXJBbGxEYXRhYmFzZXMo
V0tCdW5kbGVSZWYgYnVuZGxlKTsKIFdLX0VYUE9SVCB2b2lkIFdLQnVuZGxlU2V0RGF0YWJhc2VR
dW90YShXS0J1bmRsZVJlZiBidW5kbGUsIHVpbnQ2NF90KTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDg0Mzk0KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDQtMjAg
IENoYW5nIFNodSAgPGNzaHVAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RD
b250cm9sbGVyLnNldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTc1NzIKKworICAgICAgICBSZW1vdmUg
dGhlIHVubmVjZXNzYXJ5IGNvZGUgdGhhdCB1cGRhdGVzIHByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcDoKKyAg
ICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OmJlZ2luVGVzdGluZyk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXVFI6OkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vz
c0Zyb21GaWxlVVJMcyk6CisKIDIwMTEtMDQtMjAgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlcGxhY2Ugb2xkLXJ1bi13ZWJraXQtdGVzdHMncyB3aW4tNyBwbGF0
Zm9ybSB3aXRoIHdpbi03c3AwCkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmNwcAkocmV2aXNpb24gODQzNzYp
CisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDcgKzE2Nyw3IEBAIHZvaWQgSW5qZWN0ZWRCdW5k
bGU6OmJlZ2luVGVzdGluZygpCiAKICAgICBXS0J1bmRsZVNldFNob3VsZFRyYWNrVmlzaXRlZExp
bmtzKG1fYnVuZGxlLCBmYWxzZSk7CiAgICAgV0tCdW5kbGVSZW1vdmVBbGxWaXNpdGVkTGlua3Mo
bV9idW5kbGUpOwotICAgIFdLQnVuZGxlT3ZlcnJpZGVBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21G
aWxlVVJMc0ZvclRlc3RSdW5uZXIobV9idW5kbGUsIG1fcGFnZUdyb3VwLCB0cnVlKTsKKyAgICBX
S0J1bmRsZVNldEFsbG93VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzKG1fYnVuZGxlLCBtX3Bh
Z2VHcm91cCwgdHJ1ZSk7CiAKICAgICBXS0J1bmRsZVJlbW92ZUFsbFVzZXJDb250ZW50KG1fYnVu
ZGxlLCBtX3BhZ2VHcm91cCk7CiAKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShy
ZXZpc2lvbiA4NDM3NikKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTgsNyArMzE4LDcg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0WFNTQXVkaXRvcgogCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhib29s
IGVuYWJsZWQpCiB7Ci0gICAgV0tCdW5kbGVPdmVycmlkZUFsbG93VW5pdmVyc2FsQWNjZXNzRnJv
bUZpbGVVUkxzRm9yVGVzdFJ1bm5lcihJbmplY3RlZEJ1bmRsZTo6c2hhcmVkKCkuYnVuZGxlKCks
IEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlR3JvdXAoKSwgZW5hYmxlZCk7CisgICAgV0tC
dW5kbGVTZXRBbGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMcyhJbmplY3RlZEJ1bmRsZTo6
c2hhcmVkKCkuYnVuZGxlKCksIEluamVjdGVkQnVuZGxlOjpzaGFyZWQoKS5wYWdlR3JvdXAoKSwg
ZW5hYmxlZCk7CiB9CiAKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEFsbG93RmlsZUFj
Y2Vzc0Zyb21GaWxlVVJMcyhib29sIGVuYWJsZWQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>