<?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>63054</bug_id>
          
          <creation_ts>2011-06-21 00:36:01 -0700</creation_ts>
          <short_desc>IndexedDB: createObjectStore() should check if keypath is valid</short_desc>
          <delta_ts>2011-10-14 13:42:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kentaro Hara">haraken</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>dgrogan</cc>
    
    <cc>dominicc</cc>
    
    <cc>hans</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>424333</commentid>
    <comment_count>0</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-21 00:36:01 -0700</bug_when>
    <thetext>The spec (http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#widl-IDBDatabase-createObjectStore-IDBObjectStore-DOMString-name-Object-optionalParameters) says &quot;If keyPath is an array and any items in the array is not a valid key path, or if keyPath is a string and is not a valid key path then a NON_TRANSIENT_ERR error must be thrown&quot;. 

However, the current createObjectStore() does not check the keypath argument and thus it does not throw any exception when we give an invalid keypath. I attached the test case that should throw an exception.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424334</commentid>
    <comment_count>1</comment_count>
      <attachid>97945</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-21 00:36:41 -0700</bug_when>
    <thetext>Created attachment 97945
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424337</commentid>
    <comment_count>2</comment_count>
      <attachid>97947</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-21 00:58:20 -0700</bug_when>
    <thetext>Created attachment 97947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424377</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2011-06-21 03:57:18 -0700</bug_when>
    <thetext>LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424703</commentid>
    <comment_count>4</comment_count>
      <attachid>97947</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-21 13:25:56 -0700</bug_when>
    <thetext>Comment on attachment 97947
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        if the |keypath| is invalid. With this parsing, we remove keypath-as-array.html because
&gt; +        the current keypath parser does not support an array of keypath and (more importantly)
&gt; +        the current implementation of ObjectStore does not support multiple keypaths.

Can we add a new test that demonstrates that we don&apos;t support these keypath values and that the right exception is raised?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424954</commentid>
    <comment_count>5</comment_count>
      <attachid>98100</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2011-06-21 19:13:43 -0700</bug_when>
    <thetext>Created attachment 98100
Patch

Patch. I added a new test (storage/indexeddb/keypath-basics.html) that demonstrates that we do not support an array of keypath.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425328</commentid>
    <comment_count>6</comment_count>
      <attachid>98100</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-22 10:14:36 -0700</bug_when>
    <thetext>Comment on attachment 98100
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Tests: storage/indexeddb/keyPath.html

I don&apos;t see a test named keyPath.html.  I&apos;ll remove this when landing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425331</commentid>
    <comment_count>7</comment_count>
      <attachid>98196</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-22 10:17:39 -0700</bug_when>
    <thetext>Created attachment 98196
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425511</commentid>
    <comment_count>8</comment_count>
      <attachid>98196</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 13:09:17 -0700</bug_when>
    <thetext>Comment on attachment 98196
Patch for landing

Clearing flags on attachment: 98196

Committed r89466: &lt;http://trac.webkit.org/changeset/89466&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425512</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-22 13:09:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484246</commentid>
    <comment_count>10</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2011-10-14 13:42:32 -0700</bug_when>
    <thetext>*** Bug 63053 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>97945</attachid>
            <date>2011-06-21 00:36:41 -0700</date>
            <delta_ts>2011-06-21 00:36:41 -0700</delta_ts>
            <desc>test case</desc>
            <filename>invalid_keypath.html</filename>
            <type>text/html</type>
            <size>1848</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgo8aGVhZD4KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+CjxzY3JpcHQgc3Jj
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CjxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMi
Pjwvc2NyaXB0Pgo8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cjwv
aGVhZD4KPGJvZHk+CjxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgo8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KPHNjcmlwdD4KCmRlc2NyaXB0aW9uKCJUZXN0IEluZGV4ZWREQiBrZXkgcGF0aCBjb3Ju
ZXIgY2FzZXMiKTsKaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKCmZ1bmN0aW9uIHRlc3QoKQp7CiAgICBpbmRl
eGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRv
dy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsiKTsKICAgIHNob3VsZEJl
RmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7CiAgICBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IGV2
YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFiYXNlRXhjZXB0
aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsiKTsKICAgIHNob3VsZEJl
RmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09IG51bGwiKTsKICAgIElEQkN1cnNvciA9IGV2
YWxBbmRMb2coIklEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3IgfHwgd2luZG93LndlYmtpdElE
QkN1cnNvcjsiKTsKICAgIHNob3VsZEJlRmFsc2UoIklEQkN1cnNvciA9PSBudWxsIik7CiAgICBJ
REJLZXlSYW5nZSA9IGV2YWxBbmRMb2coIklEQktleVJhbmdlID0gd2luZG93LklEQktleVJhbmdl
IHx8IHdpbmRvdy53ZWJraXRJREJLZXlSYW5nZTsiKTsKICAgIHNob3VsZEJlRmFsc2UoIklEQktl
eVJhbmdlID09IG51bGwiKTsKCiAgICBuYW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOwog
ICAgZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFzZSI7CiAgICByZXF1ZXN0ID0gZXZhbEFu
ZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSwgZGVzY3JpcHRpb24pIik7CiAgICByZXF1ZXN0Lm9u
c3VjY2VzcyA9IG9wZW5TdWNjZXNzOwogICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVy
cm9yQ2FsbGJhY2s7Cn0KCmZ1bmN0aW9uIG9wZW5TdWNjZXNzKCkKewogICAgZGIgPSBldmFsQW5k
TG9nKCJkYiA9IGV2ZW50LnRhcmdldC5yZXN1bHQiKTsKCiAgICByZXF1ZXN0ID0gZXZhbEFuZExv
ZygicmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKSIpOwogICAgcmVxdWVzdC5vbnN1Y2Nlc3Mg
PSB0ZXN0Q3JlYXRlT2JqZWN0U3RvcmU7CiAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVk
RXJyb3JDYWxsYmFjazsKfQoKZnVuY3Rpb24gdGVzdENyZWF0ZU9iamVjdFN0b3JlKCkKewogICAg
ZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKCiAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQYXRoOiAnMTExIyMjLi4uW1tbICAgJiUk
I19fX2FhYSd9KSIsICJJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIpOwog
ICAgZG9uZSgpOwp9Cgp2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKCnRlc3QoKTsKCjwv
c2NyaXB0Pgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>97947</attachid>
            <date>2011-06-21 00:58:20 -0700</date>
            <delta_ts>2011-06-22 10:17:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63054-20110621165818.patch</filename>
            <type>text/plain</type>
            <size>8849</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzMzkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlZmE3ODZlNzA0MDE5OGQwYjlhMDU4
ZjdlNzI5NzY1MWY1ZTVkMDg4Li5lNjMzYjU4MjJjN2MzMTZiYTcxYWIwMjc0MmE0MTMwODk1ODdl
OGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDYtMjEgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBDaGVjayB8a2V5cGF0aHwgYXJndW1lbnQgb2YgY3JlYXRlT2JqZWN0U3RvcmUo
KS4gUmVtb3ZlIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXMtYXJyYXkuaHRtbC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDU0CisKKyAgICAg
ICAgQXQgdGhlIGhlYWQgb2YgY3JlYXRlT2JqZWN0U3RvcmUoKSwgd2UgcGFyc2UgfGtleXBhdGh8
IGFyZ3VtZW50IGFuZCB0aHJvdyBhbiBleGNlcHRpb24KKyAgICAgICAgaWYgdGhlIHxrZXlwYXRo
fCBpcyBpbnZhbGlkLiBXaXRoIHRoaXMgcGFyc2luZywgd2UgcmVtb3ZlIGtleXBhdGgtYXMtYXJy
YXkuaHRtbCBiZWNhdXNlCisgICAgICAgIHRoZSBjdXJyZW50IGtleXBhdGggcGFyc2VyIGRvZXMg
bm90IHN1cHBvcnQgYW4gYXJyYXkgb2Yga2V5cGF0aCBhbmQgKG1vcmUgaW1wb3J0YW50bHkpCisg
ICAgICAgIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9mIE9iamVjdFN0b3JlIGRvZXMgbm90
IHN1cHBvcnQgbXVsdGlwbGUga2V5cGF0aHMuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRk
Yi9rZXlwYXRoLWFzLWFycmF5LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBzdG9y
YWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFzLWFycmF5Lmh0bWw6IFJlbW92ZWQuCisKIDIwMTEtMDYt
MjAgIFl1dGEgS2l0YW11cmEgIDx5dXRha0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgdXBkYXRlIGV4cGVjdGVkIHRlc3QgcmVzdWx0cyBvbiBDaHJvbWl1bSBNYWMtTGVvcGFy
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXMt
YXJyYXktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0
aC1hcy1hcnJheS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDk2
NjBhMWQyNTc3OTJlM2Q0NDk2YThhZjUxNzIwYzNjMjVhNmFkNGIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1hcy1hcnJheS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyOCAr
MCwwIEBACi1UZXN0IEluZGV4ZWREQiBrZXkgcGF0aCBjb3JuZXIgY2FzZXMKLQotT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgotCi0KLWluZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2lu
ZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOwotUEFTUyBpbmRleGVk
REIgPT0gbnVsbCBpcyBmYWxzZQotSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0
YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOwotUEFT
UyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIGlzIGZhbHNlCi1JREJDdXJzb3IgPSB3aW5k
b3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJDdXJzb3I7Ci1QQVNTIElEQkN1cnNvciA9
PSBudWxsIGlzIGZhbHNlCi1JREJLZXlSYW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5k
b3cud2Via2l0SURCS2V5UmFuZ2U7Ci1QQVNTIElEQktleVJhbmdlID09IG51bGwgaXMgZmFsc2UK
LWluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uKQotZGIgPSBldmVudC50YXJnZXQucmVz
dWx0Ci1yZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCi1EZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgotdGVzdCBrZXlwYXRoIGFzIGFycmF5Ci1kYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vJywg
e2tleVBhdGg6IFsnZm9vJ10sIGF1dG9JbmNyZW1lbnQ6IHRydWV9KQotZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ2Zvb2JhcicsIHtrZXlQYXRoOiBbJ2ZvbycsICdiYXInXSwgYXV0b0luY3JlbWVudDog
dHJ1ZX0pCi1kYi5jcmVhdGVPYmplY3RTdG9yZSgnZW1wdHknLCB7a2V5UGF0aDogW10sIGF1dG9J
bmNyZW1lbnQ6IHRydWV9KQotZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25lc3RlZCcsIHtrZXlQYXRo
OiBbW11dLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKLWRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhcnJh
eW9mZW1wdHknLCB7a2V5UGF0aDogWycnLCAnJ10sIGF1dG9JbmNyZW1lbnQ6IHRydWV9KQotZGIu
Y3JlYXRlT2JqZWN0U3RvcmUoJ2FycmF5b2ZmbG9hdCcsIHtrZXlQYXRoOiBbMS4wLCAyLjBdLCBh
dXRvSW5jcmVtZW50OiB0cnVlfSkKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQot
VEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9rZXlwYXRoLWFzLWFycmF5Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9r
ZXlwYXRoLWFzLWFycmF5Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDA2ZjI3
YmRlNjMxM2FkYzdlMDM0NzBhMGI0NGRmYjQwYzU1ZTBiNzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
a2V5cGF0aC1hcy1hcnJheS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAotPCFE
T0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm
PSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Ci08c2NyaXB0IHNy
Yz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5jdGlvbi5q
cyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keT4KLTxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgotPGRpdiBpZD0iY29u
c29sZSI+PC9kaXY+Ci08c2NyaXB0PgotCi1kZXNjcmlwdGlvbigiVGVzdCBJbmRleGVkREIga2V5
IHBhdGggY29ybmVyIGNhc2VzIik7Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLQotZnVuY3Rpb24gdGVz
dCgpCi17Ci0gICAgaW5kZXhlZERCID0gZXZhbEFuZExvZygiaW5kZXhlZERCID0gd2luZG93Lmlu
ZGV4ZWREQiB8fCB3aW5kb3cud2Via2l0SW5kZXhlZERCIHx8IHdpbmRvdy5tb3pJbmRleGVkREI7
Iik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiaW5kZXhlZERCID09IG51bGwiKTsKLSAgICBJREJEYXRh
YmFzZUV4Y2VwdGlvbiA9IGV2YWxBbmRMb2coIklEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93
LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlv
bjsiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIik7
Ci0gICAgSURCQ3Vyc29yID0gZXZhbEFuZExvZygiSURCQ3Vyc29yID0gd2luZG93LklEQkN1cnNv
ciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOyIpOwotICAgIHNob3VsZEJlRmFsc2UoIklEQkN1
cnNvciA9PSBudWxsIik7Ci0gICAgSURCS2V5UmFuZ2UgPSBldmFsQW5kTG9nKCJJREJLZXlSYW5n
ZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7Iik7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgiSURCS2V5UmFuZ2UgPT0gbnVsbCIpOwotCi0gICAgbmFtZSA9IHdp
bmRvdy5sb2NhdGlvbi5wYXRobmFtZTsKLSAgICBkZXNjcmlwdGlvbiA9ICJNeSBUZXN0IERhdGFi
YXNlIjsKLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4obmFtZSwgZGVz
Y3JpcHRpb24pIik7Ci0gICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBvcGVuU3VjY2VzczsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
b3BlblN1Y2Nlc3MoKQotewotICAgIGRiID0gZXZhbEFuZExvZygiZGIgPSBldmVudC50YXJnZXQu
cmVzdWx0Iik7Ci0KLSAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygicmVxdWVzdCA9IGRiLnNldFZl
cnNpb24oJzEnKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdGVzdEdyb3VwMTsKLSAgICBy
ZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKLX0KLQotZnVuY3Rpb24g
dGVzdEdyb3VwMSgpCi17Ci0gICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKLQotICAgIGRl
YnVnKCJ0ZXN0IGtleXBhdGggYXMgYXJyYXkiKTsKLSAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVP
YmplY3RTdG9yZSgnZm9vJywge2tleVBhdGg6IFsnZm9vJ10sIGF1dG9JbmNyZW1lbnQ6IHRydWV9
KSIpOwotICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdmb29iYXInLCB7a2V5
UGF0aDogWydmb28nLCAnYmFyJ10sIGF1dG9JbmNyZW1lbnQ6IHRydWV9KSIpOwotICAgIGV2YWxB
bmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdlbXB0eScsIHtrZXlQYXRoOiBbXSwgYXV0b0lu
Y3JlbWVudDogdHJ1ZX0pIik7Ci0gICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J25lc3RlZCcsIHtrZXlQYXRoOiBbW11dLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiKTsKLSAgICBl
dmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnYXJyYXlvZmVtcHR5Jywge2tleVBhdGg6
IFsnJywgJyddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiKTsKLSAgICBldmFsQW5kTG9nKCJkYi5j
cmVhdGVPYmplY3RTdG9yZSgnYXJyYXlvZmZsb2F0Jywge2tleVBhdGg6IFsxLjAsIDIuMF0sIGF1
dG9JbmNyZW1lbnQ6IHRydWV9KSIpOwotICAgIGRvbmUoKTsKLX0KLQotdmFyIHN1Y2Nlc3NmdWxs
eVBhcnNlZCA9IHRydWU7Ci0KLXRlc3QoKTsKLQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggZDA3MzAxYjIwYjYwMjU1ZGVjNzFhYWVlOTM5NjdhM2YxYTg4MGNiYS4u
YjIzOTA3ZjhjYTA0Yzc4NTM2NTk4MTQ2OTI3N2Y4ZWRjMjVmYWVjNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDExLTA2LTIxICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGdvb2dsZS5j
b20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hl
Y2sgfGtleXBhdGh8IGFyZ3VtZW50IG9mIGNyZWF0ZU9iamVjdFN0b3JlKCkuIFJlbW92ZSBzdG9y
YWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFzLWFycmF5Lmh0bWwuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA1NAorCisgICAgICAgIEF0IHRoZSBoZWFk
IG9mIGNyZWF0ZU9iamVjdFN0b3JlKCksIHdlIHBhcnNlIHxrZXlwYXRofCBhcmd1bWVudCBhbmQg
dGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGlmIHRoZSB8a2V5cGF0aHwgaXMgaW52YWxpZC4g
V2l0aCB0aGlzIHBhcnNpbmcsIHdlIHJlbW92ZSBrZXlwYXRoLWFzLWFycmF5Lmh0bWwgYmVjYXVz
ZQorICAgICAgICB0aGUgY3VycmVudCBrZXlwYXRoIHBhcnNlciBkb2VzIG5vdCBzdXBwb3J0IGFu
IGFycmF5IG9mIGtleXBhdGggYW5kIChtb3JlIGltcG9ydGFudGx5KQorICAgICAgICB0aGUgY3Vy
cmVudCBpbXBsZW1lbnRhdGlvbiBvZiBPYmplY3RTdG9yZSBkb2VzIG5vdCBzdXBwb3J0IG11bHRp
cGxlIGtleXBhdGhzLgorCisgICAgICAgIFRlc3Q6IHN0b3JhZ2UvaW5kZXhlZGRiL2tleVBhdGgu
aHRtbAorCisgICAgICAgICogc3RvcmFnZS9JREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAqIHN0b3JhZ2Uv
SURCS2V5UGF0aC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJc1ZhbGlkS2V5UGF0aCk6Cisg
ICAgICAgICogc3RvcmFnZS9JREJLZXlQYXRoLmg6CisKIDIwMTEtMDYtMjAgIEFuZHkgRXN0ZXMg
IDxhZXN0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJEYXRhYmFzZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcAppbmRleCA3NzgyNzNhNTYyMzMzNjJl
NTdiNjE5ZmNjZGUwMGZmNzkzNDgyMTViLi43OWUxMjcxN2EyNzUzZmY1YTYzOWY3ZDU4NTM4MDdh
ZjIwOTFjZTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgogI2luY2x1ZGUgIklE
QkZhY3RvcnlCYWNrZW5kSW50ZXJmYWNlLmgiCiAjaW5jbHVkZSAiSURCSW5kZXguaCIKKyNpbmNs
dWRlICJJREJLZXlQYXRoLmgiCiAjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmUuaCIKICNpbmNsdWRl
ICJJREJWZXJzaW9uQ2hhbmdlRXZlbnQuaCIKICNpbmNsdWRlICJJREJWZXJzaW9uQ2hhbmdlUmVx
dWVzdC5oIgpAQCAtODEsNiArODIsMTEgQEAgUGFzc1JlZlB0cjxJREJPYmplY3RTdG9yZT4gSURC
RGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgbmFtZSwgY28KIAogICAg
IFN0cmluZyBrZXlQYXRoOwogICAgIG9wdGlvbnMuZ2V0S2V5U3RyaW5nKCJrZXlQYXRoIiwga2V5
UGF0aCk7CisgICAgaWYgKCFJREJJc1ZhbGlkS2V5UGF0aChrZXlQYXRoKSkgeworICAgICAgICBl
YyA9IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpOT05fVFJBTlNJRU5UX0VSUjsKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgfQorCiAgICAgYm9vbCBhdXRvSW5jcmVtZW50ID0gZmFsc2U7CiAgICAgb3B0
aW9ucy5nZXRLZXlCb29sKCJhdXRvSW5jcmVtZW50IiwgYXV0b0luY3JlbWVudCk7CiAgICAgLy8g
RklYTUU6IExvb2sgdXAgZXZpY3RhYmxlIGFuZCBwYXNzIHRoYXQgb24gYXMgd2VsbC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQktleVBhdGguY3BwCmluZGV4IDg4MzNkYTA2ODkwOGExN2Y1OWRhZmYy
YzdmY2IyY2I2NGU1YTdlNDguLjlmNjEzNTljN2MyMDIyZmE1ZTU4MTU3Mzk3MGU3MDkxYzhiOGQ1
MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlQYXRoLmNwcApAQCAtMTU4LDYgKzE1OCwx
NCBAQCBJREJLZXlQYXRoTGV4ZXI6OlRva2VuVHlwZSBJREJLZXlQYXRoTGV4ZXI6OmxleE51bWJl
cihJREJLZXlQYXRoRWxlbWVudCYgZWxlbWVudAogICAgIHJldHVybiBUb2tlbk51bWJlcjsKIH0K
IAorYm9vbCBJREJJc1ZhbGlkS2V5UGF0aChjb25zdCBTdHJpbmcmIGtleVBhdGgpCit7CisgICAg
SURCS2V5UGF0aFBhcnNlRXJyb3IgZXJyb3I7CisgICAgVmVjdG9yPElEQktleVBhdGhFbGVtZW50
PiBrZXlQYXRoRWxlbWVudHM7CisgICAgSURCUGFyc2VLZXlQYXRoKGtleVBhdGgsIGtleVBhdGhF
bGVtZW50cywgZXJyb3IpOworICAgIHJldHVybiBlcnJvciA9PSBJREJLZXlQYXRoUGFyc2VFcnJv
ck5vbmU7Cit9CisKIHZvaWQgSURCUGFyc2VLZXlQYXRoKGNvbnN0IFN0cmluZyYga2V5UGF0aCwg
VmVjdG9yPElEQktleVBhdGhFbGVtZW50PiYgZWxlbWVudHMsIElEQktleVBhdGhQYXJzZUVycm9y
JiBlcnJvcikKIHsKICAgICAvLyBUaGlzIGlzIGEgc2ltcGxpZmllZCBwYXJzZXIgbG9vc2VseSBi
YXNlZCBvbiBMaXRlcmFsUGFyc2VyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFn
ZS9JREJLZXlQYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGguaAppbmRl
eCA3Nzg3OTgwY2U5ZDUzZjQ4YTE1ZWM2NzNmNmYwYzc3MTlkMjUwMjY3Li4wZTIzYTRmMjg4ODgz
YjZiOTFjNDJkZGEyNGMwZTAxZWFkOGM5ZTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dG9yYWdlL0lEQktleVBhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBh
dGguaApAQCAtNTUsNiArNTUsNyBAQCBlbnVtIElEQktleVBhdGhQYXJzZUVycm9yIHsKICAgICBJ
REJLZXlQYXRoUGFyc2VFcnJvckRvdCwKIH07CiAKK2Jvb2wgSURCSXNWYWxpZEtleVBhdGgoY29u
c3QgU3RyaW5nJik7CiB2b2lkIElEQlBhcnNlS2V5UGF0aChjb25zdCBTdHJpbmcmLCBWZWN0b3I8
SURCS2V5UGF0aEVsZW1lbnQ+JiwgSURCS2V5UGF0aFBhcnNlRXJyb3ImKTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98100</attachid>
            <date>2011-06-21 19:13:43 -0700</date>
            <delta_ts>2011-06-22 10:17:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>63054.diff</filename>
            <type>text/plain</type>
            <size>14272</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlZmE3ODZlLi4yNmZhNTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDYt
MjEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayB8a2V5cGF0aHwgYXJndW1lbnQg
b2YgY3JlYXRlT2JqZWN0U3RvcmUoKS4gUmVtb3ZlIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgt
YXMtYXJyYXkuaHRtbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYzMDU0CisKKyAgICAgICAgQXQgdGhlIGhlYWQgb2YgY3JlYXRlT2JqZWN0U3RvcmUo
KSwgd2UgcGFyc2UgfGtleXBhdGh8IGFyZ3VtZW50IGFuZCB0aHJvdyBhbiBleGNlcHRpb24KKyAg
ICAgICAgaWYgdGhlIHxrZXlwYXRofCBpcyBpbnZhbGlkLiBXaXRoIHRoaXMgcGFyc2luZywgd2Ug
cmVtb3ZlIGtleXBhdGgtYXMtYXJyYXkuaHRtbCBiZWNhdXNlCisgICAgICAgIHRoZSBjdXJyZW50
IGtleXBhdGggcGFyc2VyIGRvZXMgbm90IHN1cHBvcnQgYW4gYXJyYXkgb2Yga2V5cGF0aCBhbmQg
KG1vcmUgaW1wb3J0YW50bHkpCisgICAgICAgIHRoZSBjdXJyZW50IGltcGxlbWVudGF0aW9uIG9m
IE9iamVjdFN0b3JlIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUga2V5cGF0aHMuCisgICAgICAg
IFdlIGFkZGVkIGtleXBhdGgtYmFzaWNzLmh0bWwgdGhhdCBkZW1vbnN0cmF0ZXMgdGhhdCB3ZSBk
byBub3Qgc3VwcG9ydCBhbiBhcnJheSBvZiBrZXlwYXRocy4KKworICAgICAgICAqIHN0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtYXMtYXJyYXktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYXMtYXJyYXkuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWw6IEFk
ZGVkLgorCiAyMDExLTA2LTIwICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBleHBlY3RlZCB0ZXN0IHJlc3VsdHMgb24gQ2hy
b21pdW0gTWFjLUxlb3BhcmQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9rZXlwYXRoLWFzLWFycmF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtYXMtYXJyYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA5NjYwYTFkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2tleXBhdGgtYXMtYXJyYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsMjggKzAsMCBAQAotVGVzdCBJbmRleGVkREIga2V5IHBhdGggY29ybmVyIGNhc2VzCi0KLU9u
IHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxv
d2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1pbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERC
IHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKLVBBU1Mg
aW5kZXhlZERCID09IG51bGwgaXMgZmFsc2UKLUlEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93
LklEQkRhdGFiYXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlv
bjsKLVBBU1MgSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQotSURCQ3Vyc29y
ID0gd2luZG93LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOwotUEFTUyBJREJD
dXJzb3IgPT0gbnVsbCBpcyBmYWxzZQotSURCS2V5UmFuZ2UgPSB3aW5kb3cuSURCS2V5UmFuZ2Ug
fHwgd2luZG93LndlYmtpdElEQktleVJhbmdlOwotUEFTUyBJREJLZXlSYW5nZSA9PSBudWxsIGlz
IGZhbHNlCi1pbmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikKLWRiID0gZXZlbnQudGFy
Z2V0LnJlc3VsdAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2Jq
ZWN0IHN0b3Jlcy4KLXRlc3Qga2V5cGF0aCBhcyBhcnJheQotZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J2ZvbycsIHtrZXlQYXRoOiBbJ2ZvbyddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKLWRiLmNyZWF0
ZU9iamVjdFN0b3JlKCdmb29iYXInLCB7a2V5UGF0aDogWydmb28nLCAnYmFyJ10sIGF1dG9JbmNy
ZW1lbnQ6IHRydWV9KQotZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2VtcHR5Jywge2tleVBhdGg6IFtd
LCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKLWRiLmNyZWF0ZU9iamVjdFN0b3JlKCduZXN0ZWQnLCB7
a2V5UGF0aDogW1tdXSwgYXV0b0luY3JlbWVudDogdHJ1ZX0pCi1kYi5jcmVhdGVPYmplY3RTdG9y
ZSgnYXJyYXlvZmVtcHR5Jywge2tleVBhdGg6IFsnJywgJyddLCBhdXRvSW5jcmVtZW50OiB0cnVl
fSkKLWRiLmNyZWF0ZU9iamVjdFN0b3JlKCdhcnJheW9mZmxvYXQnLCB7a2V5UGF0aDogWzEuMCwg
Mi4wXSwgYXV0b0luY3JlbWVudDogdHJ1ZX0pCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1hcy1hcnJheS5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIva2V5cGF0aC1hcy1hcnJheS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwNmYyN2JkLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tl
eXBhdGgtYXMtYXJyYXkuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDY1ICswLDAgQEAKLTwhRE9D
VFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgotPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QtZnVuY3Rpb24uanMi
Pjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci08cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KLTxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgotPHNjcmlwdD4KLQotZGVzY3JpcHRpb24oIlRlc3QgSW5kZXhlZERCIGtleSBw
YXRoIGNvcm5lciBjYXNlcyIpOwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0KLWZ1bmN0aW9uIHRlc3Qo
KQotewotICAgIGluZGV4ZWREQiA9IGV2YWxBbmRMb2coImluZGV4ZWREQiA9IHdpbmRvdy5pbmRl
eGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOyIp
OwotICAgIHNob3VsZEJlRmFsc2UoImluZGV4ZWREQiA9PSBudWxsIik7Ci0gICAgSURCRGF0YWJh
c2VFeGNlcHRpb24gPSBldmFsQW5kTG9nKCJJREJEYXRhYmFzZUV4Y2VwdGlvbiA9IHdpbmRvdy5J
REJEYXRhYmFzZUV4Y2VwdGlvbiB8fCB3aW5kb3cud2Via2l0SURCRGF0YWJhc2VFeGNlcHRpb247
Iik7Ci0gICAgc2hvdWxkQmVGYWxzZSgiSURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCIpOwot
ICAgIElEQkN1cnNvciA9IGV2YWxBbmRMb2coIklEQkN1cnNvciA9IHdpbmRvdy5JREJDdXJzb3Ig
fHwgd2luZG93LndlYmtpdElEQkN1cnNvcjsiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJJREJDdXJz
b3IgPT0gbnVsbCIpOwotICAgIElEQktleVJhbmdlID0gZXZhbEFuZExvZygiSURCS2V5UmFuZ2Ug
PSB3aW5kb3cuSURCS2V5UmFuZ2UgfHwgd2luZG93LndlYmtpdElEQktleVJhbmdlOyIpOwotICAg
IHNob3VsZEJlRmFsc2UoIklEQktleVJhbmdlID09IG51bGwiKTsKLQotICAgIG5hbWUgPSB3aW5k
b3cubG9jYXRpb24ucGF0aG5hbWU7Ci0gICAgZGVzY3JpcHRpb24gPSAiTXkgVGVzdCBEYXRhYmFz
ZSI7Ci0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2Ny
aXB0aW9uKSIpOwotICAgIHJlcXVlc3Qub25zdWNjZXNzID0gb3BlblN1Y2Nlc3M7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIG9w
ZW5TdWNjZXNzKCkKLXsKLSAgICBkYiA9IGV2YWxBbmRMb2coImRiID0gZXZlbnQudGFyZ2V0LnJl
c3VsdCIpOwotCi0gICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInJlcXVlc3QgPSBkYi5zZXRWZXJz
aW9uKCcxJykiKTsKLSAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IHRlc3RHcm91cDE7Ci0gICAgcmVx
dWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3RHcm91cDEoKQotewotICAgIGRlbGV0ZUFsbE9iamVjdFN0b3JlcyhkYik7Ci0KLSAgICBkZWJ1
ZygidGVzdCBrZXlwYXRoIGFzIGFycmF5Iik7Ci0gICAgZXZhbEFuZExvZygiZGIuY3JlYXRlT2Jq
ZWN0U3RvcmUoJ2ZvbycsIHtrZXlQYXRoOiBbJ2ZvbyddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSki
KTsKLSAgICBldmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZm9vYmFyJywge2tleVBh
dGg6IFsnZm9vJywgJ2JhciddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkiKTsKLSAgICBldmFsQW5k
TG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnZW1wdHknLCB7a2V5UGF0aDogW10sIGF1dG9JbmNy
ZW1lbnQ6IHRydWV9KSIpOwotICAgIGV2YWxBbmRMb2coImRiLmNyZWF0ZU9iamVjdFN0b3JlKCdu
ZXN0ZWQnLCB7a2V5UGF0aDogW1tdXSwgYXV0b0luY3JlbWVudDogdHJ1ZX0pIik7Ci0gICAgZXZh
bEFuZExvZygiZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2FycmF5b2ZlbXB0eScsIHtrZXlQYXRoOiBb
JycsICcnXSwgYXV0b0luY3JlbWVudDogdHJ1ZX0pIik7Ci0gICAgZXZhbEFuZExvZygiZGIuY3Jl
YXRlT2JqZWN0U3RvcmUoJ2FycmF5b2ZmbG9hdCcsIHtrZXlQYXRoOiBbMS4wLCAyLjBdLCBhdXRv
SW5jcmVtZW50OiB0cnVlfSkiKTsKLSAgICBkb25lKCk7Ci19Ci0KLXZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOwotCi10ZXN0KCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3Mt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNp
Y3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdmY2Rj
MDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlw
YXRoLWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2MCBAQAorVGVzdCBmb3IgdmFsaWQg
YW5kIGludmFsaWQga2V5cGF0aHMKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK2lu
ZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2luZG93LndlYmtpdEluZGV4ZWREQiB8fCB3
aW5kb3cubW96SW5kZXhlZERCOworUEFTUyBpbmRleGVkREIgPT0gbnVsbCBpcyBmYWxzZQorSURC
RGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93
LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOworUEFTUyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9
PSBudWxsIGlzIGZhbHNlCitJREJDdXJzb3IgPSB3aW5kb3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53
ZWJraXRJREJDdXJzb3I7CitQQVNTIElEQkN1cnNvciA9PSBudWxsIGlzIGZhbHNlCitJREJLZXlS
YW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5kb3cud2Via2l0SURCS2V5UmFuZ2U7CitQ
QVNTIElEQktleVJhbmdlID09IG51bGwgaXMgZmFsc2UKK2luZGV4ZWREQi5vcGVuKG5hbWUsIGRl
c2NyaXB0aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVzdWx0CityZXF1ZXN0ID0gZGIuc2V0VmVy
c2lvbignMScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3Rv
cmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qg
c3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5
UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUo
J25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0
aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25h
bWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVz
LgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQYXRoOiBnbG9iYWxLZXlQYXRofSkKK1BB
U1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRp
b24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitFeHBlY3Rp
bmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDog
Z2xvYmFsS2V5UGF0aH0pCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSCitEZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCduYW1lJywge2tleVBhdGg6IGdsb2JhbEtleVBhdGh9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VS
UgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQYXRoOiBnbG9iYWxLZXlQYXRofSkKK1BB
U1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRp
b24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitFeHBlY3Rp
bmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDog
Z2xvYmFsS2V5UGF0aH0pCitQQVNTIEV4Y2VwdGlvbiB3YXMgdGhyb3duLgorUEFTUyBjb2RlIGlz
IElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lFTlRfRVJSCitEZWxldGVkIGFsbCBvYmpl
Y3Qgc3RvcmVzLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIGRiLmNyZWF0ZU9iamVjdFN0b3Jl
KCduYW1lJywge2tleVBhdGg6IGdsb2JhbEtleVBhdGh9KQorUEFTUyBFeGNlcHRpb24gd2FzIHRo
cm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VS
UgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4cGVjdGluZyBleGNlcHRpb24gZnJvbSBk
Yi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQYXRoOiBnbG9iYWxLZXlQYXRofSkKK1BB
U1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRp
b24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxsIG9iamVjdCBzdG9yZXMuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1iYXNpY3MuaHRtbCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDI0MDMyOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNzLmh0bWwKQEAgLTAsMCArMSw3
OSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNo
ZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1m
dW5jdGlvbi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorCitkZXNjcmlwdGlvbigiVGVzdCBmb3Ig
dmFsaWQgYW5kIGludmFsaWQga2V5cGF0aHMiKTsKK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworCitmdW5j
dGlvbiB0ZXN0KCkKK3sKKyAgICBpbmRleGVkREIgPSBldmFsQW5kTG9nKCJpbmRleGVkREIgPSB3
aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRvdy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1veklu
ZGV4ZWREQjsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJpbmRleGVkREIgPT0gbnVsbCIpOworICAg
IElEQkRhdGFiYXNlRXhjZXB0aW9uID0gZXZhbEFuZExvZygiSURCRGF0YWJhc2VFeGNlcHRpb24g
PSB3aW5kb3cuSURCRGF0YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNl
RXhjZXB0aW9uOyIpOworICAgIHNob3VsZEJlRmFsc2UoIklEQkRhdGFiYXNlRXhjZXB0aW9uID09
IG51bGwiKTsKKyAgICBJREJDdXJzb3IgPSBldmFsQW5kTG9nKCJJREJDdXJzb3IgPSB3aW5kb3cu
SURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJDdXJzb3I7Iik7CisgICAgc2hvdWxkQmVGYWxz
ZSgiSURCQ3Vyc29yID09IG51bGwiKTsKKyAgICBJREJLZXlSYW5nZSA9IGV2YWxBbmRMb2coIklE
QktleVJhbmdlID0gd2luZG93LklEQktleVJhbmdlIHx8IHdpbmRvdy53ZWJraXRJREJLZXlSYW5n
ZTsiKTsKKyAgICBzaG91bGRCZUZhbHNlKCJJREJLZXlSYW5nZSA9PSBudWxsIik7CisKKyAgICBu
YW1lID0gd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lOworICAgIGRlc2NyaXB0aW9uID0gIk15IFRl
c3QgRGF0YWJhc2UiOworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3Blbihu
YW1lLCBkZXNjcmlwdGlvbikiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IG9wZW5TdWNjZXNz
OworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQorCitm
dW5jdGlvbiBvcGVuU3VjY2VzcygpCit7CisgICAgZGIgPSBldmFsQW5kTG9nKCJkYiA9IGV2ZW50
LnRhcmdldC5yZXN1bHQiKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJyZXF1ZXN0ID0g
ZGIuc2V0VmVyc2lvbignMScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB0ZXN0VmFsaWRL
ZXlQYXRoczsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
K30KKworZnVuY3Rpb24gdGVzdFZhbGlkS2V5UGF0aHMoKQoreworICAgIGRlbGV0ZUFsbE9iamVj
dFN0b3JlcyhkYik7CisKKyAgICB0ZXN0S2V5UGF0aHMgPSBbbnVsbCwgdW5kZWZpbmVkLCAnJywg
J2ZvbycsICdmb28uYmFyLmJheiddOworICAgIHRlc3RLZXlQYXRocy5mb3JFYWNoKGZ1bmN0aW9u
IChrZXlQYXRoKSB7CisgICAgICAgIGdsb2JhbEtleVBhdGggPSBrZXlQYXRoOworICAgICAgICBl
dmFsQW5kTG9nKCJkYi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQYXRoOiBnbG9iYWxL
ZXlQYXRofSkiKTsKKyAgICAgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKyAgICB9KTsK
KworICAgIHRlc3RJbnZhbGlkS2V5UGF0aHMoKTsKK30KKworZnVuY3Rpb24gdGVzdEludmFsaWRL
ZXlQYXRocygpCit7CisgICAgZGVsZXRlQWxsT2JqZWN0U3RvcmVzKGRiKTsKKworICAgIHRlc3RL
ZXlQYXRocyA9IFsnW10nLCAnWyJmb28iXScsICdbImZvbyIsICJiYXIiXScsICdbIiIsICIiXScs
ICdbMS4wLCAyLjBdJywgJ1tbImZvbyJdXScsICdbImZvbyIsIFsiYmFyIl1dJ107CisgICAgdGVz
dEtleVBhdGhzLmZvckVhY2goZnVuY3Rpb24gKGtleVBhdGgpIHsKKyAgICAgICAgZ2xvYmFsS2V5
UGF0aCA9IGtleVBhdGg7CisgICAgICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24oImRiLmNyZWF0
ZU9iamVjdFN0b3JlKCduYW1lJywge2tleVBhdGg6IGdsb2JhbEtleVBhdGh9KSIsICJJREJEYXRh
YmFzZUV4Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUiIpOworICAgICAgICBkZWxldGVBbGxPYmpl
Y3RTdG9yZXMoZGIpOworICAgIH0pOworCisgICAgZG9uZSgpOworfQorCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKKwordGVzdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwppbmRleCBkMDczMDFiLi4zZGM1ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjUgQEAKKzIwMTEtMDYtMjEgIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AZ29vZ2xlLmNvbT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGVjayB8a2V5
cGF0aHwgYXJndW1lbnQgb2YgY3JlYXRlT2JqZWN0U3RvcmUoKS4gUmVtb3ZlIHN0b3JhZ2UvaW5k
ZXhlZGRiL2tleXBhdGgtYXMtYXJyYXkuaHRtbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMDU0CisKKyAgICAgICAgQXQgdGhlIGhlYWQgb2YgY3Jl
YXRlT2JqZWN0U3RvcmUoKSwgd2UgcGFyc2UgfGtleXBhdGh8IGFyZ3VtZW50IGFuZCB0aHJvdyBh
biBleGNlcHRpb24KKyAgICAgICAgaWYgdGhlIHxrZXlwYXRofCBpcyBpbnZhbGlkLiBXaXRoIHRo
aXMgcGFyc2luZywgd2UgcmVtb3ZlIGtleXBhdGgtYXMtYXJyYXkuaHRtbCBiZWNhdXNlCisgICAg
ICAgIHRoZSBjdXJyZW50IGtleXBhdGggcGFyc2VyIGRvZXMgbm90IHN1cHBvcnQgYW4gYXJyYXkg
b2Yga2V5cGF0aCBhbmQgKG1vcmUgaW1wb3J0YW50bHkpCisgICAgICAgIHRoZSBjdXJyZW50IGlt
cGxlbWVudGF0aW9uIG9mIE9iamVjdFN0b3JlIGRvZXMgbm90IHN1cHBvcnQgbXVsdGlwbGUga2V5
cGF0aHMuCisgICAgICAgIFdlIGFkZGVkIGtleXBhdGgtYmFzaWNzLmh0bWwgdGhhdCBkZW1vbnN0
cmF0ZXMgdGhhdCB3ZSBkbyBub3Qgc3VwcG9ydCBhbiBhcnJheSBvZiBrZXlwYXRocy4KKworICAg
ICAgICBUZXN0czogc3RvcmFnZS9pbmRleGVkZGIva2V5UGF0aC5odG1sCisgICAgICAgICAgICAg
ICBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy5odG1sCisKKyAgICAgICAgKiBzdG9y
YWdlL0lEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZSk6CisgICAgICAgICogc3RvcmFnZS9JREJLZXlQYXRoLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OklEQklzVmFsaWRLZXlQYXRoKToKKyAgICAgICAgKiBzdG9yYWdlL0lEQktl
eVBhdGguaDoKKwogMjAxMS0wNi0yMCAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURC
RGF0YWJhc2UuY3BwCmluZGV4IDc3ODI3M2EuLjc5ZTEyNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCRGF0YWJhc2UuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSURCRXZlbnRE
aXNwYXRjaGVyLmgiCiAjaW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNp
bmNsdWRlICJJREJJbmRleC5oIgorI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJ
REJPYmplY3RTdG9yZS5oIgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2lu
Y2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VSZXF1ZXN0LmgiCkBAIC04MSw2ICs4MiwxMSBAQCBQYXNz
UmVmUHRyPElEQk9iamVjdFN0b3JlPiBJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjbwogCiAgICAgU3RyaW5nIGtleVBhdGg7CiAgICAgb3B0aW9ucy5n
ZXRLZXlTdHJpbmcoImtleVBhdGgiLCBrZXlQYXRoKTsKKyAgICBpZiAoIUlEQklzVmFsaWRLZXlQ
YXRoKGtleVBhdGgpKSB7CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PTl9U
UkFOU0lFTlRfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBib29sIGF1dG9J
bmNyZW1lbnQgPSBmYWxzZTsKICAgICBvcHRpb25zLmdldEtleUJvb2woImF1dG9JbmNyZW1lbnQi
LCBhdXRvSW5jcmVtZW50KTsKICAgICAvLyBGSVhNRTogTG9vayB1cCBldmljdGFibGUgYW5kIHBh
c3MgdGhhdCBvbiBhcyB3ZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJLZXlQYXRoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5jcHAKaW5k
ZXggODgzM2RhMC4uOWY2MTM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9J
REJLZXlQYXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGguY3Bw
CkBAIC0xNTgsNiArMTU4LDE0IEBAIElEQktleVBhdGhMZXhlcjo6VG9rZW5UeXBlIElEQktleVBh
dGhMZXhlcjo6bGV4TnVtYmVyKElEQktleVBhdGhFbGVtZW50JiBlbGVtZW50CiAgICAgcmV0dXJu
IFRva2VuTnVtYmVyOwogfQogCitib29sIElEQklzVmFsaWRLZXlQYXRoKGNvbnN0IFN0cmluZyYg
a2V5UGF0aCkKK3sKKyAgICBJREJLZXlQYXRoUGFyc2VFcnJvciBlcnJvcjsKKyAgICBWZWN0b3I8
SURCS2V5UGF0aEVsZW1lbnQ+IGtleVBhdGhFbGVtZW50czsKKyAgICBJREJQYXJzZUtleVBhdGgo
a2V5UGF0aCwga2V5UGF0aEVsZW1lbnRzLCBlcnJvcik7CisgICAgcmV0dXJuIGVycm9yID09IElE
QktleVBhdGhQYXJzZUVycm9yTm9uZTsKK30KKwogdm9pZCBJREJQYXJzZUtleVBhdGgoY29uc3Qg
U3RyaW5nJiBrZXlQYXRoLCBWZWN0b3I8SURCS2V5UGF0aEVsZW1lbnQ+JiBlbGVtZW50cywgSURC
S2V5UGF0aFBhcnNlRXJyb3ImIGVycm9yKQogewogICAgIC8vIFRoaXMgaXMgYSBzaW1wbGlmaWVk
IHBhcnNlciBsb29zZWx5IGJhc2VkIG9uIExpdGVyYWxQYXJzZXIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCS2V5UGF0aC5oCmluZGV4IDc3ODc5ODAuLjBlMjNhNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCS2V5UGF0aC5oCkBAIC01NSw2ICs1NSw3IEBAIGVudW0gSURCS2V5UGF0aFBhcnNlRXJyb3Ig
ewogICAgIElEQktleVBhdGhQYXJzZUVycm9yRG90LAogfTsKIAorYm9vbCBJREJJc1ZhbGlkS2V5
UGF0aChjb25zdCBTdHJpbmcmKTsKIHZvaWQgSURCUGFyc2VLZXlQYXRoKGNvbnN0IFN0cmluZyYs
IFZlY3RvcjxJREJLZXlQYXRoRWxlbWVudD4mLCBJREJLZXlQYXRoUGFyc2VFcnJvciYpOwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98196</attachid>
            <date>2011-06-22 10:17:39 -0700</date>
            <delta_ts>2011-06-22 13:09:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-63054-20110622101719.patch</filename>
            <type>text/plain</type>
            <size>9373</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODk0NDQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkMjg1YmFlOGIzOWJjNDUyMmM2OWQz
MDBjNWEzNzk2YWYzMGNmYWQ3Li5hNmVkZDJjMzQ2MDYzY2NkNzY0NGIzOTdlODM3YTNiNmY1M2Y1
YzQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDYtMjIgIEtlbnRhcm8gSGFyYSAgPGhh
cmFrZW5AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgorCisg
ICAgICAgIENoZWNrIHxrZXlwYXRofCBhcmd1bWVudCBvZiBjcmVhdGVPYmplY3RTdG9yZSgpLiBS
ZW1vdmUgc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcy1hcnJheS5odG1sLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjMwNTQKKworICAgICAgICBB
dCB0aGUgaGVhZCBvZiBjcmVhdGVPYmplY3RTdG9yZSgpLCB3ZSBwYXJzZSB8a2V5cGF0aHwgYXJn
dW1lbnQgYW5kIHRocm93IGFuIGV4Y2VwdGlvbgorICAgICAgICBpZiB0aGUgfGtleXBhdGh8IGlz
IGludmFsaWQuIFdpdGggdGhpcyBwYXJzaW5nLCB3ZSByZW1vdmUga2V5cGF0aC1hcy1hcnJheS5o
dG1sIGJlY2F1c2UKKyAgICAgICAgdGhlIGN1cnJlbnQga2V5cGF0aCBwYXJzZXIgZG9lcyBub3Qg
c3VwcG9ydCBhbiBhcnJheSBvZiBrZXlwYXRoIGFuZCAobW9yZSBpbXBvcnRhbnRseSkKKyAgICAg
ICAgdGhlIGN1cnJlbnQgaW1wbGVtZW50YXRpb24gb2YgT2JqZWN0U3RvcmUgZG9lcyBub3Qgc3Vw
cG9ydCBtdWx0aXBsZSBrZXlwYXRocy4KKyAgICAgICAgV2UgYWRkZWQga2V5cGF0aC1iYXNpY3Mu
aHRtbCB0aGF0IGRlbW9uc3RyYXRlcyB0aGF0IHdlIGRvIG5vdCBzdXBwb3J0IGFuIGFycmF5IG9m
IGtleXBhdGhzLgorCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5cGF0aC1hcy1hcnJh
eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIva2V5
cGF0aC1hcy1hcnJheS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRi
L2tleXBhdGgtYmFzaWNzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9p
bmRleGVkZGIva2V5cGF0aC1iYXNpY3MuaHRtbDogQWRkZWQuCisKIDIwMTEtMDYtMjIgIE1hdHRo
ZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZlcnRpbmcgcmVi
YXNlbGluZSBmcm9tIHI4OTQzNCwgYmVjYXVzZSBpdCBuZWVkcyBtb3JlIGludmVzdGlnYXRpb24u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFzLWFy
cmF5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgt
YXMtYXJyYXktZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5NjYw
YTFkMjU3NzkyZTNkNDQ5NmE4YWY1MTcyMGMzYzI1YTZhZDRiLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2tleXBhdGgtYXMtYXJyYXktZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMjggKzAs
MCBAQAotVGVzdCBJbmRleGVkREIga2V5IHBhdGggY29ybmVyIGNhc2VzCi0KLU9uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KLQotCi1pbmRleGVkREIgPSB3aW5kb3cuaW5kZXhlZERCIHx8IHdpbmRv
dy53ZWJraXRJbmRleGVkREIgfHwgd2luZG93Lm1vekluZGV4ZWREQjsKLVBBU1MgaW5kZXhlZERC
ID09IG51bGwgaXMgZmFsc2UKLUlEQkRhdGFiYXNlRXhjZXB0aW9uID0gd2luZG93LklEQkRhdGFi
YXNlRXhjZXB0aW9uIHx8IHdpbmRvdy53ZWJraXRJREJEYXRhYmFzZUV4Y2VwdGlvbjsKLVBBU1Mg
SURCRGF0YWJhc2VFeGNlcHRpb24gPT0gbnVsbCBpcyBmYWxzZQotSURCQ3Vyc29yID0gd2luZG93
LklEQkN1cnNvciB8fCB3aW5kb3cud2Via2l0SURCQ3Vyc29yOwotUEFTUyBJREJDdXJzb3IgPT0g
bnVsbCBpcyBmYWxzZQotSURCS2V5UmFuZ2UgPSB3aW5kb3cuSURCS2V5UmFuZ2UgfHwgd2luZG93
LndlYmtpdElEQktleVJhbmdlOwotUEFTUyBJREJLZXlSYW5nZSA9PSBudWxsIGlzIGZhbHNlCi1p
bmRleGVkREIub3BlbihuYW1lLCBkZXNjcmlwdGlvbikKLWRiID0gZXZlbnQudGFyZ2V0LnJlc3Vs
dAotcmVxdWVzdCA9IGRiLnNldFZlcnNpb24oJzEnKQotRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jl
cy4KLXRlc3Qga2V5cGF0aCBhcyBhcnJheQotZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2ZvbycsIHtr
ZXlQYXRoOiBbJ2ZvbyddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKLWRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdmb29iYXInLCB7a2V5UGF0aDogWydmb28nLCAnYmFyJ10sIGF1dG9JbmNyZW1lbnQ6IHRy
dWV9KQotZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ2VtcHR5Jywge2tleVBhdGg6IFtdLCBhdXRvSW5j
cmVtZW50OiB0cnVlfSkKLWRiLmNyZWF0ZU9iamVjdFN0b3JlKCduZXN0ZWQnLCB7a2V5UGF0aDog
W1tdXSwgYXV0b0luY3JlbWVudDogdHJ1ZX0pCi1kYi5jcmVhdGVPYmplY3RTdG9yZSgnYXJyYXlv
ZmVtcHR5Jywge2tleVBhdGg6IFsnJywgJyddLCBhdXRvSW5jcmVtZW50OiB0cnVlfSkKLWRiLmNy
ZWF0ZU9iamVjdFN0b3JlKCdhcnJheW9mZmxvYXQnLCB7a2V5UGF0aDogWzEuMCwgMi4wXSwgYXV0
b0luY3JlbWVudDogdHJ1ZX0pCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRF
U1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
a2V5cGF0aC1iYXNpY3MtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVk
ZGIva2V5cGF0aC1iYXNpY3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmY2RjMDkwZTBhMWRj
NDc5ZWNjNDZkOGRjMTVjNjJmYmNjOTBhNjIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWJhc2ljcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw2MCBAQAorVGVzdCBmb3IgdmFsaWQgYW5kIGludmFsaWQga2V5cGF0aHMKKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQiA9IHdpbmRvdy5pbmRleGVkREIgfHwgd2lu
ZG93LndlYmtpdEluZGV4ZWREQiB8fCB3aW5kb3cubW96SW5kZXhlZERCOworUEFTUyBpbmRleGVk
REIgPT0gbnVsbCBpcyBmYWxzZQorSURCRGF0YWJhc2VFeGNlcHRpb24gPSB3aW5kb3cuSURCRGF0
YWJhc2VFeGNlcHRpb24gfHwgd2luZG93LndlYmtpdElEQkRhdGFiYXNlRXhjZXB0aW9uOworUEFT
UyBJREJEYXRhYmFzZUV4Y2VwdGlvbiA9PSBudWxsIGlzIGZhbHNlCitJREJDdXJzb3IgPSB3aW5k
b3cuSURCQ3Vyc29yIHx8IHdpbmRvdy53ZWJraXRJREJDdXJzb3I7CitQQVNTIElEQkN1cnNvciA9
PSBudWxsIGlzIGZhbHNlCitJREJLZXlSYW5nZSA9IHdpbmRvdy5JREJLZXlSYW5nZSB8fCB3aW5k
b3cud2Via2l0SURCS2V5UmFuZ2U7CitQQVNTIElEQktleVJhbmdlID09IG51bGwgaXMgZmFsc2UK
K2luZGV4ZWREQi5vcGVuKG5hbWUsIGRlc2NyaXB0aW9uKQorZGIgPSBldmVudC50YXJnZXQucmVz
dWx0CityZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMScpCitEZWxldGVkIGFsbCBvYmplY3Qgc3Rv
cmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0
aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25h
bWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVz
LgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0p
CitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUn
LCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgor
ZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitE
ZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQ
YXRoOiBnbG9iYWxLZXlQYXRofSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lF
TlRfRVJSCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCduYW1lJywge2tleVBhdGg6IGdsb2JhbEtleVBhdGh9
KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4
Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQ
YXRoOiBnbG9iYWxLZXlQYXRofSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitFeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gZGIuY3JlYXRlT2JqZWN0
U3RvcmUoJ25hbWUnLCB7a2V5UGF0aDogZ2xvYmFsS2V5UGF0aH0pCitQQVNTIEV4Y2VwdGlvbiB3
YXMgdGhyb3duLgorUEFTUyBjb2RlIGlzIElEQkRhdGFiYXNlRXhjZXB0aW9uLk5PTl9UUkFOU0lF
TlRfRVJSCitEZWxldGVkIGFsbCBvYmplY3Qgc3RvcmVzLgorRXhwZWN0aW5nIGV4Y2VwdGlvbiBm
cm9tIGRiLmNyZWF0ZU9iamVjdFN0b3JlKCduYW1lJywge2tleVBhdGg6IGdsb2JhbEtleVBhdGh9
KQorUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KK1BBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4
Y2VwdGlvbi5OT05fVFJBTlNJRU5UX0VSUgorRGVsZXRlZCBhbGwgb2JqZWN0IHN0b3Jlcy4KK0V4
cGVjdGluZyBleGNlcHRpb24gZnJvbSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnbmFtZScsIHtrZXlQ
YXRoOiBnbG9iYWxLZXlQYXRofSkKK1BBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCitQQVNTIGNv
ZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uTk9OX1RSQU5TSUVOVF9FUlIKK0RlbGV0ZWQgYWxs
IG9iamVjdCBzdG9yZXMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYwZGY2N2YwYTBlMTkyMDBkMTcwYTJlOGNhOWJhZTNk
YmUxYjA3Y2UuLjcyOWQzNmQyZDRiNGJmZDVkNmFhOWM0OTUxYzQ2MTUzMTNhMjM5MzYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wNi0yMiAgS2VudGFybyBIYXJhICA8aGFyYWtl
bkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCisKKyAgICAg
ICAgQ2hlY2sgfGtleXBhdGh8IGFyZ3VtZW50IG9mIGNyZWF0ZU9iamVjdFN0b3JlKCkuIFJlbW92
ZSBzdG9yYWdlL2luZGV4ZWRkYi9rZXlwYXRoLWFzLWFycmF5Lmh0bWwuCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MzA1NAorCisgICAgICAgIEF0IHRo
ZSBoZWFkIG9mIGNyZWF0ZU9iamVjdFN0b3JlKCksIHdlIHBhcnNlIHxrZXlwYXRofCBhcmd1bWVu
dCBhbmQgdGhyb3cgYW4gZXhjZXB0aW9uCisgICAgICAgIGlmIHRoZSB8a2V5cGF0aHwgaXMgaW52
YWxpZC4gV2l0aCB0aGlzIHBhcnNpbmcsIHdlIHJlbW92ZSBrZXlwYXRoLWFzLWFycmF5Lmh0bWwg
YmVjYXVzZQorICAgICAgICB0aGUgY3VycmVudCBrZXlwYXRoIHBhcnNlciBkb2VzIG5vdCBzdXBw
b3J0IGFuIGFycmF5IG9mIGtleXBhdGggYW5kIChtb3JlIGltcG9ydGFudGx5KQorICAgICAgICB0
aGUgY3VycmVudCBpbXBsZW1lbnRhdGlvbiBvZiBPYmplY3RTdG9yZSBkb2VzIG5vdCBzdXBwb3J0
IG11bHRpcGxlIGtleXBhdGhzLgorICAgICAgICBXZSBhZGRlZCBrZXlwYXRoLWJhc2ljcy5odG1s
IHRoYXQgZGVtb25zdHJhdGVzIHRoYXQgd2UgZG8gbm90IHN1cHBvcnQgYW4gYXJyYXkgb2Yga2V5
cGF0aHMuCisKKyAgICAgICAgVGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2tleXBhdGgtYmFzaWNz
Lmh0bWwKKworICAgICAgICAqIHN0b3JhZ2UvSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKiBzdG9yYWdl
L0lEQktleVBhdGguY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCSXNWYWxpZEtleVBhdGgpOgor
ICAgICAgICAqIHN0b3JhZ2UvSURCS2V5UGF0aC5oOgorCiAyMDExLTA2LTIyICBFdW5taSBMZWUg
IDxldW5taTE1LmxlZUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBNYXJ0aW4g
Um9iaW5zb24uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2UuY3BwCmluZGV4IDc3ODI3
M2E1NjIzMzM2MmU1N2I2MTlmY2NkZTAwZmY3OTM0ODIxNWIuLjc5ZTEyNzE3YTI3NTNmZjVhNjM5
ZjdkNTg1MzgwN2FmMjA5MWNlNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2Uv
SURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCRGF0YWJhc2Uu
Y3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSURCRXZlbnREaXNwYXRjaGVyLmgiCiAj
aW5jbHVkZSAiSURCRmFjdG9yeUJhY2tlbmRJbnRlcmZhY2UuaCIKICNpbmNsdWRlICJJREJJbmRl
eC5oIgorI2luY2x1ZGUgIklEQktleVBhdGguaCIKICNpbmNsdWRlICJJREJPYmplY3RTdG9yZS5o
IgogI2luY2x1ZGUgIklEQlZlcnNpb25DaGFuZ2VFdmVudC5oIgogI2luY2x1ZGUgIklEQlZlcnNp
b25DaGFuZ2VSZXF1ZXN0LmgiCkBAIC04MSw2ICs4MiwxMSBAQCBQYXNzUmVmUHRyPElEQk9iamVj
dFN0b3JlPiBJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1l
LCBjbwogCiAgICAgU3RyaW5nIGtleVBhdGg7CiAgICAgb3B0aW9ucy5nZXRLZXlTdHJpbmcoImtl
eVBhdGgiLCBrZXlQYXRoKTsKKyAgICBpZiAoIUlEQklzVmFsaWRLZXlQYXRoKGtleVBhdGgpKSB7
CisgICAgICAgIGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246Ok5PTl9UUkFOU0lFTlRfRVJSOwor
ICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKICAgICBib29sIGF1dG9JbmNyZW1lbnQgPSBmYWxz
ZTsKICAgICBvcHRpb25zLmdldEtleUJvb2woImF1dG9JbmNyZW1lbnQiLCBhdXRvSW5jcmVtZW50
KTsKICAgICAvLyBGSVhNRTogTG9vayB1cCBldmljdGFibGUgYW5kIHBhc3MgdGhhdCBvbiBhcyB3
ZWxsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlQYXRoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5jcHAKaW5kZXggODgzM2RhMDY4OTA4
YTE3ZjU5ZGFmZjJjN2ZjYjJjYjY0ZTVhN2U0OC4uOWY2MTM1OWM3YzIwMjJmYTVlNTgxNTczOTcw
ZTcwOTFjOGI4ZDUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3RvcmFnZS9JREJLZXlQ
YXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdG9yYWdlL0lEQktleVBhdGguY3BwCkBAIC0x
NTgsNiArMTU4LDE0IEBAIElEQktleVBhdGhMZXhlcjo6VG9rZW5UeXBlIElEQktleVBhdGhMZXhl
cjo6bGV4TnVtYmVyKElEQktleVBhdGhFbGVtZW50JiBlbGVtZW50CiAgICAgcmV0dXJuIFRva2Vu
TnVtYmVyOwogfQogCitib29sIElEQklzVmFsaWRLZXlQYXRoKGNvbnN0IFN0cmluZyYga2V5UGF0
aCkKK3sKKyAgICBJREJLZXlQYXRoUGFyc2VFcnJvciBlcnJvcjsKKyAgICBWZWN0b3I8SURCS2V5
UGF0aEVsZW1lbnQ+IGtleVBhdGhFbGVtZW50czsKKyAgICBJREJQYXJzZUtleVBhdGgoa2V5UGF0
aCwga2V5UGF0aEVsZW1lbnRzLCBlcnJvcik7CisgICAgcmV0dXJuIGVycm9yID09IElEQktleVBh
dGhQYXJzZUVycm9yTm9uZTsKK30KKwogdm9pZCBJREJQYXJzZUtleVBhdGgoY29uc3QgU3RyaW5n
JiBrZXlQYXRoLCBWZWN0b3I8SURCS2V5UGF0aEVsZW1lbnQ+JiBlbGVtZW50cywgSURCS2V5UGF0
aFBhcnNlRXJyb3ImIGVycm9yKQogewogICAgIC8vIFRoaXMgaXMgYSBzaW1wbGlmaWVkIHBhcnNl
ciBsb29zZWx5IGJhc2VkIG9uIExpdGVyYWxQYXJzZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdG9yYWdlL0lEQktleVBhdGguaCBiL1NvdXJjZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5
UGF0aC5oCmluZGV4IDc3ODc5ODBjZTlkNTNmNDhhMTVlYzY3M2Y2ZjBjNzcxOWQyNTAyNjcuLjBl
MjNhNGYyODg4ODNiNmI5MWM0MmRkYTI0YzBlMDFlYWQ4YzllMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5UGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0b3Jh
Z2UvSURCS2V5UGF0aC5oCkBAIC01NSw2ICs1NSw3IEBAIGVudW0gSURCS2V5UGF0aFBhcnNlRXJy
b3IgewogICAgIElEQktleVBhdGhQYXJzZUVycm9yRG90LAogfTsKIAorYm9vbCBJREJJc1ZhbGlk
S2V5UGF0aChjb25zdCBTdHJpbmcmKTsKIHZvaWQgSURCUGFyc2VLZXlQYXRoKGNvbnN0IFN0cmlu
ZyYsIFZlY3RvcjxJREJLZXlQYXRoRWxlbWVudD4mLCBJREJLZXlQYXRoUGFyc2VFcnJvciYpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>