<?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>78578</bug_id>
          
          <creation_ts>2012-02-13 23:08:26 -0800</creation_ts>
          <short_desc>There is no complete test cases of optional arguments for MediaStream API and PeerConnection</short_desc>
          <delta_ts>2012-02-20 21:24:57 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Yanbin">yanbin.zhang</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555982</commentid>
    <comment_count>0</comment_count>
    <who name="Yanbin">yanbin.zhang</who>
    <bug_when>2012-02-13 23:08:26 -0800</bug_when>
    <thetext>There are only some tests on  /third_party/WebKit/LaoutTests/fast/mediastreams to testing optional argument for addstream function . It only don&apos;t cover all possible input parameters scenarios and other functions defined on http://www.w3.org/TR/webrtc/.
I will deliver a new patch for those test cases definition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556913</commentid>
    <comment_count>1</comment_count>
      <attachid>127111</attachid>
    <who name="Yanbin">yanbin.zhang</who>
    <bug_when>2012-02-14 21:23:52 -0800</bug_when>
    <thetext>Created attachment 127111
Patch

Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556989</commentid>
    <comment_count>2</comment_count>
    <who name="Tommy Widenflycht">tommyw</who>
    <bug_when>2012-02-15 00:42:39 -0800</bug_when>
    <thetext>Hmm, it seems that the patch didn&apos;t upload correctly.
Did you use &quot;Tools/Scripts/webkit-patch upload&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557790</commentid>
    <comment_count>3</comment_count>
      <attachid>127288</attachid>
    <who name="Yanbin">yanbin.zhang</who>
    <bug_when>2012-02-15 18:12:19 -0800</bug_when>
    <thetext>Created attachment 127288
Patch

updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559976</commentid>
    <comment_count>4</comment_count>
      <attachid>127288</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-19 18:15:23 -0800</bug_when>
    <thetext>Comment on attachment 127288
Patch

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

&gt; LayoutTests/ChangeLog:4
&gt; + 2012-02-16  Yanbin Zhang  &lt;yanbin.zhang@intel.com&gt;
&gt; +     There is no complete test cases of optional arguments for MediaStream API and PeerConnection
&gt; +     https://bugs.webkit.org/show_bug.cgi?id=78578
&gt; +     

It looks like you&apos;ve got a slight formatting error in your ChangeLog.  I can correct it for you when landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559977</commentid>
    <comment_count>5</comment_count>
    <who name="Yanbin">yanbin.zhang</who>
    <bug_when>2012-02-19 18:16:36 -0800</bug_when>
    <thetext>Many thanks Adam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>559988</commentid>
    <comment_count>6</comment_count>
      <attachid>127288</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-19 19:20:25 -0800</bug_when>
    <thetext>Comment on attachment 127288
Patch

Attachment 127288 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11542993

New failing tests:
fast/mediastream/peerconnection-Attributes.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560147</commentid>
    <comment_count>7</comment_count>
      <attachid>127798</attachid>
    <who name="Yanbin">yanbin.zhang</who>
    <bug_when>2012-02-20 03:26:05 -0800</bug_when>
    <thetext>Created attachment 127798
new patch


Updated patch for command #6.
For failure of command #6, because some test cases for ICE State defined at http://www.w3.org/TR/webrtc/ were run . It seem those features don&apos;t implemented now. 
FAIL pc.ICE_GATHERING == 0x100  should be true. Was false.
FAIL pc.ICE_WAITING == 0x200 should be true. Was false.
FAIL pc.ICE_CHECKING == 0x300 should be true. Was false.
FAIL pc.ICE_CONNECTED == 0x400 should be true. Was false.
FAIL pc.ICE_COMPLETED == 0x500 should be true. Was false.
FAIL pc.ICE_FAILED == 0x600 should be true. Was false.
FAIL pc.ICE_CLOSED == 0x700 should be true. Was false.
FAIL pc.SDP_IDLE == 0x1000 should be true. Was false.
FAIL pc.SDP_WAITING == 0x2000 should be true. Was false.
FAIL pc.SDP_GLARE ==0x3000 should be true. Was false.

test results for those test cases at peerconnection-Attributes-expected.txt file have been modified to FAIL .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560568</commentid>
    <comment_count>8</comment_count>
      <attachid>127798</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-20 19:50:34 -0800</bug_when>
    <thetext>Comment on attachment 127798
new patch

I&apos;ll fix the ChangeLog formatting for you.  In general, prepare-ChangeLog should give you the right formatting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560574</commentid>
    <comment_count>9</comment_count>
      <attachid>127903</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-02-20 19:57:31 -0800</bug_when>
    <thetext>Created attachment 127903
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560624</commentid>
    <comment_count>10</comment_count>
      <attachid>127903</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 21:24:50 -0800</bug_when>
    <thetext>Comment on attachment 127903
Patch for landing

Clearing flags on attachment: 127903

Committed r108299: &lt;http://trac.webkit.org/changeset/108299&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560625</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-20 21:24:57 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>127111</attachid>
            <date>2012-02-14 21:23:52 -0800</date>
            <delta_ts>2012-02-14 21:23:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>peerconnection.patch</filename>
            <type>application/octet-stream</type>
            <size>21550</size>
            <attacher name="Yanbin">yanbin.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJl
bW92ZXN0cmVhbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBmYXN0L21lZGlhc3RyZWFt
L3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMTcgQEAKK1Rlc3RzIFBlZXJDb25uZWN0aW9uOjpyZW1vdmVTdHJlYW0oKS4KKwor
T24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9s
bG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKCkgdGhy
ZXcgVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cworUEFTUyBwYy5yZW1vdmVTdHJlYW0o
dW5kZWZpbmVkKSB0aHJldyBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24g
MTcKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKG51bGwpIHRocmV3IEVycm9yOiBUWVBFX01JU01BVENI
X0VSUjogRE9NIEV4Y2VwdGlvbiAxNworUEFTUyBwYy5yZW1vdmVTdHJlYW0obmV3IEFycmF5KCkp
IHRocmV3IFR5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5yZW1vdmVTdHJlYW0oe30pIHRo
cmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLnJlbW92ZVN0cmVhbSg0MikgdGhyZXdU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKEluZmluaXR5KSB0aHJl
d1R5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5yZW1vdmVTdHJlYW0oLUluZmluaXR5KSB0
aHJld1R5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rp
b24tYXJndW1lbnQtdHlwZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmYXN0L21lZGlhc3RyZWFtL3Bl
ZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9uIDApCisrKyBmYXN0L21l
ZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhU
TUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSJzY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzTWV0
aG9kLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1B
dHRyaWJ1dGVzTWV0aG9kLmh0bWwJKHJldmlzaW9uIDApCisrKyBmYXN0L21lZGlhc3RyZWFtL3Bl
ZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXNNZXRob2QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgor
PGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3Vy
Y2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRp
b24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10
ZXN0cy9BdHRyaWJ1dGVzTWV0aG9kLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9y
ZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpz
CShyZXZpc2lvbiAwKQorKysgZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQt
dHlwZXMuanMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTIgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0
cyB0aGUgYWNjZXB0YWJsZSB0eXBlcyBmb3IgYXJndW1lbnRzIHRvIG1ldGhvZCBmb3IgUGVlclRv
UGVlckNvbm5lY3Rpb24gZGVmaW5hdGlvbi4iKTsKKworZnVuY3Rpb24gc2hvdWxkTm90VGhyb3co
ZXhwcmVzc2lvbikKK3sKKyAgdHJ5IHsKKyAgICBldmFsKGV4cHJlc3Npb24pOworICAgIHRlc3RQ
YXNzZWQoZXhwcmVzc2lvbiArICIgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uIik7CisgIH0gY2F0
Y2goZSkgeworICAgIHRlc3RGYWlsZWQoZXhwcmVzc2lvbiArICIgc2hvdWxkIG5vdCB0aHJvdyBl
eGNlcHRpb24uIFRocmV3IGV4Y2VwdGlvbiAiICsgZSk7CisgIH0KK30KKworZnVuY3Rpb24gdGVz
dChleHByZXNzaW9uLCBleHByZXNzaW9uU2hvdWxkVGhyb3csIGV4cGVjdGVkRXhjZXB0aW9uKSB7
CisgICAgaWYgKGV4cHJlc3Npb25TaG91bGRUaHJvdykgeworICAgICAgICBpZiAoZXhwZWN0ZWRF
eGNlcHRpb24pCisgICAgICAgICAgICBzaG91bGRUaHJvdyhleHByZXNzaW9uLCAnKGZ1bmN0aW9u
KCkgeyByZXR1cm4gIicgKyBleHBlY3RlZEV4Y2VwdGlvbiArICciOyB9KSgpOycpOworICAgICAg
ICBlbHNlCisgICAgICAgICAgICBzaG91bGRUaHJvdyhleHByZXNzaW9uLCAnKGZ1bmN0aW9uKCkg
eyByZXR1cm4gIkVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNyI7IH0p
KCk7Jyk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgc2hvdWxkTm90VGhyb3coZXhwcmVzc2lvbik7
CisgICAgfQorfQorCit2YXIgdG9TdHJpbmdFcnJvciA9IG5ldyBFcnJvcigndG9TdHJpbmcgdGhy
ZXcgZXhjZXB0aW9uJyk7Cit2YXIgbm90U3VwcG9ydGVkRXJyb3IgPSBuZXcgRXJyb3IoJ05PVF9T
VVBQT1JURURfRVJSOiBET00gRXhjZXB0aW9uIDknKTsKK3ZhciBlbXB0eUZ1bmN0aW9uID0gZnVu
Y3Rpb24oKSB7fTsKKworZnVuY3Rpb24gT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24oKSB7fTsKK09i
amVjdFRocm93aW5nRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgewor
ICAgIHRocm93IHRvU3RyaW5nRXJyb3I7Cit9Cit2YXIgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24g
PSBuZXcgT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24oKTsKKworc2hvdWxkQmVUcnVlKCJ0eXBlb2Yg
d2Via2l0UGVlckNvbm5lY3Rpb249PSAnZnVuY3Rpb24nIik7CisKKy8vIDAgQXJndW1lbnQKKwor
dGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCknLCB0cnVlLCdUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzJyk7CisKKworCisvLyAxIEFyZ3VtZW50IChuZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24gcmVxdWlyZXMgYXQgbGVhc3QgMiBhcmd1bWVudHMpLgordGVzdCgnbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJTVFVOIDIwMy4wLjExMy4yOjI0NzgiKScsIHRydWUsICdUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TiBleGFtcGxlLm5ldCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMn
KTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3
OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIpJywg
dHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgZXhhbXBsZS5uZXQiKScsIHRydWUsICdUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlRVUk4gMjAzLjAuMTEzLjI6MjQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBh
cmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiByZWxheS5l
eGFtcGxlLm5ldDozNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0Iikn
LCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJUVVJOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IiknLCB0cnVlLCAnVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
KCJUVVJOUyBleGFtcGxlLm5ldCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBOT05FIiknLCB0
cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJUVVJOUyBOT05FIiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5P
TkUiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCdu
ZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUiKScsIHRydWUsICdUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
InVuZGVmaW5lZCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsK
K3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigibnVsbCIpJywgdHJ1ZSwgJ1R5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bih7fSkpJywgdHJ1ZSwgJ1N5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICknKTsKK3Rlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbig0MikpJywgdHJ1ZSwgJ1N5bnRheEVycm9yOiBVbmV4
cGVjdGVkIHRva2VuICknKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbihJbmZpbml0
eSknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uKC1JbmZpbml0eSknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKGVtcHR5
RnVuY3Rpb24pJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKKwor
Ly8yIEFyZ3VtZW50Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gMjAzLjAu
MTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlNUVU4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikn
LCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gZXhhbXBsZS5u
ZXQiLGVtcHR5RnVuY3Rpb24pJyxmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU5TIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVz
dCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFtcGxlLm5ldDozNDc4
IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTlMgZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rp
b24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIHJlbGF5
LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKScsIGZh
bHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgMjAzLjAuMTEzLjI6
MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24oIlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFs
c2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyBleGFtcGxlLm5ldCIs
ZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlRVUk4gTk9ORSIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiLGVtcHR5RnVuY3Rpb24pJyxmYWxzZSk7Cit0ZXN0KCdu
ZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIsZW1wdHlGdW5jdGlvbiknLCBmYWxz
ZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUiLGVtcHR5RnVu
Y3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIE5P
TkUiLHVuZGVmaW5lZCknLCAgdHJ1ZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlRVUk5TIE5PTkUiLHt9KScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTiBOT05FIiw0MiknLCAgdHJ1ZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU5TIE5PTkUiLEluZmluaXR5KScsIHRydWUpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJTVFVOUyBOT05FIiwtSW5maW5pdHkpJywgdHJ1ZSk7CisKKworCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvQXR0cmlidXRlc01ldGhvZC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBmYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9BdHRyaWJ1dGVzTWV0aG9kLmpzCShyZXZpc2lvbiAwKQorKysgZmFzdC9tZWRp
YXN0cmVhbS9zY3JpcHQtdGVzdHMvQXR0cmlidXRlc01ldGhvZC5qcwkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMDcgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyBQZWVyVG9QZWVyQ29ubmVjdGlvbiBy
ZWxhdGVkIEF0dHJpYnV0ZXMgYWNjb3JkaW5nIHRvIGh0dHA6Ly93d3cudzMub3JnL1RSL3dlYnJ0
Yy8iKTsKK3ZhciBzdHJlYW07CitmdW5jdGlvbiBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKQor
eworICB0cnkgeworICAgIGV2YWwoZXhwcmVzc2lvbik7CisgICAgdGVzdFBhc3NlZChleHByZXNz
aW9uICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgfSBjYXRjaChlKSB7CisgICAg
dGVzdEZhaWxlZChleHByZXNzaW9uICsgIiBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4gVGhy
ZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0KGV4cHJlc3Npb24s
IGV4cHJlc3Npb25TaG91bGRUaHJvdywgZXhwZWN0ZWRFeGNlcHRpb24pIHsKKyAgICBpZiAoZXhw
cmVzc2lvblNob3VsZFRocm93KSB7CisgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlvbikKKyAg
ICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAi
JyArIGV4cGVjdGVkRXhjZXB0aW9uICsgJyI7IH0pKCk7Jyk7CisgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAiVHlw
ZUVycm9yOiBUeXBlIGVycm9yIjsgfSkoKTsnKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91
bGROb3RUaHJvdyhleHByZXNzaW9uKTsKKyAgICB9Cit9CitmdW5jdGlvbiBzaG91bGRCZUEoX2Es
IF9iLCBxdWlldCkKK3sKKyAgaWYgKHR5cGVvZiBfYSAhPSAic3RyaW5nIiB8fCB0eXBlb2YgX2Ig
IT0gInN0cmluZyIpCisgICAgZGVidWcoIldBUk46IHNob3VsZEJlKCkgZXhwZWN0cyBzdHJpbmcg
YXJndW1lbnRzIik7CisgIHZhciBleGNlcHRpb247CisgIHZhciBfYXY7CisgIHRyeSB7CisgICAg
IF9hdiA9IGV2YWwoX2EpOworICB9IGNhdGNoIChlKSB7CisgICAgIGV4Y2VwdGlvbiA9IGU7Cisg
IH0KKyAgdmFyIF9idiA9IGV2YWwoX2IpOworCisgIGlmIChleGNlcHRpb24pCisgICAgdGVzdEZh
aWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBUaHJldyBleGNlcHRpb24gIiArIGV4
Y2VwdGlvbik7CisgIGVsc2UgaWYgKGlzUmVzdWx0Q29ycmVjdChfYXYsIF9idikpIHsKKyAgICBp
ZiAoIXF1aWV0KSB7CisgICAgICAgIHRlc3RQYXNzZWQoX2EgKyAiIGlzICIgKyBfYik7CisgICAg
fQorICB9IGVsc2UgaWYgKHR5cGVvZihfYXYpID09IHR5cGVvZihfYnYpKQorICAgIHRlc3RGYWls
ZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIi4gV2FzICIgKyBzdHJpbmdpZnkoX2F2KSAr
ICIuIik7CisgIGVsc2UKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiAr
ICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYnYgKyAiKS4gV2FzICIgKyBfYXYgKyAiIChvZiB0eXBl
ICIgKyB0eXBlb2YgX2F2ICsgIikuIik7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEJlVHJ1ZUEoX2Ep
IHsgc2hvdWxkQmVBKF9hLCAidHJ1ZSIpOyB9CisKK3ZhciB0b1N0cmluZ0Vycm9yID0gbmV3IEVy
cm9yKCd0b1N0cmluZyB0aHJldyBleGNlcHRpb24nKTsKK3ZhciBub3RTdXBwb3J0ZWRFcnJvciA9
IG5ldyBFcnJvcignTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOScpOwordmFyIGVt
cHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpIHt9OworCisKK2Z1bmN0aW9uIE9iamVjdFRocm93aW5n
RXhjZXB0aW9uKCkge307CitPYmplY3RUaHJvd2luZ0V4Y2VwdGlvbi5wcm90b3R5cGUudG9TdHJp
bmcgPSBmdW5jdGlvbigpIHsKKyAgICB0aHJvdyB0b1N0cmluZ0Vycm9yOworfQordmFyIG9iamVj
dFRocm93aW5nRXhjZXB0aW9uID0gbmV3IE9iamVjdFRocm93aW5nRXhjZXB0aW9uKCk7CisKKwor
bmF2aWdhdG9yLndlYmtpdEdldFVzZXJNZWRpYSgidmlkZW8iLCBnb3RTdHJlYW0sIGdvdFN0cmVh
bUZhaWxlZCk7CisKK2Z1bmN0aW9uIGdvdFN0cmVhbShzKSB7CitzdHJlYW0gPSBzOworfQorCitm
dW5jdGlvbiBnb3RTdHJlYW1GYWlsZWQoZXJyb3IpIHsKKyAgYWxlcnQoIkZhaWxlZCB0byBnZXQg
YWNjZXNzIHRvIHdlYmNhbS4gRXJyb3IgY29kZSB3YXMgIiArIGVycm9yLmNvZGUpOworfQorCisK
K3ZhciBwYz1uZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIsIGVtcHR5RnVuY3Rp
b24pOworLy9tZXRob2QKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5hZGRTdHJlYW0gPT0gJ2Z1
bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLnJlbW92ZVN0cmVhbSA9PSAnZnVu
Y3Rpb24nIik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMuY2xvc2UgPT0gJ2Z1bmN0aW9uJyIp
OworCisvL3BlZXJjb25uZWN0aW9uIHJlYWR5U3RhdGUgCitzaG91bGRCZVRydWVBKCJwYy5ORVcg
PT0wIik7CitzaG91bGRCZVRydWVBKCJwYy5ORUdPVElBVElORyA9PSAxIik7CitzaG91bGRCZVRy
dWVBKCJwYy5BQ1RJVkUgPT0gMiIpOworc2hvdWxkQmVUcnVlQSgicGMuQ0xPU0VEID09IDMiKTsK
KworLy9pY2VTdGF0ZSBhbmQgU0RQIHN0YXRlCitzaG91bGRCZVRydWVBKCJwYy5JQ0VfR0FUSEVS
SU5HID09IDB4MTAwICIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX1dBSVRJTkcgPT0gMHgyMDAi
KTsKK3Nob3VsZEJlVHJ1ZUEoInBjLklDRV9DSEVDS0lORyA9PSAweDMwMCIpOworc2hvdWxkQmVU
cnVlQSgicGMuSUNFX0NPTk5FQ1RFRCA9PSAweDQwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNF
X0NPTVBMRVRFRCA9PSAweDUwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0ZBSUxFRCA9PSAw
eDYwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NMT1NFRCA9PSAweDcwMCIpOworc2hvdWxk
QmVUcnVlQSgicGMuU0RQX0lETEUgPT0gMHgxMDAwIik7CitzaG91bGRCZVRydWVBKCJwYy5TRFBf
V0FJVElORyA9PSAweDIwMDAiKTsKK3Nob3VsZEJlVHJ1ZUEoInBjLlNEUF9HTEFSRSA9PTB4MzAw
MCIpOworCisvL01lZGlhU3RyZWFtW10gYXR0cmlidXRlCitzaG91bGRCZVRydWVBKCJ0eXBlb2Yg
cGMubG9jYWxTdHJlYW1zID09ICdvYmplY3QnIik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMu
cmVtb3RlU3RyZWFtcyA9PSAnb2JqZWN0JyIpOworCisvL2NhbGxiYWNrIGZ1bmN0aW9uIGRlZmlu
aXRpb24gCitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMub25hZGRzdHJlYW0gPT0gJ29iamVjdCci
KTsKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5vbnJlbW92ZXN0cmVhbSA9PSAnb2JqZWN0JyIp
Oworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9uY29ubmVjdGluZyA9PSAnb2JqZWN0JyIpOwor
c2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9ub3BlbiA9PSAnb2JqZWN0JyIpOworCit3aW5kb3cu
anNUZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3QvbWVkaWFz
dHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS5qcwkocmV2aXNpb24g
MTA3NzQzKQorKysgZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24t
YWRkc3RyZWFtLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw4ICsyNSwyNiBAQAogfSBjYXRjaChl
KSB7CiAgICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKG5ldyBBcnJheSgpKSB0aHJldyAnICsg
ZSk7CiB9Cit0cnkgeworICAgIHBjLmFkZFN0cmVhbSh7fSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0
ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0oe30pIHRocmV3JyArIGUpOworfQordHJ5IHsKKyAgICBw
Yy5hZGRTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3Ry
ZWFtKDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7CisgICAgcGMuYWRkU3RyZWFtKEluZmluaXR5
KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLmFkZFN0cmVhbShJbmZpbml0eSkg
dGhyZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLmFkZFN0cmVhbSgtSW5maW5pdHkpOworfSBj
YXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKC1JbmZpbml0eSkgdGhyZXcn
ICsgZSk7Cit9CiAKLWZpbmlzaEpTVGVzdCgpOwotCiB3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKIApJbmRleDogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5l
Y3Rpb24tcmVtb3Zlc3RyZWFtLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3QvbWVkaWFzdHJlYW0vc2Ny
aXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5qcwkocmV2aXNpb24gMCkKKysr
IGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVh
bS5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFBl
ZXJDb25uZWN0aW9uOjpyZW1vdmVTdHJlYW0oKS4iKTsKKwordmFyIHBjID0gbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJTVFVOIHNvbWUuc2VydmVyLmNvbSIsIGZ1bmN0aW9uKCkge30pOworCit0
cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSgpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3Nl
ZCgncGMucmVtb3ZlU3RyZWFtKCkgdGhyZXcgJyArIGUpOworfQorCit0cnkgeworICAgIHBjLnJl
bW92ZVN0cmVhbSh1bmRlZmluZWQpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMu
cmVtb3ZlU3RyZWFtKHVuZGVmaW5lZCkgdGhyZXcgJyArIGUpOworfQorCit0cnkgeworICAgIHBj
LnJlbW92ZVN0cmVhbShudWxsKTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLnJl
bW92ZVN0cmVhbShudWxsKSB0aHJldyAnICsgZSk7Cit9CisKK3RyeSB7CisgICAgcGMucmVtb3Zl
U3RyZWFtKG5ldyBBcnJheSgpKTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLnJl
bW92ZVN0cmVhbShuZXcgQXJyYXkoKSkgdGhyZXcgJyArIGUpOworfQordHJ5IHsKKyAgICBwYy5y
ZW1vdmVTdHJlYW0oe30pOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3Zl
U3RyZWFtKHt9KSB0aHJldycgKyBlKTsKK30KK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKDQy
KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLnJlbW92ZVN0cmVhbSg0MikgdGhy
ZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbShJbmZpbml0eSk7Cit9IGNh
dGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0oSW5maW5pdHkpIHRocmV3
JyArIGUpOworfQordHJ5IHsKKyAgICBwYy5yZW1vdmVTdHJlYW0oLUluZmluaXR5KTsKK30gY2F0
Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLnJlbW92ZVN0cmVhbSgtSW5maW5pdHkpIHRocmV3
JyArIGUpOworfQorCit3aW5kb3cuc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKwpJbmRleDog
ZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1s
CShyZXZpc2lvbiAwKQorKysgZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVz
dHJlYW0uaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwg
UFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJl
bD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4K
KzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1yZW1v
dmVzdHJlYW0uanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogZmFzdC9tZWRp
YXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTA3NzQzKQorKysgZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1h
ZGRzdHJlYW0tZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC03LDYgKzcsMTAgQEAKIFBB
U1MgcGMuYWRkU3RyZWFtKHVuZGVmaW5lZCkgdGhyZXcgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3CiBQQVNTIHBjLmFkZFN0cmVhbShudWxsKSB0aHJldyBFcnJvcjog
VFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKIFBBU1MgcGMuYWRkU3RyZWFtKG5l
dyBBcnJheSgpKSB0aHJldyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMuYWRkU3RyZWFt
KHt9KSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5hZGRTdHJlYW0oNDIpIHRo
cmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLmFkZFN0cmVhbShJbmZpbml0eSkgdGhy
ZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMuYWRkU3RyZWFtKC1JbmZpbml0eSkgdGhy
ZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1h
cmd1bWVudC10eXBlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZmFzdC9tZWRpYXN0cmVh
bS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw1NSBAQAorVGVzdHMgdGhlIGFjY2VwdGFi
bGUgdHlwZXMgZm9yIGFyZ3VtZW50cyB0byBtZXRob2QgZm9yIFBlZXJUb1BlZXJDb25uZWN0aW9u
IGRlZmluYXRpb24uCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFT
UyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHR5cGVv
ZiB3ZWJraXRQZWVyQ29ubmVjdGlvbj09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIDIwMy4wLjEx
My4yOjI0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIHJlbGF5LmV4YW1wbGUubmV0
OjM0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4K
K1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIGV4YW1wbGUubmV0IikgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3OCIpIHRocmV3IGV4Y2VwdGlv
biBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlNUVU5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4g
MjAzLjAuMTEzLjI6MjQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gcmVsYXkuZXhh
bXBsZS5uZXQ6MzQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gZXhhbXBsZS5uZXQi
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyAyMDMuMC4xMTMuMjoyNDc4IikgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIpIHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oIlRVUk5TIGV4YW1wbGUubmV0IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiVFVSTiBOT05FIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNU
VU5TIE5PTkUiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJ1bmRlZmluZWQiKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJudWxsIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbih7fSkpIHRocmV3IGV4
Y2VwdGlvbiBTeW50YXhFcnJvcjogVW5leHBlY3RlZCB0b2tlbiApLgorUEFTUyBuZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oNDIpKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0
ZWQgdG9rZW4gKS4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKEluZmluaXR5KSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
Tm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbihlbXB0
eUZ1bmN0aW9uKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIDIwMy4wLjExMy4yOjI0Nzgi
LGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oIlNUVU4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlv
bikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3
OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5j
dGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbigiU1RVTlMgZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhj
ZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gMjAzLjAuMTEzLjI6
MjQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0eUZ1
bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyAyMDMuMC4xMTMu
MjoyNDc4IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0
eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJUVVJOUyBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBOT05FIixl
bXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJUVVJOUyBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5PTkUiLGVtcHR5
RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlNUVU5TIE5PTkUiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIsdW5kZWZpbmVk
KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9u
IDE3LgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiLHt9KSBkaWQg
bm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVO
IE5PTkUiLDQyKSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUi
LEluZmluaXR5KSB0aHJldyBleGNlcHRpb24gRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3LgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUi
LC1JbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCkluZGV4OiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0
ZXNNZXRob2QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGZhc3QvbWVkaWFzdHJlYW0vcGVl
cmNvbm5lY3Rpb24tQXR0cmlidXRlc01ldGhvZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXNNZXRob2QtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMyIEBACitUZXN0cyBQZWVyVG9QZWVyQ29u
bmVjdGlvbiByZWxhdGVkIEF0dHJpYnV0ZXMgYWNjb3JkaW5nIHRvIGh0dHA6Ly93d3cudzMub3Jn
L1RSL3dlYnJ0Yy8KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdHlwZW9m
IHBjLmFkZFN0cmVhbSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLnJlbW92
ZVN0cmVhbSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLmNsb3NlID09ICdm
dW5jdGlvbicgaXMgdHJ1ZQorUEFTUyBwYy5ORVcgPT0wIGlzIHRydWUKK1BBU1MgcGMuTkVHT1RJ
QVRJTkcgPT0gMSBpcyB0cnVlCitQQVNTIHBjLkFDVElWRSA9PSAyIGlzIHRydWUKK1BBU1MgcGMu
Q0xPU0VEID09IDMgaXMgdHJ1ZQorUEFTUyBwYy5JQ0VfR0FUSEVSSU5HID09IDB4MTAwICBpcyB0
cnVlCitQQVNTIHBjLklDRV9XQUlUSU5HID09IDB4MjAwIGlzIHRydWUKK1BBU1MgcGMuSUNFX0NI
RUNLSU5HID09IDB4MzAwIGlzIHRydWUKK1BBU1MgcGMuSUNFX0NPTk5FQ1RFRCA9PSAweDQwMCBp
cyB0cnVlCitQQVNTIHBjLklDRV9DT01QTEVURUQgPT0gMHg1MDAgaXMgdHJ1ZQorUEFTUyBwYy5J
Q0VfRkFJTEVEID09IDB4NjAwIGlzIHRydWUKK1BBU1MgcGMuSUNFX0NMT1NFRCA9PSAweDcwMCBp
cyB0cnVlCitQQVNTIHBjLlNEUF9JRExFID09IDB4MTAwMCBpcyB0cnVlCitQQVNTIHBjLlNEUF9X
QUlUSU5HID09IDB4MjAwMCBpcyB0cnVlCitQQVNTIHBjLlNEUF9HTEFSRSA9PTB4MzAwMCBpcyB0
cnVlCitQQVNTIHR5cGVvZiBwYy5sb2NhbFN0cmVhbXMgPT0gJ29iamVjdCcgaXMgdHJ1ZQorUEFT
UyB0eXBlb2YgcGMucmVtb3RlU3RyZWFtcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVv
ZiBwYy5vbmFkZHN0cmVhbSA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5vbnJl
bW92ZXN0cmVhbSA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5vbmNvbm5lY3Rp
bmcgPT0gJ29iamVjdCcgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgcGMub25vcGVuID09ICdvYmplY3Qn
IGlzIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127288</attachid>
            <date>2012-02-15 18:12:19 -0800</date>
            <delta_ts>2012-02-20 19:49:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>peerconnection_new.patch</filename>
            <type>text/plain</type>
            <size>23293</size>
            <attacher name="Yanbin">yanbin.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwNzc4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisgMjAxMi0wMi0xNiAgWWFuYmluIFpoYW5nICA8
eWFuYmluLnpoYW5nQGludGVsLmNvbT4KKyAgICAgVGhlcmUgaXMgbm8gY29tcGxldGUgdGVzdCBj
YXNlcyBvZiBvcHRpb25hbCBhcmd1bWVudHMgZm9yIE1lZGlhU3RyZWFtIEFQSSBhbmQgUGVlckNv
bm5lY3Rpb24KKyAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4
NTc4CisgICAgIAorICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgIAor
ICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXNNZXRo
b2QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVy
Y29ubmVjdGlvbi1BdHRyaWJ1dGVzTWV0aG9kLmh0bWw6IEFkZGVkLgorICAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQ6CisgICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVj
dGlvbi1hcmd1bWVudC10eXBlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uaHRt
bDogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL0F0dHJp
YnV0ZXNNZXRob2QuanM6IEFkZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Njcmlw
dC10ZXN0cy9hcmd1bWVudC10eXBlcy5qczogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFz
dHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS5qczoKKyAgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3Ry
ZWFtLmpzOiBBZGRlZC4KKwogMjAxMi0wMi0xNSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3
ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gVW5yZXZpZXdlZCBtb3JuaW5nIGdhcmRlbmluZy4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmli
dXRlcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRl
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzIgQEAKK1Rlc3RzIFBlZXJU
b1BlZXJDb25uZWN0aW9uIHJlbGF0ZWQgQXR0cmlidXRlcyBhY2NvcmRpbmcgdG8gaHR0cDovL3d3
dy53My5vcmcvVFIvd2VicnRjLworCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMg
b2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFT
UyB0eXBlb2YgcGMuYWRkU3RyZWFtID09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyB0eXBlb2Yg
cGMucmVtb3ZlU3RyZWFtID09ICdmdW5jdGlvbicgaXMgdHJ1ZQorUEFTUyB0eXBlb2YgcGMuY2xv
c2UgPT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNTIHBjLk5FVyA9PTAgaXMgdHJ1ZQorUEFTUyBw
Yy5ORUdPVElBVElORyA9PSAxIGlzIHRydWUKK1BBU1MgcGMuQUNUSVZFID09IDIgaXMgdHJ1ZQor
UEFTUyBwYy5DTE9TRUQgPT0gMyBpcyB0cnVlCitQQVNTIHBjLklDRV9HQVRIRVJJTkcgPT0gMHgx
MDAgIGlzIHRydWUKK1BBU1MgcGMuSUNFX1dBSVRJTkcgPT0gMHgyMDAgaXMgdHJ1ZQorUEFTUyBw
Yy5JQ0VfQ0hFQ0tJTkcgPT0gMHgzMDAgaXMgdHJ1ZQorUEFTUyBwYy5JQ0VfQ09OTkVDVEVEID09
IDB4NDAwIGlzIHRydWUKK1BBU1MgcGMuSUNFX0NPTVBMRVRFRCA9PSAweDUwMCBpcyB0cnVlCitQ
QVNTIHBjLklDRV9GQUlMRUQgPT0gMHg2MDAgaXMgdHJ1ZQorUEFTUyBwYy5JQ0VfQ0xPU0VEID09
IDB4NzAwIGlzIHRydWUKK1BBU1MgcGMuU0RQX0lETEUgPT0gMHgxMDAwIGlzIHRydWUKK1BBU1Mg
cGMuU0RQX1dBSVRJTkcgPT0gMHgyMDAwIGlzIHRydWUKK1BBU1MgcGMuU0RQX0dMQVJFID09MHgz
MDAwIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLmxvY2FsU3RyZWFtcyA9PSAnb2JqZWN0JyBpcyB0
cnVlCitQQVNTIHR5cGVvZiBwYy5yZW1vdGVTdHJlYW1zID09ICdvYmplY3QnIGlzIHRydWUKK1BB
U1MgdHlwZW9mIHBjLm9uYWRkc3RyZWFtID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9m
IHBjLm9ucmVtb3Zlc3RyZWFtID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9u
Y29ubmVjdGluZyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5vbm9wZW4gPT0g
J29iamVjdCcgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5l
Y3Rpb24tQXR0cmlidXRlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRlcy5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAi
LS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxl
c2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvQXR0cmlidXRlcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJj
b25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxMDc3ODkpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJj
b25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiAr
NywxMCBAQCBQQVNTIHBjLmFkZFN0cmVhbSgpIHRocmV3IFR5cGVFcnJvcjogTm90CiBQQVNTIHBj
LmFkZFN0cmVhbSh1bmRlZmluZWQpIHRocmV3IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNwogUEFTUyBwYy5hZGRTdHJlYW0obnVsbCkgdGhyZXcgRXJyb3I6IFRZUEVf
TUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3CiBQQVNTIHBjLmFkZFN0cmVhbShuZXcgQXJy
YXkoKSkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLmFkZFN0cmVhbSh7fSkg
dGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMuYWRkU3RyZWFtKDQyKSB0aHJld1R5
cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5hZGRTdHJlYW0oSW5maW5pdHkpIHRocmV3VHlw
ZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLmFkZFN0cmVhbSgtSW5maW5pdHkpIHRocmV3VHlw
ZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRF
U1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5l
Y3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVy
Y29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNTUgQEAKK1Rlc3RzIHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBhcmd1bWVudHMgdG8g
bWV0aG9kIGZvciBQZWVyVG9QZWVyQ29ubmVjdGlvbiBkZWZpbmF0aW9uLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0eXBlb2Ygd2Via2l0UGVlckNvbm5lY3Rpb249PSAn
ZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5
cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbigiU1RVTiBleGFtcGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIDIw
My4wLjExMy4yOjI0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFt
cGxlLm5ldDozNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgZXhhbXBsZS5uZXQi
KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1Mg
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNl
cHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigi
VFVSTlMgMjAzLjAuMTEzLjI6MjQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIHJl
bGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyBleGFt
cGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
LgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5P
TkUiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BB
U1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigidW5kZWZpbmVkIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigibnVsbCIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oe30pKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gKS4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKDQyKSkgdGhyZXcg
ZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICkuCitQQVNTIG5ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbihJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigtSW5maW5p
dHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRo
cm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIHJlbGF5
LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gZXhhbXBsZS5uZXQiLGVtcHR5
RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlNUVU5TIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIHJl
bGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIGV4YW1wbGUubmV0Iixl
bXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBu
b3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4g
cmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBleGFtcGxlLm5ldCIs
ZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbigiVFVSTlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbikgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVS
TlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgZXhhbXBsZS5u
ZXQiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJv
dyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIs
ZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIixlbXB0
eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJUVVJOIE5PTkUiLHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBU
WVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJUVVJOUyBOT05FIix7fSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNT
IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIiw0MikgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIixJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9u
IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIiwtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlv
biBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24t
YXJndW1lbnQtdHlwZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVk
aWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRN
TC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0i
ZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9
InNjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJl
bW92ZXN0cmVhbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1y
ZW1vdmVzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitU
ZXN0cyBQZWVyQ29ubmVjdGlvbjo6cmVtb3ZlU3RyZWFtKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIHBjLnJlbW92ZVN0cmVhbSgpIHRocmV3IFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKHVuZGVmaW5lZCkgdGhyZXcg
RXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3CitQQVNTIHBjLnJlbW92
ZVN0cmVhbShudWxsKSB0aHJldyBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRp
b24gMTcKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKG5ldyBBcnJheSgpKSB0aHJldyBUeXBlRXJyb3I6
IFR5cGUgZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKHt9KSB0aHJld1R5cGVFcnJvcjogVHlw
ZSBlcnJvcgorUEFTUyBwYy5yZW1vdmVTdHJlYW0oNDIpIHRocmV3VHlwZUVycm9yOiBUeXBlIGVy
cm9yCitQQVNTIHBjLnJlbW92ZVN0cmVhbShJbmZpbml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKC1JbmZpbml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5
cGUgZXJyb3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJl
bW92ZXN0cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+
Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1dGVzLmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL0F0dHJpYnV0ZXMuanMJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRy
aWJ1dGVzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNiBAQAorZGVzY3JpcHRpb24oIlRl
c3RzIFBlZXJUb1BlZXJDb25uZWN0aW9uIHJlbGF0ZWQgQXR0cmlidXRlcyBhY2NvcmRpbmcgdG8g
aHR0cDovL3d3dy53My5vcmcvVFIvd2VicnRjLyIpOwordmFyIHN0cmVhbTsKK2Z1bmN0aW9uIHNo
b3VsZE5vdFRocm93KGV4cHJlc3Npb24pCit7CisgIHRyeSB7CisgICAgZXZhbChleHByZXNzaW9u
KTsKKyAgICB0ZXN0UGFzc2VkKGV4cHJlc3Npb24gKyAiIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9u
LiIpOworICB9IGNhdGNoKGUpIHsKKyAgICB0ZXN0RmFpbGVkKGV4cHJlc3Npb24gKyAiIHNob3Vs
ZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGUpOworICB9Cit9CisK
K2Z1bmN0aW9uIHRlc3QoZXhwcmVzc2lvbiwgZXhwcmVzc2lvblNob3VsZFRocm93LCBleHBlY3Rl
ZEV4Y2VwdGlvbikgeworICAgIGlmIChleHByZXNzaW9uU2hvdWxkVGhyb3cpIHsKKyAgICAgICAg
aWYgKGV4cGVjdGVkRXhjZXB0aW9uKQorICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lv
biwgJyhmdW5jdGlvbigpIHsgcmV0dXJuICInICsgZXhwZWN0ZWRFeGNlcHRpb24gKyAnIjsgfSko
KTsnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwg
JyhmdW5jdGlvbigpIHsgcmV0dXJuICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiOyB9KSgpOycpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZE5vdFRocm93KGV4cHJlc3Npb24pOworICAgIH0K
K30KK2Z1bmN0aW9uIHNob3VsZEJlQShfYSwgX2IsIHF1aWV0KQoreworICBpZiAodHlwZW9mIF9h
ICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjog
c2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgdmFyIGV4Y2VwdGlvbjsK
KyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUp
IHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAg
aWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiAr
ICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoaXNSZXN1bHRD
b3JyZWN0KF9hdiwgX2J2KSkgeworICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgdGVzdFBhc3Nl
ZChfYSArICIgaXMgIiArIF9iKTsKKyAgICB9CisgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0g
dHlwZW9mKF9idikpCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAi
LiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQo
X2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIp
LiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKwor
ZnVuY3Rpb24gc2hvdWxkQmVUcnVlQShfYSkgeyBzaG91bGRCZUEoX2EsICJ0cnVlIik7IH0KKwor
dmFyIHRvU3RyaW5nRXJyb3IgPSBuZXcgRXJyb3IoJ3RvU3RyaW5nIHRocmV3IGV4Y2VwdGlvbicp
OwordmFyIG5vdFN1cHBvcnRlZEVycm9yID0gbmV3IEVycm9yKCdOT1RfU1VQUE9SVEVEX0VSUjog
RE9NIEV4Y2VwdGlvbiA5Jyk7Cit2YXIgZW1wdHlGdW5jdGlvbiA9IGZ1bmN0aW9uKCkge307CisK
KworZnVuY3Rpb24gT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24oKSB7fTsKK09iamVjdFRocm93aW5n
RXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93IHRv
U3RyaW5nRXJyb3I7Cit9Cit2YXIgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24gPSBuZXcgT2JqZWN0
VGhyb3dpbmdFeGNlcHRpb24oKTsKKworCituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2
aWRlbyIsIGdvdFN0cmVhbSwgZ290U3RyZWFtRmFpbGVkKTsKK2Z1bmN0aW9uIGdvdFN0cmVhbShz
KSB7CitzdHJlYW0gPSBzOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW1GYWlsZWQoZXJyb3IpIHsK
KyAgYWxlcnQoIkZhaWxlZCB0byBnZXQgYWNjZXNzIHRvIHdlYmNhbS4gRXJyb3IgY29kZSB3YXMg
IiArIGVycm9yLmNvZGUpOworfQorCisKK3ZhciBwYz1uZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlNUVU4gTk9ORSIsIGVtcHR5RnVuY3Rpb24pOworLy9tZXRob2QKK3Nob3VsZEJlVHJ1ZUEoInR5
cGVvZiBwYy5hZGRTdHJlYW0gPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9m
IHBjLnJlbW92ZVN0cmVhbSA9PSAnZnVuY3Rpb24nIik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2Yg
cGMuY2xvc2UgPT0gJ2Z1bmN0aW9uJyIpOworCisvL3BlZXJjb25uZWN0aW9uIHJlYWR5U3RhdGUg
CitzaG91bGRCZVRydWVBKCJwYy5ORVcgPT0wIik7CitzaG91bGRCZVRydWVBKCJwYy5ORUdPVElB
VElORyA9PSAxIik7CitzaG91bGRCZVRydWVBKCJwYy5BQ1RJVkUgPT0gMiIpOworc2hvdWxkQmVU
cnVlQSgicGMuQ0xPU0VEID09IDMiKTsKKworLy9pY2VTdGF0ZSBhbmQgU0RQIHN0YXRlCitzaG91
bGRCZVRydWVBKCJwYy5JQ0VfR0FUSEVSSU5HID09IDB4MTAwICIpOworc2hvdWxkQmVUcnVlQSgi
cGMuSUNFX1dBSVRJTkcgPT0gMHgyMDAiKTsKK3Nob3VsZEJlVHJ1ZUEoInBjLklDRV9DSEVDS0lO
RyA9PSAweDMwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NPTk5FQ1RFRCA9PSAweDQwMCIp
Oworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NPTVBMRVRFRCA9PSAweDUwMCIpOworc2hvdWxkQmVU
cnVlQSgicGMuSUNFX0ZBSUxFRCA9PSAweDYwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NM
T1NFRCA9PSAweDcwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuU0RQX0lETEUgPT0gMHgxMDAwIik7
CitzaG91bGRCZVRydWVBKCJwYy5TRFBfV0FJVElORyA9PSAweDIwMDAiKTsKK3Nob3VsZEJlVHJ1
ZUEoInBjLlNEUF9HTEFSRSA9PTB4MzAwMCIpOworCisvL01lZGlhU3RyZWFtW10gYXR0cmlidXRl
CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMubG9jYWxTdHJlYW1zID09ICdvYmplY3QnIik7Citz
aG91bGRCZVRydWVBKCJ0eXBlb2YgcGMucmVtb3RlU3RyZWFtcyA9PSAnb2JqZWN0JyIpOworCisv
L2NhbGxiYWNrIGZ1bmN0aW9uIGRlZmluaXRpb24gCitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMu
b25hZGRzdHJlYW0gPT0gJ29iamVjdCciKTsKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5vbnJl
bW92ZXN0cmVhbSA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9uY29u
bmVjdGluZyA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9ub3BlbiA9
PSAnb2JqZWN0JyIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMv
YXJndW1lbnQtdHlwZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw4OSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBh
cmd1bWVudHMgdG8gbWV0aG9kIGZvciBQZWVyVG9QZWVyQ29ubmVjdGlvbiBkZWZpbmF0aW9uLiIp
OworCitmdW5jdGlvbiBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKQoreworICB0cnkgeworICAg
IGV2YWwoZXhwcmVzc2lvbik7CisgICAgdGVzdFBhc3NlZChleHByZXNzaW9uICsgIiBkaWQgbm90
IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgfSBjYXRjaChlKSB7CisgICAgdGVzdEZhaWxlZChleHBy
ZXNzaW9uICsgIiBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIg
KyBlKTsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91
bGRUaHJvdywgZXhwZWN0ZWRFeGNlcHRpb24pIHsKKyAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRo
cm93KSB7CisgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlvbikKKyAgICAgICAgICAgIHNob3Vs
ZFRocm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAiJyArIGV4cGVjdGVkRXhj
ZXB0aW9uICsgJyI7IH0pKCk7Jyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZFRo
cm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAiRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3IjsgfSkoKTsnKTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKTsKKyAgICB9Cit9CisKK3ZhciB0b1N0cmluZ0Vy
cm9yID0gbmV3IEVycm9yKCd0b1N0cmluZyB0aHJldyBleGNlcHRpb24nKTsKK3ZhciBub3RTdXBw
b3J0ZWRFcnJvciA9IG5ldyBFcnJvcignTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24g
OScpOwordmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpIHt9OworCitmdW5jdGlvbiBPYmpl
Y3RUaHJvd2luZ0V4Y2VwdGlvbigpIHt9OworT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24ucHJvdG90
eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgdG9TdHJpbmdFcnJvcjsKK30K
K3ZhciBvYmplY3RUaHJvd2luZ0V4Y2VwdGlvbiA9IG5ldyBPYmplY3RUaHJvd2luZ0V4Y2VwdGlv
bigpOworCitzaG91bGRCZVRydWUoInR5cGVvZiB3ZWJraXRQZWVyQ29ubmVjdGlvbj09ICdmdW5j
dGlvbiciKTsKKworLy8gMCBBcmd1bWVudAordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
KCknLCB0cnVlLCdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7CisKKy8vIDEgQXJn
dW1lbnQgKG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbiByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3Vt
ZW50cykuCit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gMjAzLjAuMTEzLjI6
MjQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4Iikn
LCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIGV4YW1wbGUubmV0IiknLCB0cnVlLCAnVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
KCJTVFVOUyAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxh
eS5leGFtcGxlLm5ldDozNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5l
dCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAn
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJy
b3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlRVUk4gZXhhbXBsZS5uZXQiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIDIwMy4wLjEx
My4yOjI0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0
ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0
NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCdu
ZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIGV4YW1wbGUubmV0IiknLCB0cnVlLCAnVHlw
ZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJUVVJOIE5PTkUiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiKScsIHRy
dWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9O
RSIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigidW5kZWZpbmVkIiknLCB0cnVlLCAnVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJu
dWxsIiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgn
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKHt9KSknLCB0cnVlLCAnU3ludGF4RXJyb3I6IFVuZXhw
ZWN0ZWQgdG9rZW4gKScpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKDQyKSknLCB0
cnVlLCAnU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gKScpOwordGVzdCgnbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKEluZmluaXR5KScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oLUluZmluaXR5KScs
IHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oZW1wdHlGdW5jdGlvbiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cycpOworCisvLzIgQXJndW1lbnQKK3Rlc3QoJ25ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNl
KTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5l
dDozNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiU1RVTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbiknLGZhbHNlKTsKK3Rlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlG
dW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5T
IHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgn
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlv
biknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gMjAzLjAu
MTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikn
LCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gZXhhbXBsZS5u
ZXQiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uKCJUVVJOUyAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rl
c3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3
OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlRVUk5TIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBOT05FIixlbXB0eUZ1bmN0aW9uKScsIGZhbHNl
KTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIsZW1wdHlGdW5j
dGlvbiknLGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05F
IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTlMgTk9ORSIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIsdW5kZWZpbmVkKScsICB0cnVlKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIse30pJywgZmFsc2UpOwordGVzdCgn
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5PTkUiLDQyKScsICB0cnVlKTsKK3Rlc3Qo
J25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9ORSIsSW5maW5pdHkpJywgdHJ1ZSk7
Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUiLC1JbmZpbml0eSkn
LCB0cnVlKTsKKworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gZmFsc2U7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRz
dHJlYW0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzCShyZXZpc2lvbiAxMDc2MjEpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlv
bi1hZGRzdHJlYW0uanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDI2IEBAIHRyeSB7CiB9
IGNhdGNoKGUpIHsKICAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0obmV3IEFycmF5KCkpIHRo
cmV3ICcgKyBlKTsKIH0KLQotZmluaXNoSlNUZXN0KCk7Cit0cnkgeworICAgIHBjLmFkZFN0cmVh
bSh7fSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0oe30pIHRo
cmV3JyArIGUpOworfQordHJ5IHsKKyAgICBwYy5hZGRTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7
CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7
CisgICAgcGMuYWRkU3RyZWFtKEluZmluaXR5KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNz
ZWQoJ3BjLmFkZFN0cmVhbShJbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBj
LmFkZFN0cmVhbSgtSW5maW5pdHkpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMu
YWRkU3RyZWFtKC1JbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9CiAKIHdpbmRvdy5zdWNjZXNzZnVs
bHlQYXJzZWQgPSB0cnVlOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Nj
cmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24t
cmVtb3Zlc3RyZWFtLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmpzCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDUwIEBACitkZXNjcmlwdGlvbigiVGVzdHMgUGVlckNvbm5lY3Rpb246
OnJlbW92ZVN0cmVhbSgpLiIpOworCit2YXIgcGMgPSBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlNUVU4gc29tZS5zZXJ2ZXIuY29tIiwgZnVuY3Rpb24oKSB7fSk7CisKK3RyeSB7CisgICAgcGMu
cmVtb3ZlU3RyZWFtKCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVT
dHJlYW0oKSB0aHJldyAnICsgZSk7Cit9CisKK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKHVu
ZGVmaW5lZCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0o
dW5kZWZpbmVkKSB0aHJldyAnICsgZSk7Cit9CisKK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFt
KG51bGwpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG51
bGwpIHRocmV3ICcgKyBlKTsKK30KKwordHJ5IHsKKyAgICBwYy5yZW1vdmVTdHJlYW0obmV3IEFy
cmF5KCkpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG5l
dyBBcnJheSgpKSB0aHJldyAnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSh7
fSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0oe30pIHRo
cmV3JyArIGUpOworfQordHJ5IHsKKyAgICBwYy5yZW1vdmVTdHJlYW0oNDIpOworfSBjYXRjaChl
KSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKDQyKSB0aHJldycgKyBlKTsKK30K
K3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKEluZmluaXR5KTsKK30gY2F0Y2goZSkgeworICAg
IHRlc3RQYXNzZWQoJ3BjLnJlbW92ZVN0cmVhbShJbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9Cit0
cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSgtSW5maW5pdHkpOworfSBjYXRjaChlKSB7CisgICAg
dGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKC1JbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9CisK
K3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCg==
</data>
<flag name="commit-queue"
          id="129958"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127798</attachid>
            <date>2012-02-20 03:26:05 -0800</date>
            <delta_ts>2012-02-20 19:57:17 -0800</delta_ts>
            <desc>new patch</desc>
            <filename>peerconnection_new.patch</filename>
            <type>text/plain</type>
            <size>23491</size>
            <attacher name="Yanbin">yanbin.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwNzc4OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisgMjAxMi0wMi0xNiAgWWFuYmluIFpoYW5nICA8
eWFuYmluLnpoYW5nQGludGVsLmNvbT4KKyAgICAgICAgIFRoZXJlIGlzIG5vIGNvbXBsZXRlIHRl
c3QgY2FzZXMgb2Ygb3B0aW9uYWwgYXJndW1lbnRzIGZvciBNZWRpYVN0cmVhbSBBUEkgYW5kIFBl
ZXJDb25uZWN0aW9uCisgICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Nzg1NzgKKyAgICAgCisgICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KyAgICAgCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmli
dXRlc01ldGhvZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3Ry
ZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXNNZXRob2QuaHRtbDogQWRkZWQuCisgICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10
eXBlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Bl
ZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0
cmVhbS5odG1sOiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvQXR0cmlidXRlc01ldGhvZC5qczogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJl
YW0vc2NyaXB0LXRlc3RzL2FyZ3VtZW50LXR5cGVzLmpzOiBBZGRlZC4KKyAgICAgICAgICogZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzOgor
ICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1y
ZW1vdmVzdHJlYW0uanM6IEFkZGVkLgorCiAyMDEyLTAyLTE1ICBDc2FiYSBPc3p0cm9nb27DoWMg
IDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIG1vcm5pbmcgZ2Fy
ZGVuaW5nLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlv
bi1BdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJpYnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1B
dHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMiBAQAorVGVz
dHMgUGVlclRvUGVlckNvbm5lY3Rpb24gcmVsYXRlZCBBdHRyaWJ1dGVzIGFjY29yZGluZyB0byBo
dHRwOi8vd3d3LnczLm9yZy9UUi93ZWJydGMvCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIHR5cGVvZiBwYy5hZGRTdHJlYW0gPT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNT
IHR5cGVvZiBwYy5yZW1vdmVTdHJlYW0gPT0gJ2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNTIHR5cGVv
ZiBwYy5jbG9zZSA9PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgcGMuTkVXID09MCBpcyB0cnVl
CitQQVNTIHBjLk5FR09USUFUSU5HID09IDEgaXMgdHJ1ZQorUEFTUyBwYy5BQ1RJVkUgPT0gMiBp
cyB0cnVlCitQQVNTIHBjLkNMT1NFRCA9PSAzIGlzIHRydWUKK0ZBSUwgcGMuSUNFX0dBVEhFUklO
RyA9PSAweDEwMCAgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgcGMuSUNFX1dBSVRJ
TkcgPT0gMHgyMDAgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgcGMuSUNFX0NIRUNL
SU5HID09IDB4MzAwIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitGQUlMIHBjLklDRV9DT05O
RUNURUQgPT0gMHg0MDAgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgcGMuSUNFX0NP
TVBMRVRFRCA9PSAweDUwMCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorRkFJTCBwYy5JQ0Vf
RkFJTEVEID09IDB4NjAwIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitGQUlMIHBjLklDRV9D
TE9TRUQgPT0gMHg3MDAgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK0ZBSUwgcGMuU0RQX0lE
TEUgPT0gMHgxMDAwIHNob3VsZCBiZSB0cnVlLiBXYXMgZmFsc2UuCitGQUlMIHBjLlNEUF9XQUlU
SU5HID09IDB4MjAwMCBzaG91bGQgYmUgdHJ1ZS4gV2FzIGZhbHNlLgorRkFJTCBwYy5TRFBfR0xB
UkUgPT0weDMwMDAgc2hvdWxkIGJlIHRydWUuIFdhcyBmYWxzZS4KK1BBU1MgdHlwZW9mIHBjLmxv
Y2FsU3RyZWFtcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5yZW1vdGVTdHJl
YW1zID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9uYWRkc3RyZWFtID09ICdv
YmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9ucmVtb3Zlc3RyZWFtID09ICdvYmplY3Qn
IGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9uY29ubmVjdGluZyA9PSAnb2JqZWN0JyBpcyB0cnVl
CitQQVNTIHR5cGVvZiBwYy5vbm9wZW4gPT0gJ29iamVjdCcgaXMgdHJ1ZQorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tQXR0cmli
dXRlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9w
ZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTMg
QEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxodG1s
PgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9q
cy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48
L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMv
QXR0cmlidXRlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVj
dGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMDc3ODkpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNywxMCBAQCBQQVNTIHBjLmFkZFN0cmVhbSgpIHRo
cmV3IFR5cGVFcnJvcjogTm90CiBQQVNTIHBjLmFkZFN0cmVhbSh1bmRlZmluZWQpIHRocmV3IEVy
cm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNwogUEFTUyBwYy5hZGRTdHJl
YW0obnVsbCkgdGhyZXcgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3
CiBQQVNTIHBjLmFkZFN0cmVhbShuZXcgQXJyYXkoKSkgdGhyZXcgVHlwZUVycm9yOiBUeXBlIGVy
cm9yCitQQVNTIHBjLmFkZFN0cmVhbSh7fSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BB
U1MgcGMuYWRkU3RyZWFtKDQyKSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5h
ZGRTdHJlYW0oSW5maW5pdHkpIHRocmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLmFk
ZFN0cmVhbSgtSW5maW5pdHkpIHRocmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCiBQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5l
Y3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTUgQEAKK1Rlc3RzIHRoZSBhY2NlcHRh
YmxlIHR5cGVzIGZvciBhcmd1bWVudHMgdG8gbWV0aG9kIGZvciBQZWVyVG9QZWVyQ29ubmVjdGlv
biBkZWZpbmF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0eXBl
b2Ygd2Via2l0UGVlckNvbm5lY3Rpb249PSAnZnVuY3Rpb24nIGlzIHRydWUKK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiAyMDMuMC4x
MTMuMjoyNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5l
dDozNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBleGFtcGxlLm5ldCIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IikgdGhyZXcgZXhjZXB0aW9u
IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiU1RVTlMgZXhhbXBsZS5uZXQiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBO
b3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJO
IDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIHJlbGF5LmV4
YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0
IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNT
IG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgMjAzLjAuMTEzLjI6MjQ3OCIpIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBl
eGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJUVVJOUyBleGFtcGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBl
RXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlRVUk4gTk9ORSIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5PTkUiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJT
VFVOUyBOT05FIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigidW5kZWZpbmVkIikgdGhyZXcgZXhj
ZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbigibnVsbCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oe30pKSB0aHJldyBl
eGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gKS4KK1BBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKDQyKSkgdGhyZXcgZXhjZXB0aW9uIFN5bnRheEVycm9yOiBVbmV4cGVj
dGVkIHRva2VuICkuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbihJbmZpbml0eSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oZW1w
dHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVu
dHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4
IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJTVFVOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rp
b24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU4gZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0
aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIDIwMy4wLjExMy4yOjI0
NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVu
Y3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24oIlNUVU5TIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4y
OjI0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcg
d2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlG
dW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiVFVSTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgMjAzLjAuMTEz
LjI6MjQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1w
dHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbigiVFVSTlMgZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIs
ZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQ
ZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBl
eGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIixlbXB0
eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJTVFVOUyBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2Vw
dGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIE5PTkUiLHVuZGVmaW5l
ZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlv
biAxNy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyBOT05FIix7fSkgZGlk
IG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TiBOT05FIiw0MikgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05F
IixJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9N
IEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05F
IiwtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERP
TSBFeGNlcHRpb24gMTcuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVj
dGlvbi1hcmd1bWVudC10eXBlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
bWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1l
bnQtdHlwZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIEhU
TUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5r
IHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3Nz
Ij4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1v
dmVzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUZXN0cyBQZWVyQ29ubmVjdGlvbjo6cmVtb3ZlU3Ry
ZWFtKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHBjLnJlbW92ZVN0
cmVhbSgpIHRocmV3IFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMKK1BBU1MgcGMucmVt
b3ZlU3RyZWFtKHVuZGVmaW5lZCkgdGhyZXcgRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00g
RXhjZXB0aW9uIDE3CitQQVNTIHBjLnJlbW92ZVN0cmVhbShudWxsKSB0aHJldyBFcnJvcjogVFlQ
RV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKG5l
dyBBcnJheSgpKSB0aHJldyBUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3Ry
ZWFtKHt9KSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJvcgorUEFTUyBwYy5yZW1vdmVTdHJlYW0o
NDIpIHRocmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLnJlbW92ZVN0cmVhbShJbmZp
bml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKC1J
bmZpbml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFt
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJj
b25uZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEzIEBA
Cis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4K
KzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMt
dGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9w
PgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3Bl
ZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1
dGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0
LXRlc3RzL0F0dHJpYnV0ZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21l
ZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1dGVzLmpzCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDEwNiBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFBlZXJUb1BlZXJDb25uZWN0aW9uIHJlbGF0
ZWQgQXR0cmlidXRlcyBhY2NvcmRpbmcgdG8gaHR0cDovL3d3dy53My5vcmcvVFIvd2VicnRjLyIp
OwordmFyIHN0cmVhbTsKK2Z1bmN0aW9uIHNob3VsZE5vdFRocm93KGV4cHJlc3Npb24pCit7Cisg
IHRyeSB7CisgICAgZXZhbChleHByZXNzaW9uKTsKKyAgICB0ZXN0UGFzc2VkKGV4cHJlc3Npb24g
KyAiIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLiIpOworICB9IGNhdGNoKGUpIHsKKyAgICB0ZXN0
RmFpbGVkKGV4cHJlc3Npb24gKyAiIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiBUaHJldyBl
eGNlcHRpb24gIiArIGUpOworICB9Cit9CisKK2Z1bmN0aW9uIHRlc3QoZXhwcmVzc2lvbiwgZXhw
cmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2VwdGlvbikgeworICAgIGlmIChleHByZXNz
aW9uU2hvdWxkVGhyb3cpIHsKKyAgICAgICAgaWYgKGV4cGVjdGVkRXhjZXB0aW9uKQorICAgICAg
ICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyhmdW5jdGlvbigpIHsgcmV0dXJuICInICsg
ZXhwZWN0ZWRFeGNlcHRpb24gKyAnIjsgfSkoKTsnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyhmdW5jdGlvbigpIHsgcmV0dXJuICJUeXBlRXJy
b3I6IFR5cGUgZXJyb3IiOyB9KSgpOycpOworICAgIH0gZWxzZSB7CisgICAgICAgIHNob3VsZE5v
dFRocm93KGV4cHJlc3Npb24pOworICAgIH0KK30KK2Z1bmN0aW9uIHNob3VsZEJlQShfYSwgX2Is
IHF1aWV0KQoreworICBpZiAodHlwZW9mIF9hICE9ICJzdHJpbmciIHx8IHR5cGVvZiBfYiAhPSAi
c3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxkQmUoKSBleHBlY3RzIHN0cmluZyBhcmd1
bWVudHMiKTsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFyIF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2
ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAgICAgZXhjZXB0aW9uID0gZTsKKyAgfQor
ICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgaWYgKGV4Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVk
KF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRocmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0
aW9uKTsKKyAgZWxzZSBpZiAoaXNSZXN1bHRDb3JyZWN0KF9hdiwgX2J2KSkgeworICAgIGlmICgh
cXVpZXQpIHsKKyAgICAgICAgdGVzdFBhc3NlZChfYSArICIgaXMgIiArIF9iKTsKKyAgICB9Cisg
IH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9mKF9idikpCisgICAgdGVzdEZhaWxlZChf
YSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMgIiArIHN0cmluZ2lmeShfYXYpICsgIi4i
KTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAiIHNob3VsZCBiZSAiICsgX2J2ICsgIiAo
b2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMgIiArIF9hdiArICIgKG9mIHR5cGUgIiAr
IHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKworZnVuY3Rpb24gc2hvdWxkQmVUcnVlQShfYSkgeyBz
aG91bGRCZUEoX2EsICJ0cnVlIik7IH0KKwordmFyIHRvU3RyaW5nRXJyb3IgPSBuZXcgRXJyb3Io
J3RvU3RyaW5nIHRocmV3IGV4Y2VwdGlvbicpOwordmFyIG5vdFN1cHBvcnRlZEVycm9yID0gbmV3
IEVycm9yKCdOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4Y2VwdGlvbiA5Jyk7Cit2YXIgZW1wdHlG
dW5jdGlvbiA9IGZ1bmN0aW9uKCkge307CisKKworZnVuY3Rpb24gT2JqZWN0VGhyb3dpbmdFeGNl
cHRpb24oKSB7fTsKK09iamVjdFRocm93aW5nRXhjZXB0aW9uLnByb3RvdHlwZS50b1N0cmluZyA9
IGZ1bmN0aW9uKCkgeworICAgIHRocm93IHRvU3RyaW5nRXJyb3I7Cit9Cit2YXIgb2JqZWN0VGhy
b3dpbmdFeGNlcHRpb24gPSBuZXcgT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24oKTsKKworCituYXZp
Z2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIsIGdvdFN0cmVhbSwgZ290U3RyZWFtRmFp
bGVkKTsKK2Z1bmN0aW9uIGdvdFN0cmVhbShzKSB7CitzdHJlYW0gPSBzOworfQorCitmdW5jdGlv
biBnb3RTdHJlYW1GYWlsZWQoZXJyb3IpIHsKKyAgYWxlcnQoIkZhaWxlZCB0byBnZXQgYWNjZXNz
IHRvIHdlYmNhbS4gRXJyb3IgY29kZSB3YXMgIiArIGVycm9yLmNvZGUpOworfQorCisKK3ZhciBw
Yz1uZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIsIGVtcHR5RnVuY3Rpb24pOwor
Ly9tZXRob2QKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5hZGRTdHJlYW0gPT0gJ2Z1bmN0aW9u
JyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLnJlbW92ZVN0cmVhbSA9PSAnZnVuY3Rpb24n
Iik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMuY2xvc2UgPT0gJ2Z1bmN0aW9uJyIpOworCisv
L3BlZXJjb25uZWN0aW9uIHJlYWR5U3RhdGUgCitzaG91bGRCZVRydWVBKCJwYy5ORVcgPT0wIik7
CitzaG91bGRCZVRydWVBKCJwYy5ORUdPVElBVElORyA9PSAxIik7CitzaG91bGRCZVRydWVBKCJw
Yy5BQ1RJVkUgPT0gMiIpOworc2hvdWxkQmVUcnVlQSgicGMuQ0xPU0VEID09IDMiKTsKKworLy9p
Y2VTdGF0ZSBhbmQgU0RQIHN0YXRlCitzaG91bGRCZVRydWVBKCJwYy5JQ0VfR0FUSEVSSU5HID09
IDB4MTAwICIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX1dBSVRJTkcgPT0gMHgyMDAiKTsKK3No
b3VsZEJlVHJ1ZUEoInBjLklDRV9DSEVDS0lORyA9PSAweDMwMCIpOworc2hvdWxkQmVUcnVlQSgi
cGMuSUNFX0NPTk5FQ1RFRCA9PSAweDQwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NPTVBM
RVRFRCA9PSAweDUwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0ZBSUxFRCA9PSAweDYwMCIp
Oworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NMT1NFRCA9PSAweDcwMCIpOworc2hvdWxkQmVUcnVl
QSgicGMuU0RQX0lETEUgPT0gMHgxMDAwIik7CitzaG91bGRCZVRydWVBKCJwYy5TRFBfV0FJVElO
RyA9PSAweDIwMDAiKTsKK3Nob3VsZEJlVHJ1ZUEoInBjLlNEUF9HTEFSRSA9PTB4MzAwMCIpOwor
CisvL01lZGlhU3RyZWFtW10gYXR0cmlidXRlCitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMubG9j
YWxTdHJlYW1zID09ICdvYmplY3QnIik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMucmVtb3Rl
U3RyZWFtcyA9PSAnb2JqZWN0JyIpOworCisvL2NhbGxiYWNrIGZ1bmN0aW9uIGRlZmluaXRpb24g
CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMub25hZGRzdHJlYW0gPT0gJ29iamVjdCciKTsKK3No
b3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5vbnJlbW92ZXN0cmVhbSA9PSAnb2JqZWN0JyIpOworc2hv
dWxkQmVUcnVlQSgidHlwZW9mIHBjLm9uY29ubmVjdGluZyA9PSAnb2JqZWN0JyIpOworc2hvdWxk
QmVUcnVlQSgidHlwZW9mIHBjLm9ub3BlbiA9PSAnb2JqZWN0JyIpOworCit3aW5kb3cuanNUZXN0
SXNBc3luYyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3Jp
cHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9hcmd1bWVudC10
eXBlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4OSBAQAorZGVzY3JpcHRpb24oIlRlc3Rz
IHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBhcmd1bWVudHMgdG8gbWV0aG9kIGZvciBQZWVyVG9Q
ZWVyQ29ubmVjdGlvbiBkZWZpbmF0aW9uLiIpOworCitmdW5jdGlvbiBzaG91bGROb3RUaHJvdyhl
eHByZXNzaW9uKQoreworICB0cnkgeworICAgIGV2YWwoZXhwcmVzc2lvbik7CisgICAgdGVzdFBh
c3NlZChleHByZXNzaW9uICsgIiBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4iKTsKKyAgfSBjYXRj
aChlKSB7CisgICAgdGVzdEZhaWxlZChleHByZXNzaW9uICsgIiBzaG91bGQgbm90IHRocm93IGV4
Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsKKyAgfQorfQorCitmdW5jdGlvbiB0ZXN0
KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91bGRUaHJvdywgZXhwZWN0ZWRFeGNlcHRpb24pIHsK
KyAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRocm93KSB7CisgICAgICAgIGlmIChleHBlY3RlZEV4
Y2VwdGlvbikKKyAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24o
KSB7IHJldHVybiAiJyArIGV4cGVjdGVkRXhjZXB0aW9uICsgJyI7IH0pKCk7Jyk7CisgICAgICAg
IGVsc2UKKyAgICAgICAgICAgIHNob3VsZFRocm93KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7
IHJldHVybiAiRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3IjsgfSko
KTsnKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKTsK
KyAgICB9Cit9CisKK3ZhciB0b1N0cmluZ0Vycm9yID0gbmV3IEVycm9yKCd0b1N0cmluZyB0aHJl
dyBleGNlcHRpb24nKTsKK3ZhciBub3RTdXBwb3J0ZWRFcnJvciA9IG5ldyBFcnJvcignTk9UX1NV
UFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOScpOwordmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5j
dGlvbigpIHt9OworCitmdW5jdGlvbiBPYmplY3RUaHJvd2luZ0V4Y2VwdGlvbigpIHt9OworT2Jq
ZWN0VGhyb3dpbmdFeGNlcHRpb24ucHJvdG90eXBlLnRvU3RyaW5nID0gZnVuY3Rpb24oKSB7Cisg
ICAgdGhyb3cgdG9TdHJpbmdFcnJvcjsKK30KK3ZhciBvYmplY3RUaHJvd2luZ0V4Y2VwdGlvbiA9
IG5ldyBPYmplY3RUaHJvd2luZ0V4Y2VwdGlvbigpOworCitzaG91bGRCZVRydWUoInR5cGVvZiB3
ZWJraXRQZWVyQ29ubmVjdGlvbj09ICdmdW5jdGlvbiciKTsKKworLy8gMCBBcmd1bWVudAordGVz
dCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCknLCB0cnVlLCdUeXBlRXJyb3I6IE5vdCBlbm91
Z2ggYXJndW1lbnRzJyk7CisKKy8vIDEgQXJndW1lbnQgKG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
biByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cykuCit0ZXN0KCduZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlNUVU4gMjAzLjAuMTEzLjI6MjQ3OCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TiByZWxheS5leGFtcGxlLm5ldDozNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIGV4YW1w
bGUubmV0IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVz
dCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyAyMDMuMC4xMTMuMjoyNDc4IiknLCB0
cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtp
dFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFtcGxlLm5ldDozNDc4IiknLCB0cnVlLCAn
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5ldCIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiAy
MDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIHJlbGF5LmV4YW1wbGUu
bmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0
ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gZXhhbXBsZS5uZXQiKScsIHRydWUs
ICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk5TIDIwMy4wLjExMy4yOjI0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6
IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24o
IlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBl
bm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5T
IGV4YW1wbGUubmV0IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycp
OwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIE5PTkUiKScsIHRydWUsICdU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlRVUk5TIE5PTkUiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJn
dW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gTk9ORSIpJywg
dHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9ORSIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVu
b3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigidW5kZWZp
bmVkIiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgn
bmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJudWxsIiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKHt9KSkn
LCB0cnVlLCAnU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gKScpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKDQyKSknLCB0cnVlLCAnU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gKScpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKEluZmluaXR5KScsIHRy
dWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oLUluZmluaXR5KScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oZW1wdHlGdW5jdGlv
biknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOworCisvLzIgQXJn
dW1lbnQKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoy
NDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNl
KTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBleGFtcGxlLm5ldCIsZW1w
dHlGdW5jdGlvbiknLGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcg
d2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5
RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVO
UyBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0
UGVlckNvbm5lY3Rpb24oIlRVUk4gMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBm
YWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gcmVsYXkuZXhhbXBs
ZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk4gZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwor
dGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyAyMDMuMC4xMTMuMjoyNDc4Iixl
bXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigi
VFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0
ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIGV4YW1wbGUubmV0IixlbXB0eUZ1
bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBO
T05FIixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbigiVFVSTlMgTk9ORSIsZW1wdHlGdW5jdGlvbiknLGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rl
c3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9ORSIsZW1wdHlGdW5jdGlvbikn
LCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIsdW5k
ZWZpbmVkKScsICB0cnVlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMg
Tk9ORSIse30pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVO
IE5PTkUiLDQyKScsICB0cnVlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TlMgTk9ORSIsSW5maW5pdHkpJywgdHJ1ZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU5TIE5PTkUiLC1JbmZpbml0eSknLCB0cnVlKTsKKworCisKK3dpbmRvdy5qc1Rlc3RJ
c0FzeW5jID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Njcmlw
dC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tYWRkc3Ry
ZWFtLmpzCShyZXZpc2lvbiAxMDc2MjEpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0uanMJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDggKzI1LDI2IEBAIHRyeSB7CiB9IGNhdGNoKGUpIHsKICAgICB0ZXN0UGFzc2VkKCdw
Yy5hZGRTdHJlYW0obmV3IEFycmF5KCkpIHRocmV3ICcgKyBlKTsKIH0KLQotZmluaXNoSlNUZXN0
KCk7Cit0cnkgeworICAgIHBjLmFkZFN0cmVhbSh7fSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0
UGFzc2VkKCdwYy5hZGRTdHJlYW0oe30pIHRocmV3JyArIGUpOworfQordHJ5IHsKKyAgICBwYy5h
ZGRTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFt
KDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7CisgICAgcGMuYWRkU3RyZWFtKEluZmluaXR5KTsK
K30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLmFkZFN0cmVhbShJbmZpbml0eSkgdGhy
ZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLmFkZFN0cmVhbSgtSW5maW5pdHkpOworfSBjYXRj
aChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKC1JbmZpbml0eSkgdGhyZXcnICsg
ZSk7Cit9CiAKIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOwogCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1yZW1v
dmVzdHJlYW0uanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
Y3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmpzCShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rp
b24tcmVtb3Zlc3RyZWFtLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDUwIEBACitkZXNjcmlw
dGlvbigiVGVzdHMgUGVlckNvbm5lY3Rpb246OnJlbW92ZVN0cmVhbSgpLiIpOworCit2YXIgcGMg
PSBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gc29tZS5zZXJ2ZXIuY29tIiwgZnVuY3Rp
b24oKSB7fSk7CisKK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKCk7Cit9IGNhdGNoKGUpIHsK
KyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0oKSB0aHJldyAnICsgZSk7Cit9CisKK3Ry
eSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKHVuZGVmaW5lZCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0
ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0odW5kZWZpbmVkKSB0aHJldyAnICsgZSk7Cit9CisK
K3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKG51bGwpOworfSBjYXRjaChlKSB7CisgICAgdGVz
dFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG51bGwpIHRocmV3ICcgKyBlKTsKK30KKwordHJ5IHsK
KyAgICBwYy5yZW1vdmVTdHJlYW0obmV3IEFycmF5KCkpOworfSBjYXRjaChlKSB7CisgICAgdGVz
dFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG5ldyBBcnJheSgpKSB0aHJldyAnICsgZSk7Cit9Cit0
cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSh7fSk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFz
c2VkKCdwYy5yZW1vdmVTdHJlYW0oe30pIHRocmV3JyArIGUpOworfQordHJ5IHsKKyAgICBwYy5y
ZW1vdmVTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3Zl
U3RyZWFtKDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKElu
ZmluaXR5KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3BjLnJlbW92ZVN0cmVhbShJ
bmZpbml0eSkgdGhyZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSgtSW5m
aW5pdHkpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKC1J
bmZpbml0eSkgdGhyZXcnICsgZSk7Cit9CisKK3dpbmRvdy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0
cnVlOworCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127903</attachid>
            <date>2012-02-20 19:57:31 -0800</date>
            <delta_ts>2012-02-20 21:24:50 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-78578-20120220195756.patch</filename>
            <type>text/plain</type>
            <size>23515</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEwODI5MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAyLTE2ICBZYW5iaW4gWmhhbmcgIDx5
YW5iaW4uemhhbmdAaW50ZWwuY29tPgorCisgICAgICAgICBUaGVyZSBpcyBubyBjb21wbGV0ZSB0
ZXN0IGNhc2VzIG9mIG9wdGlvbmFsIGFyZ3VtZW50cyBmb3IgTWVkaWFTdHJlYW0gQVBJIGFuZCBQ
ZWVyQ29ubmVjdGlvbgorICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTc4NTc4CisKKyAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAg
ICAgICogZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzTWV0aG9kLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5l
Y3Rpb24tQXR0cmlidXRlc01ldGhvZC5odG1sOiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0OgorICAgICAgICAg
KiBmYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLWFyZ3VtZW50LXR5cGVzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24t
YXJndW1lbnQtdHlwZXMuaHRtbDogQWRkZWQuCisgICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
cGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICAqIGZhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmh0bWw6IEFk
ZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1dGVz
TWV0aG9kLmpzOiBBZGRlZC4KKyAgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvYXJndW1lbnQtdHlwZXMuanM6IEFkZGVkLgorICAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0uanM6CisgICAgICAgICAqIGZh
c3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5q
czogQWRkZWQuCisKIDIwMTItMDItMjAgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hA
YXBwbGUuY29tPgogCiAgICAgICAgIERlZmluZU93blByb3BlcnR5IGZhaWxzIHdpdGggbnVtZXJp
YyBwcm9wZXJ0aWVzICYgT2JqZWN0LnByb3RvdHlwZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLUF0dHJp
YnV0ZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwzMiBAQAorVGVzdHMgUGVlclRvUGVlckNvbm5lY3Rpb24gcmVsYXRlZCBB
dHRyaWJ1dGVzIGFjY29yZGluZyB0byBodHRwOi8vd3d3LnczLm9yZy9UUi93ZWJydGMvCisKK09u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHR5cGVvZiBwYy5hZGRTdHJlYW0gPT0g
J2Z1bmN0aW9uJyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5yZW1vdmVTdHJlYW0gPT0gJ2Z1bmN0
aW9uJyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5jbG9zZSA9PSAnZnVuY3Rpb24nIGlzIHRydWUK
K1BBU1MgcGMuTkVXID09MCBpcyB0cnVlCitQQVNTIHBjLk5FR09USUFUSU5HID09IDEgaXMgdHJ1
ZQorUEFTUyBwYy5BQ1RJVkUgPT0gMiBpcyB0cnVlCitQQVNTIHBjLkNMT1NFRCA9PSAzIGlzIHRy
dWUKK0ZBSUwgcGMuSUNFX0dBVEhFUklORyA9PSAweDEwMCAgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK0ZBSUwgcGMuSUNFX1dBSVRJTkcgPT0gMHgyMDAgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK0ZBSUwgcGMuSUNFX0NIRUNLSU5HID09IDB4MzAwIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitGQUlMIHBjLklDRV9DT05ORUNURUQgPT0gMHg0MDAgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KK0ZBSUwgcGMuSUNFX0NPTVBMRVRFRCA9PSAweDUwMCBzaG91bGQgYmUgdHJ1ZS4g
V2FzIGZhbHNlLgorRkFJTCBwYy5JQ0VfRkFJTEVEID09IDB4NjAwIHNob3VsZCBiZSB0cnVlLiBX
YXMgZmFsc2UuCitGQUlMIHBjLklDRV9DTE9TRUQgPT0gMHg3MDAgc2hvdWxkIGJlIHRydWUuIFdh
cyBmYWxzZS4KK0ZBSUwgcGMuU0RQX0lETEUgPT0gMHgxMDAwIHNob3VsZCBiZSB0cnVlLiBXYXMg
ZmFsc2UuCitGQUlMIHBjLlNEUF9XQUlUSU5HID09IDB4MjAwMCBzaG91bGQgYmUgdHJ1ZS4gV2Fz
IGZhbHNlLgorRkFJTCBwYy5TRFBfR0xBUkUgPT0weDMwMDAgc2hvdWxkIGJlIHRydWUuIFdhcyBm
YWxzZS4KK1BBU1MgdHlwZW9mIHBjLmxvY2FsU3RyZWFtcyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQ
QVNTIHR5cGVvZiBwYy5yZW1vdGVTdHJlYW1zID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlw
ZW9mIHBjLm9uYWRkc3RyZWFtID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9u
cmVtb3Zlc3RyZWFtID09ICdvYmplY3QnIGlzIHRydWUKK1BBU1MgdHlwZW9mIHBjLm9uY29ubmVj
dGluZyA9PSAnb2JqZWN0JyBpcyB0cnVlCitQQVNTIHR5cGVvZiBwYy5vbm9wZW4gPT0gJ29iamVj
dCcgaXMgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBM
RVRFCisKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24t
QXR0cmlidXRlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24tQXR0cmlidXRlcy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1BdHRyaWJ1dGVzLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgc3JjPSJzY3JpcHQtdGVzdHMvQXR0cmlidXRlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0
aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAxMDgyOTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0
aW9uLWFkZHN0cmVhbS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNywxMCBA
QCBQQVNTIHBjLmFkZFN0cmVhbSgpIHRocmV3IFR5cGVFcnJvcjogTm90CiBQQVNTIHBjLmFkZFN0
cmVhbSh1bmRlZmluZWQpIHRocmV3IEVycm9yOiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2Vw
dGlvbiAxNwogUEFTUyBwYy5hZGRTdHJlYW0obnVsbCkgdGhyZXcgRXJyb3I6IFRZUEVfTUlTTUFU
Q0hfRVJSOiBET00gRXhjZXB0aW9uIDE3CiBQQVNTIHBjLmFkZFN0cmVhbShuZXcgQXJyYXkoKSkg
dGhyZXcgVHlwZUVycm9yOiBUeXBlIGVycm9yCitQQVNTIHBjLmFkZFN0cmVhbSh7fSkgdGhyZXdU
eXBlRXJyb3I6IFR5cGUgZXJyb3IKK1BBU1MgcGMuYWRkU3RyZWFtKDQyKSB0aHJld1R5cGVFcnJv
cjogVHlwZSBlcnJvcgorUEFTUyBwYy5hZGRTdHJlYW0oSW5maW5pdHkpIHRocmV3VHlwZUVycm9y
OiBUeXBlIGVycm9yCitQQVNTIHBjLmFkZFN0cmVhbSgtSW5maW5pdHkpIHRocmV3VHlwZUVycm9y
OiBUeXBlIGVycm9yCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09N
UExFVEUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24t
YXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVj
dGlvbi1hcmd1bWVudC10eXBlcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NTUgQEAKK1Rlc3RzIHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBhcmd1bWVudHMgdG8gbWV0aG9k
IGZvciBQZWVyVG9QZWVyQ29ubmVjdGlvbiBkZWZpbmF0aW9uLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB0eXBlb2Ygd2Via2l0UGVlckNvbm5lY3Rpb249PSAnZnVuY3Rp
b24nIGlzIHRydWUKK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCkgdGhyZXcgZXhjZXB0
aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJv
cjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigi
U1RVTiBleGFtcGxlLm5ldCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIDIwMy4wLjEx
My4yOjI0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50
cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFtcGxlLm5l
dDozNDc4IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMu
CitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgZXhhbXBsZS5uZXQiKSB0aHJl
dyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiKSB0aHJldyBleGNlcHRp
b24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24g
VHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJUVVJOIGV4YW1wbGUubmV0IikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90
IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMg
MjAzLjAuMTEzLjI6MjQ3OCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2gg
YXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIHJlbGF5LmV4
YW1wbGUubmV0OjM0NzgiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFy
Z3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJUVVJOUyBleGFtcGxlLm5l
dCIpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFT
UyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIpIHRocmV3IGV4Y2VwdGlvbiBU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24oIlRVUk5TIE5PTkUiKSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5PTkUiKSB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cy4KK1BBU1MgbmV3
IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigidW5kZWZpbmVkIikgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigibnVsbCIpIHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oe30pKSB0aHJldyBleGNlcHRpb24gU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gKS4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKDQyKSkgdGhyZXcgZXhjZXB0
aW9uIFN5bnRheEVycm9yOiBVbmV4cGVjdGVkIHRva2VuICkuCitQQVNTIG5ldyB3ZWJraXRQZWVy
Q29ubmVjdGlvbihJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigtSW5maW5pdHkpIHRo
cmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzLgorUEFTUyBuZXcg
d2Via2l0UGVlckNvbm5lY3Rpb24oZW1wdHlGdW5jdGlvbikgdGhyZXcgZXhjZXB0aW9uIFR5cGVF
cnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMuCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4
Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIHJlbGF5LmV4YW1w
bGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFT
UyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gZXhhbXBsZS5uZXQiLGVtcHR5RnVuY3Rp
b24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rp
b24oIlNUVU5TIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cg
ZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIHJlbGF5LmV4
YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgor
UEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIGV4YW1wbGUubmV0IixlbXB0eUZ1
bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25u
ZWN0aW9uKCJUVVJOIDIwMy4wLjExMy4yOjI0NzgiLGVtcHR5RnVuY3Rpb24pIGRpZCBub3QgdGhy
b3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gcmVsYXku
ZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24u
CitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTiBleGFtcGxlLm5ldCIsZW1wdHlG
dW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiVFVSTlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0
aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgcmVs
YXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRp
b24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgZXhhbXBsZS5uZXQiLGVt
cHR5RnVuY3Rpb24pIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLgorUEFTUyBuZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oIlRVUk4gTk9ORSIsZW1wdHlGdW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNl
cHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIsZW1wdHlG
dW5jdGlvbikgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3ZWJraXRQZWVyQ29u
bmVjdGlvbigiU1RVTiBOT05FIixlbXB0eUZ1bmN0aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlv
bi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIixlbXB0eUZ1bmN0
aW9uKSBkaWQgbm90IHRocm93IGV4Y2VwdGlvbi4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uKCJUVVJOIE5PTkUiLHVuZGVmaW5lZCkgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBUWVBFX01J
U01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uKCJUVVJOUyBOT05FIix7fSkgZGlkIG5vdCB0aHJvdyBleGNlcHRpb24uCitQQVNTIG5ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIiw0MikgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIixJbmZpbml0eSkgdGhyZXcgZXhjZXB0aW9uIEVycm9y
OiBUWVBFX01JU01BVENIX0VSUjogRE9NIEV4Y2VwdGlvbiAxNy4KK1BBU1MgbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJTVFVOUyBOT05FIiwtSW5maW5pdHkpIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcuCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1hcmd1bWVudC10eXBlcy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVlcmNvbm5lY3Rpb24tYXJndW1l
bnQtdHlwZXMuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJl
YW0vcGVlcmNvbm5lY3Rpb24tYXJndW1lbnQtdHlwZXMuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMyBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4i
PgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3Jp
cHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlw
dC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0
cmVhbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9wZWVyY29ubmVjdGlvbi1yZW1vdmVz
dHJlYW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACitUZXN0cyBQ
ZWVyQ29ubmVjdGlvbjo6cmVtb3ZlU3RyZWFtKCkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitQQVNTIHBjLnJlbW92ZVN0cmVhbSgpIHRocmV3IFR5cGVFcnJvcjogTm90IGVub3Vn
aCBhcmd1bWVudHMKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKHVuZGVmaW5lZCkgdGhyZXcgRXJyb3I6
IFRZUEVfTUlTTUFUQ0hfRVJSOiBET00gRXhjZXB0aW9uIDE3CitQQVNTIHBjLnJlbW92ZVN0cmVh
bShudWxsKSB0aHJldyBFcnJvcjogVFlQRV9NSVNNQVRDSF9FUlI6IERPTSBFeGNlcHRpb24gMTcK
K1BBU1MgcGMucmVtb3ZlU3RyZWFtKG5ldyBBcnJheSgpKSB0aHJldyBUeXBlRXJyb3I6IFR5cGUg
ZXJyb3IKK1BBU1MgcGMucmVtb3ZlU3RyZWFtKHt9KSB0aHJld1R5cGVFcnJvcjogVHlwZSBlcnJv
cgorUEFTUyBwYy5yZW1vdmVTdHJlYW0oNDIpIHRocmV3VHlwZUVycm9yOiBUeXBlIGVycm9yCitQ
QVNTIHBjLnJlbW92ZVN0cmVhbShJbmZpbml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJyb3IK
K1BBU1MgcGMucmVtb3ZlU3RyZWFtKC1JbmZpbml0eSkgdGhyZXdUeXBlRXJyb3I6IFR5cGUgZXJy
b3IKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0
cmVhbS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcGVl
cmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYv
L0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBo
cmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2Ny
aXB0IHNyYz0ic2NyaXB0LXRlc3RzL3BlZXJjb25uZWN0aW9uLXJlbW92ZXN0cmVhbS5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3Ry
ZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1dGVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvbWVkaWFzdHJlYW0vc2NyaXB0LXRlc3RzL0F0dHJpYnV0ZXMuanMJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9BdHRyaWJ1dGVz
LmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwNiBAQAorZGVzY3JpcHRpb24oIlRlc3RzIFBl
ZXJUb1BlZXJDb25uZWN0aW9uIHJlbGF0ZWQgQXR0cmlidXRlcyBhY2NvcmRpbmcgdG8gaHR0cDov
L3d3dy53My5vcmcvVFIvd2VicnRjLyIpOwordmFyIHN0cmVhbTsKK2Z1bmN0aW9uIHNob3VsZE5v
dFRocm93KGV4cHJlc3Npb24pCit7CisgIHRyeSB7CisgICAgZXZhbChleHByZXNzaW9uKTsKKyAg
ICB0ZXN0UGFzc2VkKGV4cHJlc3Npb24gKyAiIGRpZCBub3QgdGhyb3cgZXhjZXB0aW9uLiIpOwor
ICB9IGNhdGNoKGUpIHsKKyAgICB0ZXN0RmFpbGVkKGV4cHJlc3Npb24gKyAiIHNob3VsZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLiBUaHJldyBleGNlcHRpb24gIiArIGUpOworICB9Cit9CisKK2Z1bmN0
aW9uIHRlc3QoZXhwcmVzc2lvbiwgZXhwcmVzc2lvblNob3VsZFRocm93LCBleHBlY3RlZEV4Y2Vw
dGlvbikgeworICAgIGlmIChleHByZXNzaW9uU2hvdWxkVGhyb3cpIHsKKyAgICAgICAgaWYgKGV4
cGVjdGVkRXhjZXB0aW9uKQorICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyhm
dW5jdGlvbigpIHsgcmV0dXJuICInICsgZXhwZWN0ZWRFeGNlcHRpb24gKyAnIjsgfSkoKTsnKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2hvdWxkVGhyb3coZXhwcmVzc2lvbiwgJyhmdW5j
dGlvbigpIHsgcmV0dXJuICJUeXBlRXJyb3I6IFR5cGUgZXJyb3IiOyB9KSgpOycpOworICAgIH0g
ZWxzZSB7CisgICAgICAgIHNob3VsZE5vdFRocm93KGV4cHJlc3Npb24pOworICAgIH0KK30KK2Z1
bmN0aW9uIHNob3VsZEJlQShfYSwgX2IsIHF1aWV0KQoreworICBpZiAodHlwZW9mIF9hICE9ICJz
dHJpbmciIHx8IHR5cGVvZiBfYiAhPSAic3RyaW5nIikKKyAgICBkZWJ1ZygiV0FSTjogc2hvdWxk
QmUoKSBleHBlY3RzIHN0cmluZyBhcmd1bWVudHMiKTsKKyAgdmFyIGV4Y2VwdGlvbjsKKyAgdmFy
IF9hdjsKKyAgdHJ5IHsKKyAgICAgX2F2ID0gZXZhbChfYSk7CisgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgZXhjZXB0aW9uID0gZTsKKyAgfQorICB2YXIgX2J2ID0gZXZhbChfYik7CisKKyAgaWYgKGV4
Y2VwdGlvbikKKyAgICB0ZXN0RmFpbGVkKF9hICsgIiBzaG91bGQgYmUgIiArIF9idiArICIuIFRo
cmV3IGV4Y2VwdGlvbiAiICsgZXhjZXB0aW9uKTsKKyAgZWxzZSBpZiAoaXNSZXN1bHRDb3JyZWN0
KF9hdiwgX2J2KSkgeworICAgIGlmICghcXVpZXQpIHsKKyAgICAgICAgdGVzdFBhc3NlZChfYSAr
ICIgaXMgIiArIF9iKTsKKyAgICB9CisgIH0gZWxzZSBpZiAodHlwZW9mKF9hdikgPT0gdHlwZW9m
KF9idikpCisgICAgdGVzdEZhaWxlZChfYSArICIgc2hvdWxkIGJlICIgKyBfYnYgKyAiLiBXYXMg
IiArIHN0cmluZ2lmeShfYXYpICsgIi4iKTsKKyAgZWxzZQorICAgIHRlc3RGYWlsZWQoX2EgKyAi
IHNob3VsZCBiZSAiICsgX2J2ICsgIiAob2YgdHlwZSAiICsgdHlwZW9mIF9idiArICIpLiBXYXMg
IiArIF9hdiArICIgKG9mIHR5cGUgIiArIHR5cGVvZiBfYXYgKyAiKS4iKTsKK30KKworZnVuY3Rp
b24gc2hvdWxkQmVUcnVlQShfYSkgeyBzaG91bGRCZUEoX2EsICJ0cnVlIik7IH0KKwordmFyIHRv
U3RyaW5nRXJyb3IgPSBuZXcgRXJyb3IoJ3RvU3RyaW5nIHRocmV3IGV4Y2VwdGlvbicpOwordmFy
IG5vdFN1cHBvcnRlZEVycm9yID0gbmV3IEVycm9yKCdOT1RfU1VQUE9SVEVEX0VSUjogRE9NIEV4
Y2VwdGlvbiA5Jyk7Cit2YXIgZW1wdHlGdW5jdGlvbiA9IGZ1bmN0aW9uKCkge307CisKKworZnVu
Y3Rpb24gT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24oKSB7fTsKK09iamVjdFRocm93aW5nRXhjZXB0
aW9uLnByb3RvdHlwZS50b1N0cmluZyA9IGZ1bmN0aW9uKCkgeworICAgIHRocm93IHRvU3RyaW5n
RXJyb3I7Cit9Cit2YXIgb2JqZWN0VGhyb3dpbmdFeGNlcHRpb24gPSBuZXcgT2JqZWN0VGhyb3dp
bmdFeGNlcHRpb24oKTsKKworCituYXZpZ2F0b3Iud2Via2l0R2V0VXNlck1lZGlhKCJ2aWRlbyIs
IGdvdFN0cmVhbSwgZ290U3RyZWFtRmFpbGVkKTsKK2Z1bmN0aW9uIGdvdFN0cmVhbShzKSB7Citz
dHJlYW0gPSBzOworfQorCitmdW5jdGlvbiBnb3RTdHJlYW1GYWlsZWQoZXJyb3IpIHsKKyAgYWxl
cnQoIkZhaWxlZCB0byBnZXQgYWNjZXNzIHRvIHdlYmNhbS4gRXJyb3IgY29kZSB3YXMgIiArIGVy
cm9yLmNvZGUpOworfQorCisKK3ZhciBwYz1uZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4g
Tk9ORSIsIGVtcHR5RnVuY3Rpb24pOworLy9tZXRob2QKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBw
Yy5hZGRTdHJlYW0gPT0gJ2Z1bmN0aW9uJyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLnJl
bW92ZVN0cmVhbSA9PSAnZnVuY3Rpb24nIik7CitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMuY2xv
c2UgPT0gJ2Z1bmN0aW9uJyIpOworCisvL3BlZXJjb25uZWN0aW9uIHJlYWR5U3RhdGUgCitzaG91
bGRCZVRydWVBKCJwYy5ORVcgPT0wIik7CitzaG91bGRCZVRydWVBKCJwYy5ORUdPVElBVElORyA9
PSAxIik7CitzaG91bGRCZVRydWVBKCJwYy5BQ1RJVkUgPT0gMiIpOworc2hvdWxkQmVUcnVlQSgi
cGMuQ0xPU0VEID09IDMiKTsKKworLy9pY2VTdGF0ZSBhbmQgU0RQIHN0YXRlCitzaG91bGRCZVRy
dWVBKCJwYy5JQ0VfR0FUSEVSSU5HID09IDB4MTAwICIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNF
X1dBSVRJTkcgPT0gMHgyMDAiKTsKK3Nob3VsZEJlVHJ1ZUEoInBjLklDRV9DSEVDS0lORyA9PSAw
eDMwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NPTk5FQ1RFRCA9PSAweDQwMCIpOworc2hv
dWxkQmVUcnVlQSgicGMuSUNFX0NPTVBMRVRFRCA9PSAweDUwMCIpOworc2hvdWxkQmVUcnVlQSgi
cGMuSUNFX0ZBSUxFRCA9PSAweDYwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuSUNFX0NMT1NFRCA9
PSAweDcwMCIpOworc2hvdWxkQmVUcnVlQSgicGMuU0RQX0lETEUgPT0gMHgxMDAwIik7CitzaG91
bGRCZVRydWVBKCJwYy5TRFBfV0FJVElORyA9PSAweDIwMDAiKTsKK3Nob3VsZEJlVHJ1ZUEoInBj
LlNEUF9HTEFSRSA9PTB4MzAwMCIpOworCisvL01lZGlhU3RyZWFtW10gYXR0cmlidXRlCitzaG91
bGRCZVRydWVBKCJ0eXBlb2YgcGMubG9jYWxTdHJlYW1zID09ICdvYmplY3QnIik7CitzaG91bGRC
ZVRydWVBKCJ0eXBlb2YgcGMucmVtb3RlU3RyZWFtcyA9PSAnb2JqZWN0JyIpOworCisvL2NhbGxi
YWNrIGZ1bmN0aW9uIGRlZmluaXRpb24gCitzaG91bGRCZVRydWVBKCJ0eXBlb2YgcGMub25hZGRz
dHJlYW0gPT0gJ29iamVjdCciKTsKK3Nob3VsZEJlVHJ1ZUEoInR5cGVvZiBwYy5vbnJlbW92ZXN0
cmVhbSA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9uY29ubmVjdGlu
ZyA9PSAnb2JqZWN0JyIpOworc2hvdWxkQmVUcnVlQSgidHlwZW9mIHBjLm9ub3BlbiA9PSAnb2Jq
ZWN0JyIpOworCit3aW5kb3cuanNUZXN0SXNBc3luYyA9IGZhbHNlOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1lbnQtdHlwZXMuanMKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvYXJndW1l
bnQtdHlwZXMuanMJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3NjcmlwdC10ZXN0cy9hcmd1bWVudC10eXBlcy5qcwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4
OSBAQAorZGVzY3JpcHRpb24oIlRlc3RzIHRoZSBhY2NlcHRhYmxlIHR5cGVzIGZvciBhcmd1bWVu
dHMgdG8gbWV0aG9kIGZvciBQZWVyVG9QZWVyQ29ubmVjdGlvbiBkZWZpbmF0aW9uLiIpOworCitm
dW5jdGlvbiBzaG91bGROb3RUaHJvdyhleHByZXNzaW9uKQoreworICB0cnkgeworICAgIGV2YWwo
ZXhwcmVzc2lvbik7CisgICAgdGVzdFBhc3NlZChleHByZXNzaW9uICsgIiBkaWQgbm90IHRocm93
IGV4Y2VwdGlvbi4iKTsKKyAgfSBjYXRjaChlKSB7CisgICAgdGVzdEZhaWxlZChleHByZXNzaW9u
ICsgIiBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4gVGhyZXcgZXhjZXB0aW9uICIgKyBlKTsK
KyAgfQorfQorCitmdW5jdGlvbiB0ZXN0KGV4cHJlc3Npb24sIGV4cHJlc3Npb25TaG91bGRUaHJv
dywgZXhwZWN0ZWRFeGNlcHRpb24pIHsKKyAgICBpZiAoZXhwcmVzc2lvblNob3VsZFRocm93KSB7
CisgICAgICAgIGlmIChleHBlY3RlZEV4Y2VwdGlvbikKKyAgICAgICAgICAgIHNob3VsZFRocm93
KGV4cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAiJyArIGV4cGVjdGVkRXhjZXB0aW9u
ICsgJyI7IH0pKCk7Jyk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNob3VsZFRocm93KGV4
cHJlc3Npb24sICcoZnVuY3Rpb24oKSB7IHJldHVybiAiRXJyb3I6IFRZUEVfTUlTTUFUQ0hfRVJS
OiBET00gRXhjZXB0aW9uIDE3IjsgfSkoKTsnKTsKKyAgICB9IGVsc2UgeworICAgICAgICBzaG91
bGROb3RUaHJvdyhleHByZXNzaW9uKTsKKyAgICB9Cit9CisKK3ZhciB0b1N0cmluZ0Vycm9yID0g
bmV3IEVycm9yKCd0b1N0cmluZyB0aHJldyBleGNlcHRpb24nKTsKK3ZhciBub3RTdXBwb3J0ZWRF
cnJvciA9IG5ldyBFcnJvcignTk9UX1NVUFBPUlRFRF9FUlI6IERPTSBFeGNlcHRpb24gOScpOwor
dmFyIGVtcHR5RnVuY3Rpb24gPSBmdW5jdGlvbigpIHt9OworCitmdW5jdGlvbiBPYmplY3RUaHJv
d2luZ0V4Y2VwdGlvbigpIHt9OworT2JqZWN0VGhyb3dpbmdFeGNlcHRpb24ucHJvdG90eXBlLnRv
U3RyaW5nID0gZnVuY3Rpb24oKSB7CisgICAgdGhyb3cgdG9TdHJpbmdFcnJvcjsKK30KK3ZhciBv
YmplY3RUaHJvd2luZ0V4Y2VwdGlvbiA9IG5ldyBPYmplY3RUaHJvd2luZ0V4Y2VwdGlvbigpOwor
CitzaG91bGRCZVRydWUoInR5cGVvZiB3ZWJraXRQZWVyQ29ubmVjdGlvbj09ICdmdW5jdGlvbici
KTsKKworLy8gMCBBcmd1bWVudAordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCknLCB0
cnVlLCdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7CisKKy8vIDEgQXJndW1lbnQg
KG5ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbiByZXF1aXJlcyBhdCBsZWFzdCAyIGFyZ3VtZW50cyku
Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4gMjAzLjAuMTEzLjI6MjQ3OCIp
JywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4IiknLCB0cnVl
LCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBl
ZXJDb25uZWN0aW9uKCJTVFVOIGV4YW1wbGUubmV0IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3Qg
ZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVO
UyAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3Vt
ZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyByZWxheS5leGFt
cGxlLm5ldDozNDc4IiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycp
OwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5ldCIpJywg
dHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiVFVSTiAyMDMuMC4xMTMuMjoyNDc4IiknLCB0cnVlLCAnVHlwZUVy
cm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0
aW9uKCJUVVJOIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5v
dCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRV
Uk4gZXhhbXBsZS5uZXQiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRz
Jyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIDIwMy4wLjExMy4yOjI0
NzgiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCdu
ZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIHJlbGF5LmV4YW1wbGUubmV0OjM0NzgiKScs
IHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Vi
a2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIGV4YW1wbGUubmV0IiknLCB0cnVlLCAnVHlwZUVycm9y
OiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9u
KCJUVVJOIE5PTkUiKScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7
Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk5TIE5PTkUiKScsIHRydWUsICdU
eXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlNUVU4gTk9ORSIpJywgdHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1
bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9ORSIpJywg
dHJ1ZSwgJ1R5cGVFcnJvcjogTm90IGVub3VnaCBhcmd1bWVudHMnKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigidW5kZWZpbmVkIiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5v
dWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJudWxsIikn
LCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdoIGFyZ3VtZW50cycpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKHt9KSknLCB0cnVlLCAnU3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQg
dG9rZW4gKScpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKDQyKSknLCB0cnVlLCAn
U3ludGF4RXJyb3I6IFVuZXhwZWN0ZWQgdG9rZW4gKScpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJD
b25uZWN0aW9uKEluZmluaXR5KScsIHRydWUsICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1l
bnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oLUluZmluaXR5KScsIHRydWUs
ICdUeXBlRXJyb3I6IE5vdCBlbm91Z2ggYXJndW1lbnRzJyk7Cit0ZXN0KCduZXcgd2Via2l0UGVl
ckNvbm5lY3Rpb24oZW1wdHlGdW5jdGlvbiknLCB0cnVlLCAnVHlwZUVycm9yOiBOb3QgZW5vdWdo
IGFyZ3VtZW50cycpOworCisvLzIgQXJndW1lbnQKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVj
dGlvbigiU1RVTiAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rl
c3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiByZWxheS5leGFtcGxlLm5ldDozNDc4
IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlv
bigiU1RVTiBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbiknLGZhbHNlKTsKK3Rlc3QoJ25ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgMjAzLjAuMTEzLjI6MjQ3OCIsZW1wdHlGdW5jdGlv
biknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIHJlbGF5
LmV4YW1wbGUubmV0OjM0NzgiLGVtcHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOUyBleGFtcGxlLm5ldCIsZW1wdHlGdW5jdGlvbiknLCBm
YWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gMjAzLjAuMTEzLjI6
MjQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5l
Y3Rpb24oIlRVUk4gcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1wdHlGdW5jdGlvbiknLCBmYWxz
ZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRVUk4gZXhhbXBsZS5uZXQiLGVt
cHR5RnVuY3Rpb24pJywgZmFsc2UpOwordGVzdCgnbmV3IHdlYmtpdFBlZXJDb25uZWN0aW9uKCJU
VVJOUyAyMDMuMC4xMTMuMjoyNDc4IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25l
dyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgcmVsYXkuZXhhbXBsZS5uZXQ6MzQ3OCIsZW1w
dHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlRV
Uk5TIGV4YW1wbGUubmV0IixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiVFVSTiBOT05FIixlbXB0eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rl
c3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIsZW1wdHlGdW5jdGlvbikn
LGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTiBOT05FIixlbXB0
eUZ1bmN0aW9uKScsIGZhbHNlKTsKK3Rlc3QoJ25ldyB3ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RV
TlMgTk9ORSIsZW1wdHlGdW5jdGlvbiknLCBmYWxzZSk7Cit0ZXN0KCduZXcgd2Via2l0UGVlckNv
bm5lY3Rpb24oIlRVUk4gTk9ORSIsdW5kZWZpbmVkKScsICB0cnVlKTsKK3Rlc3QoJ25ldyB3ZWJr
aXRQZWVyQ29ubmVjdGlvbigiVFVSTlMgTk9ORSIse30pJywgZmFsc2UpOwordGVzdCgnbmV3IHdl
YmtpdFBlZXJDb25uZWN0aW9uKCJTVFVOIE5PTkUiLDQyKScsICB0cnVlKTsKK3Rlc3QoJ25ldyB3
ZWJraXRQZWVyQ29ubmVjdGlvbigiU1RVTlMgTk9ORSIsSW5maW5pdHkpJywgdHJ1ZSk7Cit0ZXN0
KCduZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU5TIE5PTkUiLC1JbmZpbml0eSknLCB0cnVl
KTsKKworCisKK3dpbmRvdy5qc1Rlc3RJc0FzeW5jID0gZmFsc2U7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRzdHJlYW0u
anMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVz
dHMvcGVlcmNvbm5lY3Rpb24tYWRkc3RyZWFtLmpzCShyZXZpc2lvbiAxMDgyOTMpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10ZXN0cy9wZWVyY29ubmVjdGlvbi1hZGRz
dHJlYW0uanMJKHdvcmtpbmcgY29weSkKQEAgLTI1LDggKzI1LDI2IEBAIHRyeSB7CiB9IGNhdGNo
KGUpIHsKICAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0obmV3IEFycmF5KCkpIHRocmV3ICcg
KyBlKTsKIH0KLQotZmluaXNoSlNUZXN0KCk7Cit0cnkgeworICAgIHBjLmFkZFN0cmVhbSh7fSk7
Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5hZGRTdHJlYW0oe30pIHRocmV3JyAr
IGUpOworfQordHJ5IHsKKyAgICBwYy5hZGRTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7CisgICAg
dGVzdFBhc3NlZCgncGMuYWRkU3RyZWFtKDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7CisgICAg
cGMuYWRkU3RyZWFtKEluZmluaXR5KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQYXNzZWQoJ3Bj
LmFkZFN0cmVhbShJbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLmFkZFN0
cmVhbSgtSW5maW5pdHkpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMuYWRkU3Ry
ZWFtKC1JbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9CiAKIHdpbmRvdy5zdWNjZXNzZnVsbHlQYXJz
ZWQgPSB0cnVlOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3NjcmlwdC10
ZXN0cy9wZWVyY29ubmVjdGlvbi1yZW1vdmVzdHJlYW0uanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9zY3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zl
c3RyZWFtLmpzCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9z
Y3JpcHQtdGVzdHMvcGVlcmNvbm5lY3Rpb24tcmVtb3Zlc3RyZWFtLmpzCShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDUwIEBACitkZXNjcmlwdGlvbigiVGVzdHMgUGVlckNvbm5lY3Rpb246OnJlbW92
ZVN0cmVhbSgpLiIpOworCit2YXIgcGMgPSBuZXcgd2Via2l0UGVlckNvbm5lY3Rpb24oIlNUVU4g
c29tZS5zZXJ2ZXIuY29tIiwgZnVuY3Rpb24oKSB7fSk7CisKK3RyeSB7CisgICAgcGMucmVtb3Zl
U3RyZWFtKCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0o
KSB0aHJldyAnICsgZSk7Cit9CisKK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKHVuZGVmaW5l
ZCk7Cit9IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0odW5kZWZp
bmVkKSB0aHJldyAnICsgZSk7Cit9CisKK3RyeSB7CisgICAgcGMucmVtb3ZlU3RyZWFtKG51bGwp
OworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG51bGwpIHRo
cmV3ICcgKyBlKTsKK30KKwordHJ5IHsKKyAgICBwYy5yZW1vdmVTdHJlYW0obmV3IEFycmF5KCkp
OworfSBjYXRjaChlKSB7CisgICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKG5ldyBBcnJh
eSgpKSB0aHJldyAnICsgZSk7Cit9Cit0cnkgeworICAgIHBjLnJlbW92ZVN0cmVhbSh7fSk7Cit9
IGNhdGNoKGUpIHsKKyAgICB0ZXN0UGFzc2VkKCdwYy5yZW1vdmVTdHJlYW0oe30pIHRocmV3JyAr
IGUpOworfQordHJ5IHsKKyAgICBwYy5yZW1vdmVTdHJlYW0oNDIpOworfSBjYXRjaChlKSB7Cisg
ICAgdGVzdFBhc3NlZCgncGMucmVtb3ZlU3RyZWFtKDQyKSB0aHJldycgKyBlKTsKK30KK3RyeSB7
CisgICAgcGMucmVtb3ZlU3RyZWFtKEluZmluaXR5KTsKK30gY2F0Y2goZSkgeworICAgIHRlc3RQ
YXNzZWQoJ3BjLnJlbW92ZVN0cmVhbShJbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9Cit0cnkgewor
ICAgIHBjLnJlbW92ZVN0cmVhbSgtSW5maW5pdHkpOworfSBjYXRjaChlKSB7CisgICAgdGVzdFBh
c3NlZCgncGMucmVtb3ZlU3RyZWFtKC1JbmZpbml0eSkgdGhyZXcnICsgZSk7Cit9CisKK3dpbmRv
dy5zdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>