<?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>51193</bug_id>
          
          <creation_ts>2010-12-16 09:28:53 -0800</creation_ts>
          <short_desc>IndexedDB: Support Date objects as keys.</short_desc>
          <delta_ts>2010-12-17 07:11:08 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>1</everconfirmed>
          <reporter name="Hans Wennborg">hans</reporter>
          <assigned_to name="Hans Wennborg">hans</assigned_to>
          <cc>andreip</cc>
    
    <cc>jorlow</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>323219</commentid>
    <comment_count>0</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-12-16 09:28:53 -0800</bug_when>
    <thetext>IndexedDB: Support Date objects as keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323227</commentid>
    <comment_count>1</comment_count>
      <attachid>76777</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-12-16 09:47:12 -0800</bug_when>
    <thetext>Created attachment 76777
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323243</commentid>
    <comment_count>2</comment_count>
      <attachid>76777</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-12-16 10:12:31 -0800</bug_when>
    <thetext>Comment on attachment 76777
Patch

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

&gt; LayoutTests/storage/indexeddb/objectstore-basics.html:165
&gt; +    result = evalAndLog(&quot;store.add({x: new Date(), y: &apos;value&apos;}, &apos;key&apos;)&quot;);

Maybe test passing in a specific date and verify it comes out as expected?

&gt; WebCore/storage/IDBKey.h:43
&gt; +        IDBKey* idbKey = new IDBKey();

Adopt it right away and store it in a ref ptr.  .release() in the return</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323713</commentid>
    <comment_count>3</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-12-17 04:45:28 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 76777 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76777&amp;action=review
&gt; 
&gt; &gt; LayoutTests/storage/indexeddb/objectstore-basics.html:165
&gt; &gt; +    result = evalAndLog(&quot;store.add({x: new Date(), y: &apos;value&apos;}, &apos;key&apos;)&quot;);
&gt; 
&gt; Maybe test passing in a specific date and verify it comes out as expected?
Done (but doing it for the case where we use a Date as a key explicitly.)

&gt; 
&gt; &gt; WebCore/storage/IDBKey.h:43
&gt; &gt; +        IDBKey* idbKey = new IDBKey();
&gt; 
&gt; Adopt it right away and store it in a ref ptr.  .release() in the return
Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323714</commentid>
    <comment_count>4</comment_count>
      <attachid>76868</attachid>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-12-17 04:45:56 -0800</bug_when>
    <thetext>Created attachment 76868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323754</commentid>
    <comment_count>5</comment_count>
      <attachid>76868</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-12-17 07:03:36 -0800</bug_when>
    <thetext>Comment on attachment 76868
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>323757</commentid>
    <comment_count>6</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2010-12-17 07:11:08 -0800</bug_when>
    <thetext>Committed r74266: &lt;http://trac.webkit.org/changeset/74266&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76777</attachid>
            <date>2010-12-16 09:47:12 -0800</date>
            <delta_ts>2010-12-17 04:45:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51193-20101216174709.patch</filename>
            <type>text/plain</type>
            <size>21643</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NjM1NzM4YWQ0NWRkN2ZhNmM4NWM1ZjE1ZGUwNGEwZmZmYWQyMDdmLi43OGRjOWEx
MDY4NDI2MTFkOTI2NWExZmI0MTQ2MDhkOTdmMzgzNTg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMTYgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBv
cnQgRGF0ZSBvYmplY3RzIGFzIGtleXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTE5MworCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdHMgdG8g
Y2hlY2sgdGhhdCBoYXZpbmcgRGF0ZSBvYmplY3RzIGFzIGtleXMgd29yay4KKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTAt
MTItMTYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3NDE2Mi4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQu
dHh0CmluZGV4IGU3MzZkMmZlMzE5ZDBhZDMxOWYxODgxYjFiY2I3MDFmNGI3MzlmNGUuLmUxNzQ2
YzU0ZThlNWVhMGM5NjcwMDA5NzE1Y2RkMzk4YWI2NWRiYzQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVj
dGVkLnR4dApAQCAtOTksMjEgKzk5LDEyIEBAIHRyYW5zYWN0aW9uID0gZGIudHJhbnNhY3Rpb24o
KQogc3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKIFRyeSB0byBp
bnNlcnQgZGF0YSB3aXRoIGEgRGF0ZSBrZXk6CiBzdG9yZS5hZGQoe3g6ICdmb28nfSwgbmV3IERh
dGUoKSkKLVBBU1MgRXhjZXB0aW9uIHRocm93bgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5U
WVBFX01JU01BVENIX0VSUgogVHJ5IHRvIGluc2VydCBhIHZhbHVlIG5vdCBoYW5kbGVkIGJ5IHN0
cnVjdHVyZWQgY2xvbmU6CiBzdG9yZS5hZGQoe3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpfSwgJ2JhcicpCiBQQVNTIEV4Y2VwdGlvbiB0aHJvd24KIFBBU1Mg
Y29kZSBpcyBET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9FUlIKIFRyeSB0byBpbnNlcnQgZGF0
YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBEYXRlIGtleToKLXN0b3JlLmFkZCh7eDogbmV3IERh
dGUoKX0sICdmb28nKQotUEFTUyBBZGRpbmcgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZGVkIERh
dGUga2V5IHJlc3VsdGVkIGluIGVycm9yLgotc3RvcmUuYWRkKHt4OiAndmFsdWUnfSwgJ2tleScp
Ci1QQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdvbmVycm9yJyBpbiBy
ZXN1bHQgaXMgdHJ1ZQotUEFTUyAncmVhZHlTdGF0ZScgaW4gcmVzdWx0IGlzIHRydWUKLUFuIGV2
ZW50IHNob3VsZCBmaXJlIHNob3J0bHkuLi4KLQorc3RvcmUuYWRkKHt4OiBuZXcgRGF0ZSgpLCB5
OiAndmFsdWUnfSwgJ2tleScpCiBhZGRTdWNjZXNzKCk6CiBTdWNjZXNzIGV2ZW50IGZpcmVkOgog
UEFTUyAncmVzdWx0JyBpbiBldmVudCBpcyB0cnVlCkBAIC0xMjcsNyArMTE4LDcgQEAgUEFTUyAn
cmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJl
YWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAogUEFTUyBldmVudC5yZXN1bHQgaXMgImtl
eSIKLWV2ZW50LnNvdXJjZS5hZGQoe3g6ICd2YWx1ZSd9LCAnenp6JykKK2V2ZW50LnNvdXJjZS5h
ZGQoe3g6ICdmb28nfSwgJ3p6eicpCiBQQVNTICdvbnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVl
CiBQQVNTICdvbmVycm9yJyBpbiByZXN1bHQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4g
cmVzdWx0IGlzIHRydWUKQEAgLTIwOCw3ICsxOTksNyBAQCBQQVNTICdvbmVycm9yJyBpbiBldmVu
dC50YXJnZXQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRPTkUKIAot
UEFTUyBldmVudC5yZXN1bHQueCBpcyAidmFsdWUiCitQQVNTIGV2ZW50LnJlc3VsdC55IGlzICJ2
YWx1ZSIKIHN0b3JlID0gZXZlbnQuc291cmNlCiBzdG9yZS5kZWxldGUoJ2tleScpCiBQQVNTICdv
bnN1Y2Nlc3MnIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRtbCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCmluZGV4IDNkMmExZDJjNDc3OTY3
NzZmYTlkMzVkMGEzZjRhMWE2YzFmZDgzODQuLmM1M2RhNGUxYWJjZDZjYzhjMmIzMDE2Y2Y5YTc3
NjY4MWRiYmE2OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29i
amVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBAIC0xMzYsNyArMTM2LDYgQEAgZnVuY3Rpb24gY2hl
Y2tNZXRhZGF0YSgpCiAgICAgYWRkRGF0YSgpOwogfQogCi0KIGZ1bmN0aW9uIGFkZERhdGEoKQog
ewogICAgIHZhciB0cmFuc2FjdGlvbiA9IGV2YWxBbmRMb2coInRyYW5zYWN0aW9uID0gZGIudHJh
bnNhY3Rpb24oKSIpOwpAQCAtMTQ0LDE3ICsxNDMsMTMgQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiAg
ICAgd2luZG93LnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RT
dG9yZSgnc3RvcmVOYW1lJykiKTsKIAogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0IGRhdGEgd2l0
aCBhIERhdGUga2V5OiIpOwotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB3b3JrIGluIHRoZSBm
dXR1cmUuCi0gICAgdHJ5IHsKLSAgICAgICAgZGVidWcoInN0b3JlLmFkZCh7eDogJ2Zvbyd9LCBu
ZXcgRGF0ZSgpKSIpOwotICAgICAgICBzdG9yZS5hZGQoe3g6ICdmb28nfSwgbmV3IERhdGUoKSk7
Ci0gICAgICAgIHRlc3RGYWlsZWQoIlBhc3NpbmcgYSBEYXRlIGFzIGtleSBhcmd1bWVudCBzaG91
bGQgaGF2ZSB0aHJvd24uIik7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgIHRlc3RQYXNz
ZWQoIkV4Y2VwdGlvbiB0aHJvd24iKTsKLSAgICAgICAgY29kZSA9IGVyci5jb2RlOwotICAgICAg
ICBzaG91bGRCZSgiY29kZSIsICJET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIiKTsKLSAg
ICB9CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAnZm9vJ30sIG5ldyBE
YXRlKCkpIik7CisgICAgcmVzdWx0Lm9uc3VjY2VzcyA9IGFkZERhdGVTdWNjZXNzOworICAgIHJl
c3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7Cit9CiAKK2Z1bmN0aW9uIGFk
ZERhdGVTdWNjZXNzKCkKK3sKICAgICBkZWJ1ZygiVHJ5IHRvIGluc2VydCBhIHZhbHVlIG5vdCBo
YW5kbGVkIGJ5IHN0cnVjdHVyZWQgY2xvbmU6Iik7CiAgICAgdHJ5IHsKICAgICAgICAgZGVidWco
InN0b3JlLmFkZCh7eDogJ2JhcicsIHk6IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
Jyl9LCAnYmFyJykiKTsKQEAgLTE2NiwxOSArMTYxLDggQEAgZnVuY3Rpb24gYWRkRGF0YSgpCiAg
ICAgICAgIHNob3VsZEJlKCJjb2RlIiwgIkRPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUiIp
OwogICAgIH0KIAotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB3b3JrIGluIHRoZSBmdXR1cmUu
CiAgICAgZGVidWcoIlRyeSB0byBpbnNlcnQgZGF0YSB3aGVyZSBrZXkgcGF0aCB5aWVsZHMgYSBE
YXRlIGtleToiKTsKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6IG5ldyBE
YXRlKCl9LCAnZm9vJykiKTsKLSAgICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nl
c3NDYWxsYmFjazsKLSAgICByZXN1bHQub25lcnJvciA9IGFkZEtleVBhdGhZaWVsZGluZ0RhdGVG
YWlsdXJlOwotfQotCi1mdW5jdGlvbiBhZGRLZXlQYXRoWWllbGRpbmdEYXRlRmFpbHVyZSgpCi17
Ci0gICAgdGVzdFBhc3NlZCgiQWRkaW5nIGRhdGEgd2hlcmUga2V5IHBhdGggeWllbGRlZCBEYXRl
IGtleSByZXN1bHRlZCBpbiBlcnJvci4iKTsKLQotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0
b3JlLmFkZCh7eDogJ3ZhbHVlJ30sICdrZXknKSIpOwotICAgIHZlcmlmeVJlc3VsdChyZXN1bHQp
OworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmFkZCh7eDogbmV3IERhdGUoKSwgeTog
J3ZhbHVlJ30sICdrZXknKSIpOwogICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBhZGRTdWNjZXNzOwog
ICAgIHJlc3VsdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CiB9CkBAIC0xODks
NyArMTczLDcgQEAgZnVuY3Rpb24gYWRkU3VjY2VzcygpCiAgICAgdmVyaWZ5U3VjY2Vzc0V2ZW50
KGV2ZW50KTsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnJlc3VsdCIsICJrZXki
KTsKIAotICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coImV2ZW50LnNvdXJjZS5hZGQoe3g6ICd2YWx1
ZSd9LCAnenp6JykiKTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2UuYWRk
KHt4OiAnZm9vJ30sICd6enonKSIpOwogICAgIHZlcmlmeVJlc3VsdChyZXN1bHQpOwogICAgIHJl
c3VsdC5vbnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwogICAgIHJlc3VsdC5v
bmVycm9yID0gYWRkQWdhaW5GYWlsdXJlOwpAQCAtMjQ4LDcgKzIzMiw3IEBAIGZ1bmN0aW9uIGdl
dFN1Y2Nlc3MoKQogewogICAgIGRlYnVnKCJnZXRTdWNjZXNzKCk6Iik7CiAgICAgdmVyaWZ5U3Vj
Y2Vzc0V2ZW50KGV2ZW50KTsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnJlc3Vs
dC54IiwgInZhbHVlIik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5yZXN1bHQu
eSIsICJ2YWx1ZSIpOwogICAgIHZhciBzdG9yZSA9IGV2YWxBbmRMb2coInN0b3JlID0gZXZlbnQu
c291cmNlIik7CiAKICAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9yZS5kZWxldGUoJ2tleScp
Iik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmlu
ZGV4IDk5ZmMzOTVkZDBkZWYxOGM5YjUwODc0OTA5MDgwYjMzYWM0NzgwZmEuLjZkYjA4MTI0MDlk
MDc2MTA3ZTFmYmVlNTIyYWIwMzk2ZTBkZTM5MDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzggQEAKIDIwMTAtMTItMTYg
IEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KIAorICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBvcnQgRGF0ZSBvYmpl
Y3RzIGFzIGtleXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD01MTE5MworCisgICAgICAgICogYmluZGluZ3MvdjgvSURCQmluZGluZ1V0aWxpdGllcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVJREJLZXlGcm9tVmFsdWUpOgorICAgICAgICBV
c2UgdGhlIG5ldyBJREJLZXkgZmFjdG9yeSBmdW5jdGlvbnMsIGFuZCBzdXBwb3J0IERhdGUgb2Jq
ZWN0cy4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgIENyZWF0ZSBEYXRlIG9iamVjdHMgZnJv
bSBEYXRlVHlwZSBrZXlzLgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleTo6ZnJvbVF1ZXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6
aXNFcXVhbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6OndoZXJlU3ludGF4KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQktleTo6bG93ZXJDdXJzb3JXaGVyZUZyYWdtZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQktleTo6dXBwZXJDdXJzb3JXaGVyZUZyYWdtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQktleTo6YmluZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6OmJpbmRXaXRo
TnVsbHMpOgorICAgICAgICBVcGRhdGUgYWxsIFNRTCByZWxhdGVkIGZ1bmN0aW9ucyB0byBoYW5k
bGUgRGF0ZSBrZXlzLgorICAgICAgICAqIHN0b3JhZ2UvSURCS2V5Lmg6CisgICAgICAgIChXZWJD
b3JlOjpJREJLZXk6OmNyZWF0ZU51bGwpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5OjpjcmVh
dGVOdW1iZXIpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVTdHJpbmcpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5OjpjcmVhdGVEYXRlKToKKyAgICAgICAgUmVuYW1lIHRoZSBj
cmVhdGUgZmFjdG9yaWVzOyBzaW5jZSBib3RoIG51bWJlciBhbmQgZGF0ZSBpcyBqdXN0IGEKKyAg
ICAgICAgZG91YmxlLCBmdW5jdGlvbiBvdmVybG9hZGluZyBjYW4ndCBiZSB1c2VkIHRvIGRpc2Ny
aW1pbmF0ZSBiZXR3ZWVuCisgICAgICAgIHRoZSBmYWN0b3JpZXMuCisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXk6OmRhdGUpOgorICAgICAgICBBZGQgZ2V0dGVyIGZvciB0aGUgZGF0ZSB2YWx1ZS4K
KworMjAxMC0xMi0xNiAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCiAgICAg
ICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KIAogICAgICAgICBJbmRleGVkREI6IEZpeCBJ
REJEYXRhYmFzZUVycm9yIGNvZGUgb2Zmc2V0IGJ1ZwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvSURC
QmluZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggNTA5ZDdjNWUxM2QyZWE4MDg5MDcwNmU0ZTExMjQ4
YTVmM2IzMzU2My4uMmU4ZDRmZWEyOTcxZTY3OWMwZmUzYTZjZWVlOWJhZDQ5MmNjNWYxMSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC00MCwxMyAr
NDAsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlE
QktleUZyb21WYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiB7CiAgICAgaWYgKHZh
bHVlLT5Jc051bGwoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKCk7CisgICAgICAg
IHJldHVybiBJREJLZXk6OmNyZWF0ZU51bGwoKTsKICAgICBpZiAodmFsdWUtPklzTnVtYmVyKCkp
Ci0gICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZSh2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7Cisg
ICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZU51bWJlcih2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7
CiAgICAgaWYgKHZhbHVlLT5Jc1N0cmluZygpKQotICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVh
dGUodjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2YWx1ZSkpOworICAgICAgICByZXR1cm4gSURCS2V5
OjpjcmVhdGVTdHJpbmcodjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2YWx1ZSkpOwogICAgIGlmICh2
YWx1ZS0+SXNEYXRlKCkpCi0gICAgICAgIHJldHVybiAwOyAvLyBTaWduYWxzIHR5cGUgZXJyb3Iu
IEZJWE1FOiBJbXBsZW1lbnQgZGF0ZXMuCisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURh
dGUodmFsdWUtPk51bWJlclZhbHVlKCkpOwogCiAgICAgcmV0dXJuIDA7IC8vIFNpZ25hbHMgdHlw
ZSBlcnJvci4KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURC
S2V5Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3VzdG9t
LmNwcAppbmRleCBiZTA1YTgwYmI3ZWIyY2U4NGM0YzkzZGEyY2QwYjNlZjg3NzEzNmI3Li4zODA1
ZGNhYTA0ZTc3MTQ5YzAxYTBhN2Q1MWJlZTUwZTY5OThiYzIzIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw4IEBAIHY4OjpI
YW5kbGU8djg6OlZhbHVlPiB0b1Y4KElEQktleSoga2V5KQogICAgICAgICByZXR1cm4gdjg6Ok51
bWJlcjo6TmV3KGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgog
ICAgICAgICByZXR1cm4gdjhTdHJpbmcoa2V5LT5zdHJpbmcoKSk7Ci0gICAgLy8gRklYTUU6IElt
cGxlbWVudCBkYXRlcy4KKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVy
biB2ODo6RGF0ZTo6TmV3KGtleS0+ZGF0ZSgpKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuY3BwIGIvV2ViQ29y
ZS9zdG9yYWdlL0lEQktleS5jcHAKaW5kZXggZDQwMDM4MjI0YmRlYTBkNTI2MjFhNTVhZGJiMjU2
YjA4OWY5ZjUyYi4uZWIzOGQ4MWFjYTJlZTdlOTgwMTJiOWJmNDhjZTQwZTQyNTdkODM4ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdl
L0lEQktleS5jcHAKQEAgLTM4LDE4ICszOCw2IEBAIElEQktleTo6SURCS2V5KCkKIHsKIH0KIAot
SURCS2V5OjpJREJLZXkoZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZShOdW1iZXJUeXBlKQot
ICAgICwgbV9udW1iZXIobnVtYmVyKQotewotfQotCi1JREJLZXk6OklEQktleShjb25zdCBTdHJp
bmcmIHN0cmluZykKLSAgICA6IG1fdHlwZShTdHJpbmdUeXBlKQotICAgICwgbV9zdHJpbmcoc3Ry
aW5nLmNyb3NzVGhyZWFkU3RyaW5nKCkpCi17Ci19Ci0KIElEQktleTo6fklEQktleSgpCiB7CiB9
CkBAIC01NywxNyArNDUsMTUgQEAgSURCS2V5Ojp+SURCS2V5KCkKIFBhc3NSZWZQdHI8SURCS2V5
PiBJREJLZXk6OmZyb21RdWVyeShTUUxpdGVTdGF0ZW1lbnQmIHF1ZXJ5LCBpbnQgYmFzZUNvbHVt
bikKIHsKICAgICBpZiAoIXF1ZXJ5LmlzQ29sdW1uTnVsbChiYXNlQ29sdW1uKSkKLSAgICAgICAg
cmV0dXJuIElEQktleTo6Y3JlYXRlKHF1ZXJ5LmdldENvbHVtblRleHQoYmFzZUNvbHVtbikpOwor
ICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcocXVlcnkuZ2V0Q29sdW1uVGV4dChi
YXNlQ29sdW1uKSk7CiAKLSAgICBpZiAoIXF1ZXJ5LmlzQ29sdW1uTnVsbChiYXNlQ29sdW1uICsg
MSkpIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1FOiBJbXBsZW1lbnQg
ZGF0ZS4KLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKCk7Ci0gICAgfQorICAgIGlmICgh
cXVlcnkuaXNDb2x1bW5OdWxsKGJhc2VDb2x1bW4gKyAxKSkKKyAgICAgICAgcmV0dXJuIElEQktl
eTo6Y3JlYXRlRGF0ZShxdWVyeS5nZXRDb2x1bW5Eb3VibGUoYmFzZUNvbHVtbiArIDEpKTsKIAog
ICAgIGlmICghcXVlcnkuaXNDb2x1bW5OdWxsKGJhc2VDb2x1bW4gKyAyKSkKLSAgICAgICAgcmV0
dXJuIElEQktleTo6Y3JlYXRlKHF1ZXJ5LmdldENvbHVtbkRvdWJsZShiYXNlQ29sdW1uICsgMikp
OworICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIocXVlcnkuZ2V0Q29sdW1uRG91
YmxlKGJhc2VDb2x1bW4gKyAyKSk7CiAKLSAgICByZXR1cm4gSURCS2V5OjpjcmVhdGUoKTsgLy8g
TnVsbC4KKyAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdWxsKCk7CiB9CiAKIGJvb2wgSURCS2V5
Ojppc0VxdWFsKElEQktleSogb3RoZXIpCkBAIC03OCw3ICs2NCw4IEBAIGJvb2wgSURCS2V5Ojpp
c0VxdWFsKElEQktleSogb3RoZXIpCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIFN0
cmluZ1R5cGU6CiAgICAgICAgIHJldHVybiBvdGhlci0+bV9zdHJpbmcgPT0gbV9zdHJpbmc7Ci0g
ICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlcy4KKyAgICBjYXNlIERhdGVUeXBlOgorICAgICAg
ICByZXR1cm4gb3RoZXItPm1fZGF0ZSA9PSBtX2RhdGU7CiAgICAgY2FzZSBOdW1iZXJUeXBlOgog
ICAgICAgICByZXR1cm4gb3RoZXItPm1fbnVtYmVyID09IG1fbnVtYmVyOwogICAgIGNhc2UgTnVs
bFR5cGU6CkBAIC05Niw3ICs4Myw4IEBAIFN0cmluZyBJREJLZXk6OndoZXJlU3ludGF4KFN0cmlu
ZyBxdWFsaWZpZWRUYWJsZU5hbWUpIGNvbnN0CiAgICAgICAgIHJldHVybiBxdWFsaWZpZWRUYWJs
ZU5hbWUgKyAia2V5U3RyaW5nID0gPyAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtl
eURhdGUgSVMgTlVMTCAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciBJ
UyBOVUxMICAiOwogICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgogICAgICAgICByZXR1cm4g
cXVhbGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZp
ZWRUYWJsZU5hbWUgKyAia2V5RGF0ZSBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5h
bWUgKyAia2V5TnVtYmVyID0gPyAgIjsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGRhdGUuCisg
ICAgY2FzZSBJREJLZXk6OkRhdGVUeXBlOgorICAgICAgICByZXR1cm4gcXVhbGlmaWVkVGFibGVO
YW1lICsgImtleVN0cmluZyBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAi
a2V5RGF0ZSA9ID8gIEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlOdW1iZXIgSVMg
TlVMTCAgIjsKICAgICBjYXNlIElEQktleTo6TnVsbFR5cGU6CiAgICAgICAgIHJldHVybiBxdWFs
aWZpZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5nIElTIE5VTEwgIEFORCAgIiArIHF1YWxpZmllZFRh
YmxlTmFtZSArICJrZXlEYXRlIElTIE5VTEwgIEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSAr
ICJrZXlOdW1iZXIgSVMgTlVMTCAgIjsKICAgICB9CkBAIC0xMTAsNyArOTgsOCBAQCBTdHJpbmcg
SURCS2V5Ojpsb3dlckN1cnNvcldoZXJlRnJhZ21lbnQoU3RyaW5nIGNvbXBhcmlzb25PcGVyYXRv
ciwgU3RyaW5nIHF1YWxpZgogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBTdHJpbmdU
eXBlOgogICAgICAgICByZXR1cm4gIj8gIiArIGNvbXBhcmlzb25PcGVyYXRvciArICIgIiArIHF1
YWxpZmllZFRhYmxlTmFtZSArICJrZXlTdHJpbmcgIEFORCAgIjsKLSAgICAvLyBGSVhNRTogSW1w
bGVtZW50IGRhdGUuCisgICAgY2FzZSBEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuICIoPyAiICsg
Y29tcGFyaXNvbk9wZXJhdG9yICsgIiAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleURhdGUg
IE9SIE5PVCAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMKSAgQU5E
ICAiOwogICAgIGNhc2UgTnVtYmVyVHlwZToKICAgICAgICAgcmV0dXJuICIoPyAiICsgY29tcGFy
aXNvbk9wZXJhdG9yICsgIiAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciAgT1Ig
IE5PVCAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMICBPUiAgTk9U
ICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5RGF0ZSBJUyBOVUxMKSAgQU5EICAiOwogICAg
IGNhc2UgTnVsbFR5cGU6CkBAIC0xMjcsNyArMTE2LDggQEAgU3RyaW5nIElEQktleTo6dXBwZXJD
dXJzb3JXaGVyZUZyYWdtZW50KFN0cmluZyBjb21wYXJpc29uT3BlcmF0b3IsIFN0cmluZyBxdWFs
aWYKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgU3RyaW5nVHlwZToKICAgICAgICAg
cmV0dXJuICIoIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlTdHJpbmcgIiArIGNvbXBhcmlz
b25PcGVyYXRvciArICIgPyAgT1IgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5n
IElTIE5VTEwpICBBTkQgICI7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlLgorICAgIGNh
c2UgRGF0ZVR5cGU6CisgICAgICAgIHJldHVybiAiKCIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAi
a2V5RGF0ZSAiICsgY29tcGFyaXNvbk9wZXJhdG9yICsgIiA/IE9SICIgKyBxdWFsaWZpZWRUYWJs
ZU5hbWUgKyAia2V5RGF0ZSBJUyBOVUxMKSAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsg
ImtleVN0cmluZyBJUyBOVUxMICBBTkQgICI7CiAgICAgY2FzZSBOdW1iZXJUeXBlOgogICAgICAg
ICByZXR1cm4gIigiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciAiICsgY29tcGFy
aXNvbk9wZXJhdG9yICsgIiA/IE9SICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5TnVtYmVy
IElTIE5VTEwpICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5nIElTIE5V
TEwgIEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlEYXRlIElTIE5VTEwgIEFORCAg
IjsKICAgICBjYXNlIE51bGxUeXBlOgpAQCAtMTQ2LDYgKzEzNiw5IEBAIGludCBJREJLZXk6OmJp
bmQoU1FMaXRlU3RhdGVtZW50JiBxdWVyeSwgaW50IGNvbHVtbikgY29uc3QKICAgICBjYXNlIElE
QktleTo6U3RyaW5nVHlwZToKICAgICAgICAgcXVlcnkuYmluZFRleHQoY29sdW1uLCBtX3N0cmlu
Zyk7CiAgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgSURCS2V5OjpEYXRlVHlwZToKKyAgICAg
ICAgcXVlcnkuYmluZERvdWJsZShjb2x1bW4sIG1fZGF0ZSk7CisgICAgICAgIHJldHVybiAxOwog
ICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgogICAgICAgICBxdWVyeS5iaW5kRG91YmxlKGNv
bHVtbiwgbV9udW1iZXIpOwogICAgICAgICByZXR1cm4gMTsKQEAgLTE2NSw2ICsxNTgsMTEgQEAg
dm9pZCBJREJLZXk6OmJpbmRXaXRoTnVsbHMoU1FMaXRlU3RhdGVtZW50JiBxdWVyeSwgaW50IGJh
c2VDb2x1bW4pIGNvbnN0CiAgICAgICAgIHF1ZXJ5LmJpbmROdWxsKGJhc2VDb2x1bW4gKyAxKTsK
ICAgICAgICAgcXVlcnkuYmluZE51bGwoYmFzZUNvbHVtbiArIDIpOwogICAgICAgICBicmVhazsK
KyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHF1ZXJ5LmJpbmROdWxsKGJhc2VD
b2x1bW4gKyAwKTsKKyAgICAgICAgcXVlcnkuYmluZERvdWJsZShiYXNlQ29sdW1uICsgMSwgbV9k
YXRlKTsKKyAgICAgICAgcXVlcnkuYmluZE51bGwoYmFzZUNvbHVtbiArIDIpOworICAgICAgICBi
cmVhazsKICAgICBjYXNlIElEQktleTo6TnVtYmVyVHlwZToKICAgICAgICAgcXVlcnkuYmluZE51
bGwoYmFzZUNvbHVtbiArIDApOwogICAgICAgICBxdWVyeS5iaW5kTnVsbChiYXNlQ29sdW1uICsg
MSk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5LmggYi9XZWJDb3JlL3N0b3Jh
Z2UvSURCS2V5LmgKaW5kZXggMDUxMzUxZmI4ZWY2Y2EzYWMzZDU1MTNlNDEwZDliOTY1ZjU0NzFl
YS4uZDM2NGMzOTMxYjA2YTM0YTQ1YTc4YmVhMDNiZGE0Y2MxMWNlMzYyZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9zdG9yYWdlL0lEQktleS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuaApA
QCAtMzYsMjcgKzM2LDQ2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMaXRlU3Rh
dGVtZW50OwogCi0vLyBGSVhNRTogQWRkIGRhdGVzLgogY2xhc3MgSURCS2V5IDogcHVibGljIFRo
cmVhZFNhZmVTaGFyZWQ8SURCS2V5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCS2V5PiBjcmVhdGUoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlTnVs
bCgpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQktleSgpKTsKKyAgICAg
ICAgSURCS2V5KiBpZGJLZXkgPSBuZXcgSURCS2V5KCk7CisgICAgICAgIGlkYktleS0+bV90eXBl
ID0gTnVsbFR5cGU7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihpZGJLZXkpOwogICAgIH0KLSAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZShkb3VibGUgbnVtYmVyKQorCisgICAg
c3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCS2V5KG51bWJlcikpOworICAgICAg
ICBJREJLZXkqIGlkYktleSA9IG5ldyBJREJLZXkoKTsKKyAgICAgICAgaWRiS2V5LT5tX3R5cGUg
PSBOdW1iZXJUeXBlOworICAgICAgICBpZGJLZXktPm1fbnVtYmVyID0gbnVtYmVyOworICAgICAg
ICByZXR1cm4gYWRvcHRSZWYoaWRiS2V5KTsKICAgICB9Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SURCS2V5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisKKyAgICBzdGF0aWMgUGFzc1Jl
ZlB0cjxJREJLZXk+IGNyZWF0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIElEQktleSogaWRiS2V5ID0gbmV3IElEQktleSgpOworICAgICAgICBpZGJLZXktPm1f
dHlwZSA9IFN0cmluZ1R5cGU7CisgICAgICAgIGlkYktleS0+bV9zdHJpbmcgPSBzdHJpbmc7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZihpZGJLZXkpOworICAgIH0KKworICAgIHN0YXRpYyBQYXNz
UmVmUHRyPElEQktleT4gY3JlYXRlRGF0ZShkb3VibGUgZGF0ZSkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgSURCS2V5KHN0cmluZykpOworICAgICAgICBJREJLZXkqIGlkYktl
eSA9IG5ldyBJREJLZXkoKTsKKyAgICAgICAgaWRiS2V5LT5tX3R5cGUgPSBEYXRlVHlwZTsKKyAg
ICAgICAgaWRiS2V5LT5tX2RhdGUgPSBkYXRlOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoaWRi
S2V5KTsKICAgICB9CisKICAgICB+SURCS2V5KCk7CiAKICAgICAvLyBJbiBvcmRlciBvZiB0aGUg
bGVhc3QgdG8gdGhlIGhpZ2hlc3QgcHJlY2VkZW50IGluIHRlcm1zIG9mIHNvcnQgb3JkZXIuCiAg
ICAgZW51bSBUeXBlIHsKICAgICAgICAgTnVsbFR5cGUgPSAwLCAvLyBGSVhNRTogUGhhc2Ugb3V0
IHN1cHBvcnQgZm9yIG51bGwga2V5cy4KICAgICAgICAgU3RyaW5nVHlwZSwKKyAgICAgICAgRGF0
ZVR5cGUsCiAgICAgICAgIE51bWJlclR5cGUKICAgICB9OwogCkBAIC02OCw2ICs4NywxMiBAQCBw
dWJsaWM6CiAgICAgICAgIHJldHVybiBtX3N0cmluZzsKICAgICB9CiAKKyAgICBkb3VibGUgZGF0
ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IERhdGVUeXBlKTsKKyAg
ICAgICAgcmV0dXJuIG1fZGF0ZTsKKyAgICB9CisKICAgICBkb3VibGUgbnVtYmVyKCkgY29uc3QK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gTnVtYmVyVHlwZSk7CkBAIC04OCwxMSAr
MTEzLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBJREJLZXkoKTsKLSAgICBleHBsaWNp
dCBJREJLZXkoZG91YmxlKTsKLSAgICBleHBsaWNpdCBJREJLZXkoY29uc3QgU3RyaW5nJik7CiAK
ICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9zdHJpbmc7CisgICAgZG91YmxlIG1fZGF0
ZTsKICAgICBkb3VibGUgbV9udW1iZXI7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAyNTI2MmQwZWI2
M2IxMTkwMTFhOTdhNjAzYWIzODg0MTFiMTFlNTFkLi40YTUxYzQzODM4NjFiODc5MmViN2E3ZjI1
NmQ5NDVlMDJkMDI2YmQwIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMCBAQAogMjAxMC0xMi0x
NiAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBEYXRlIG9i
amVjdHMgYXMga2V5cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxMTkzCisKKyAgICAgICAgVXBkYXRlIHRvIG1hdGNoIHRoZSB1bmRlcmx5aW5nIFdl
YkNvcmUgSURCS2V5IGNsYXNzOgorICAgICAgICBhZGQgdGhlIERhdGVUeXBlLCBhZGQgY3JlYXRl
KCkgZnVuY3Rpb25zIGZvciBlYWNoIHR5cGUsCisgICAgICAgIGRlcHJlY2F0ZSB0aGUgcHVibGlj
IGNvbnN0cnVjdG9ycyAod2lsbCBiZSByZW1vdmVkIG9uY2UKKyAgICAgICAgQ2hyb21pdW0gc2lk
ZSBpcyB1cGRhdGVkKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJJREJLZXkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSURCS2V5OjpXZWJJREJLZXkpOgorICAgICAgICAqIHNyYy9Bc3NlcnRNYXRj
aGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViSURCS2V5LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSURCS2V5OjpjcmVhdGVTdHJpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJL
ZXk6OmNyZWF0ZURhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXk6OmNyZWF0ZU51bWJl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleTo6YXNzaWduTnVsbCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYklEQktleTo6YXNzaWduU3RyaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURC
S2V5Ojphc3NpZ25EYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5Ojphc3NpZ25OdW1i
ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXk6OmRhdGUpOgorCisyMDEwLTEyLTE2ICBI
YW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgUmV2aWV3ZWQgYnkg
SmVyZW15IE9ybG93LgogCiAgICAgICAgIEluZGV4ZWREQjogRml4IElEQkRhdGFiYXNlRXJyb3Ig
Y29kZSBvZmZzZXQgYnVnCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYklE
QktleS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJJREJLZXkuaAppbmRleCBjNzdhNWI3
MzIyMGExZmU4N2M0OGFlNzQ5NWI2OGIwOTdhOGY3MGQxLi41NjFhZjJmY2NhOGJhZDM4N2IwNGU5
OTBmNWViMjg0ZTk3NDMwYTYxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YklEQktleS5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKQEAgLTQ0
LDExICs0NCwxNiBAQCBwdWJsaWM6CiAgICAgfldlYklEQktleSgpIHsgcmVzZXQoKTsgfQogCiAg
ICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZU51bGwoKTsKKyAgICBXRUJLSVRf
QVBJIHN0YXRpYyBXZWJJREJLZXkgY3JlYXRlU3RyaW5nKGNvbnN0IFdlYlN0cmluZyYpOworICAg
IFdFQktJVF9BUEkgc3RhdGljIFdlYklEQktleSBjcmVhdGVEYXRlKGRvdWJsZSk7CisgICAgV0VC
S0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZU51bWJlcihkb3VibGUpOwogICAgIFdFQktJ
VF9BUEkgc3RhdGljIFdlYklEQktleSBjcmVhdGVJbnZhbGlkKCk7CiAgICAgV0VCS0lUX0FQSSBz
dGF0aWMgV2ViSURCS2V5IGNyZWF0ZUZyb21WYWx1ZUFuZEtleVBhdGgoY29uc3QgV2ViU2VyaWFs
aXplZFNjcmlwdFZhbHVlJiwgY29uc3QgV2ViSURCS2V5UGF0aCYpOwogCi0gICAgV2ViSURCS2V5
KGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKSB7IGFzc2lnbihzdHJpbmcpOyB9Ci0gICAgV2ViSURC
S2V5KGRvdWJsZSBudW1iZXIpIHsgYXNzaWduKG51bWJlcik7IH0KKyAgICAvLyBGSVhNRTogUmVt
b3ZlIHRoZXNlIHR3byBjb25zdHJ1Y3RvcnMgYWZ0ZXIgQ2hyb21pdW0gc2lkZSBpcyBkb25lLgor
ICAgIFdlYklEQktleShjb25zdCBXZWJTdHJpbmcmIHN0cmluZykgeyBhc3NpZ25TdHJpbmcoc3Ry
aW5nKTsgfQorICAgIFdlYklEQktleShkb3VibGUgbnVtYmVyKSB7IGFzc2lnbk51bWJlcihudW1i
ZXIpOyB9CisKICAgICBXZWJJREJLZXkoY29uc3QgV2ViSURCS2V5JiBlKSB7IGFzc2lnbihlKTsg
fQogICAgIFdlYklEQktleSYgb3BlcmF0b3I9KGNvbnN0IFdlYklEQktleSYgZSkKICAgICB7CkBA
IC01OCwxNCArNjMsMTYgQEAgcHVibGljOgogCiAgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihj
b25zdCBXZWJJREJLZXkmKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduTnVsbCgpOwotICAg
IFdFQktJVF9BUEkgdm9pZCBhc3NpZ24oY29uc3QgV2ViU3RyaW5nJik7Ci0gICAgV0VCS0lUX0FQ
SSB2b2lkIGFzc2lnbihkb3VibGUpOworICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ25TdHJpbmco
Y29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbkRhdGUoZG91Ymxl
KTsKKyAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduTnVtYmVyKGRvdWJsZSk7CiAgICAgV0VCS0lU
X0FQSSB2b2lkIGFzc2lnbkludmFsaWQoKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgcmVzZXQoKTsK
IAogICAgIGVudW0gVHlwZSB7CiAgICAgICAgIE51bGxUeXBlID0gMCwKICAgICAgICAgU3RyaW5n
VHlwZSwKKyAgICAgICAgRGF0ZVR5cGUsCiAgICAgICAgIE51bWJlclR5cGUsCiAgICAgICAgIC8v
IFR5cGVzIG5vdCBpbiBXZWJDb3JlOjpJREJLZXk6CiAgICAgICAgIEludmFsaWRUeXBlCkBAIC03
Myw3ICs4MCw4IEBAIHB1YmxpYzoKIAogICAgIFdFQktJVF9BUEkgVHlwZSB0eXBlKCkgY29uc3Q7
CiAgICAgV0VCS0lUX0FQSSBXZWJTdHJpbmcgc3RyaW5nKCkgY29uc3Q7IC8vIE9ubHkgdmFsaWQg
Zm9yIFN0cmluZ1R5cGUuCi0gICAgV0VCS0lUX0FQSSBkb3VibGUgbnVtYmVyKCkgY29uc3Q7IC8v
IE9ubHkgdmFsaWQgZm9yIG51bWJlclR5cGUuCisgICAgV0VCS0lUX0FQSSBkb3VibGUgZGF0ZSgp
IGNvbnN0OyAvLyBPbmx5IHZhbGlkIGZvciBEYXRlVHlwZS4KKyAgICBXRUJLSVRfQVBJIGRvdWJs
ZSBudW1iZXIoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgTnVtYmVyVHlwZS4KIAogI2lmIFdF
QktJVF9JTVBMRU1FTlRBVElPTgogICAgIFdlYklEQktleShjb25zdCBXVEY6OlBhc3NSZWZQdHI8
V2ViQ29yZTo6SURCS2V5PiYpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3Nl
cnRNYXRjaGluZ0VudW1zLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdF
bnVtcy5jcHAKaW5kZXggY2VlZWQ4ZGJjNWZmMjIxMmEyOTlhZjQ5MzIxNGVhOTg5ZjdlODU5YS4u
YmE5YjRlN2U0OTMxOWRlZTZjN2Y3NTE2MWZiYWVlOTU4NGUwYTgzMiAxMDA2NDQKLS0tIGEvV2Vi
S2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9XZWJLaXQvY2hy
b21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC0zNjUsNiArMzY1LDcgQEAgQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJWaWV3OjpVc2VyU3R5bGVJbmplY3RJblN1YnNl
cXVlbnREb2N1bWVudHMsIEluamUKIAogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJ
REJLZXk6Ok51bGxUeXBlLCBJREJLZXk6Ok51bGxUeXBlKTsKIENPTVBJTEVfQVNTRVJUX01BVENI
SU5HX0VOVU0oV2ViSURCS2V5OjpTdHJpbmdUeXBlLCBJREJLZXk6OlN0cmluZ1R5cGUpOworQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6OkRhdGVUeXBlLCBJREJLZXk6OkRh
dGVUeXBlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViSURCS2V5OjpOdW1iZXJU
eXBlLCBJREJLZXk6Ok51bWJlclR5cGUpOwogCiAjaWYgRU5BQkxFKEZJTEVfU1lTVEVNKQpkaWZm
IC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJLZXkuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJLZXkuY3BwCmluZGV4IGI3YTdkYjgwOGMyNDdmNGI1OGI5MGVkZjg4ZjAy
NzE1ZWVmODk2NWIuLjdlODRkZjE3YjFiNjMyNjNlZDU5ZmU1ODhmMGU1MWU4Y2Q4YjhiZGQgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcAorKysgYi9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKQEAgLTQ4LDYgKzQ4LDI3IEBAIFdlYklEQktleSBX
ZWJJREJLZXk6OmNyZWF0ZU51bGwoKQogICAgIHJldHVybiBrZXk7CiB9CiAKK1dlYklEQktleSBX
ZWJJREJLZXk6OmNyZWF0ZVN0cmluZyhjb25zdCBXZWJTdHJpbmcmIHN0cmluZykKK3sKKyAgICBX
ZWJJREJLZXkga2V5OworICAgIGtleS5hc3NpZ25TdHJpbmcoc3RyaW5nKTsKKyAgICByZXR1cm4g
a2V5OworfQorCitXZWJJREJLZXkgV2ViSURCS2V5OjpjcmVhdGVEYXRlKGRvdWJsZSBkYXRlKQor
eworICAgIFdlYklEQktleSBrZXk7CisgICAga2V5LmFzc2lnbkRhdGUoZGF0ZSk7CisgICAgcmV0
dXJuIGtleTsKK30KKworV2ViSURCS2V5IFdlYklEQktleTo6Y3JlYXRlTnVtYmVyKGRvdWJsZSBu
dW1iZXIpCit7CisgICAgV2ViSURCS2V5IGtleTsKKyAgICBrZXkuYXNzaWduTnVtYmVyKG51bWJl
cik7CisgICAgcmV0dXJuIGtleTsKK30KKwogV2ViSURCS2V5IFdlYklEQktleTo6Y3JlYXRlSW52
YWxpZCgpCiB7CiAgICAgV2ViSURCS2V5IGtleTsKQEAgLTY5LDE3ICs5MCwyMiBAQCB2b2lkIFdl
YklEQktleTo6YXNzaWduKGNvbnN0IFdlYklEQktleSYgdmFsdWUpCiAKIHZvaWQgV2ViSURCS2V5
Ojphc3NpZ25OdWxsKCkKIHsKLSAgICBtX3ByaXZhdGUgPSBJREJLZXk6OmNyZWF0ZSgpOworICAg
IG1fcHJpdmF0ZSA9IElEQktleTo6Y3JlYXRlTnVsbCgpOworfQorCit2b2lkIFdlYklEQktleTo6
YXNzaWduU3RyaW5nKGNvbnN0IFdlYlN0cmluZyYgc3RyaW5nKQoreworICAgIG1fcHJpdmF0ZSA9
IElEQktleTo6Y3JlYXRlU3RyaW5nKHN0cmluZyk7CiB9CiAKLXZvaWQgV2ViSURCS2V5Ojphc3Np
Z24oY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpCit2b2lkIFdlYklEQktleTo6YXNzaWduRGF0ZShk
b3VibGUgZGF0ZSkKIHsKLSAgICBtX3ByaXZhdGUgPSBJREJLZXk6OmNyZWF0ZShzdHJpbmcpOwor
ICAgIG1fcHJpdmF0ZSA9IElEQktleTo6Y3JlYXRlRGF0ZShkYXRlKTsKIH0KIAotdm9pZCBXZWJJ
REJLZXk6OmFzc2lnbihkb3VibGUgbnVtYmVyKQordm9pZCBXZWJJREJLZXk6OmFzc2lnbk51bWJl
cihkb3VibGUgbnVtYmVyKQogewotICAgIG1fcHJpdmF0ZSA9IElEQktleTo6Y3JlYXRlKG51bWJl
cik7CisgICAgbV9wcml2YXRlID0gSURCS2V5OjpjcmVhdGVOdW1iZXIobnVtYmVyKTsKIH0KIAog
dm9pZCBXZWJJREJLZXk6OmFzc2lnbkludmFsaWQoKQpAQCAtMTA0LDYgKzEzMCwxMSBAQCBXZWJT
dHJpbmcgV2ViSURCS2V5OjpzdHJpbmcoKSBjb25zdAogICAgIHJldHVybiBtX3ByaXZhdGUtPnN0
cmluZygpOwogfQogCitkb3VibGUgV2ViSURCS2V5OjpkYXRlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9wcml2YXRlLT5kYXRlKCk7Cit9CisKIGRvdWJsZSBXZWJJREJLZXk6Om51bWJlcigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+bnVtYmVyKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76868</attachid>
            <date>2010-12-17 04:45:56 -0800</date>
            <delta_ts>2010-12-17 07:03:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51193-20101217124554.patch</filename>
            <type>text/plain</type>
            <size>22410</size>
            <attacher name="Hans Wennborg">hans</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhNTA5NDNkNTA0Mzg4YzI4NDc2MDY4ODc1ZDQ2MTQwZmJiZTQ0ZGZlLi5lYTlkYzIy
MjJlMDAwMDU1YjgwOWYzNGE1MzQwMWNlZmY3NmNkYjk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMTItMTcgIEhhbnMgV2VubmJvcmcgIDxoYW5zQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbmRleGVkREI6IFN1cHBv
cnQgRGF0ZSBvYmplY3RzIGFzIGtleXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTE5MworCisgICAgICAgIFVwZGF0ZSBsYXlvdXQgdGVzdHMgdG8g
Y2hlY2sgdGhhdCBoYXZpbmcgRGF0ZSBvYmplY3RzIGFzIGtleXMgd29yay4KKworICAgICAgICAq
IHN0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLmh0bWw6CisKIDIwMTAt
MTItMTcgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI3NDIyOS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MtZXhwZWN0ZWQudHh0CmluZGV4IGU3
MzZkMmZlMzE5ZDBhZDMxOWYxODgxYjFiY2I3MDFmNGI3MzlmNGUuLjE3NzQ2ZDNjMzJhZTg1NGVh
NTRkMTIxOTQ0MmZkY2JlNjNjZjA2ZjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9pbmRleGVkZGIvb2JqZWN0c3RvcmUtYmFzaWNzLWV4cGVjdGVkLnR4dApAQCAt
OTgsMjIgKzk4LDEzIEBAIFBBU1Mgc3RvcmUuaW5kZXhOYW1lcy5pdGVtKDEwMCkgaXMgbnVsbAog
dHJhbnNhY3Rpb24gPSBkYi50cmFuc2FjdGlvbigpCiBzdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVj
dFN0b3JlKCdzdG9yZU5hbWUnKQogVHJ5IHRvIGluc2VydCBkYXRhIHdpdGggYSBEYXRlIGtleToK
LXN0b3JlLmFkZCh7eDogJ2Zvbyd9LCBuZXcgRGF0ZSgpKQotUEFTUyBFeGNlcHRpb24gdGhyb3du
Ci1QQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLlRZUEVfTUlTTUFUQ0hfRVJSCitzdG9yZS5hZGQo
e3g6ICdmb28nfSwgdGVzdERhdGUpCiBUcnkgdG8gaW5zZXJ0IGEgdmFsdWUgbm90IGhhbmRsZWQg
Ynkgc3RydWN0dXJlZCBjbG9uZToKIHN0b3JlLmFkZCh7eDogJ2JhcicsIHk6IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJyl9LCAnYmFyJykKIFBBU1MgRXhjZXB0aW9uIHRocm93bgog
UEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5OT1RfU1VQUE9SVEVEX0VSUgogVHJ5IHRvIGluc2Vy
dCBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkcyBhIERhdGUga2V5Ogotc3RvcmUuYWRkKHt4OiBu
ZXcgRGF0ZSgpfSwgJ2ZvbycpCi1QQVNTIEFkZGluZyBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxk
ZWQgRGF0ZSBrZXkgcmVzdWx0ZWQgaW4gZXJyb3IuCi1zdG9yZS5hZGQoe3g6ICd2YWx1ZSd9LCAn
a2V5JykKLVBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlzIHRydWUKLVBBU1MgJ29uZXJyb3In
IGluIHJlc3VsdCBpcyB0cnVlCi1QQVNTICdyZWFkeVN0YXRlJyBpbiByZXN1bHQgaXMgdHJ1ZQot
QW4gZXZlbnQgc2hvdWxkIGZpcmUgc2hvcnRseS4uLgotCitzdG9yZS5hZGQoe3g6IG5ldyBEYXRl
KCksIHk6ICd2YWx1ZSd9LCAna2V5JykKIGFkZFN1Y2Nlc3MoKToKIFN1Y2Nlc3MgZXZlbnQgZmly
ZWQ6CiBQQVNTICdyZXN1bHQnIGluIGV2ZW50IGlzIHRydWUKQEAgLTEyNyw3ICsxMTgsNyBAQCBQ
QVNTICdyZWFkeVN0YXRlJyBpbiBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyBldmVudC50YXJn
ZXQucmVhZHlTdGF0ZSBpcyBldmVudC50YXJnZXQuRE9ORQogCiBQQVNTIGV2ZW50LnJlc3VsdCBp
cyAia2V5IgotZXZlbnQuc291cmNlLmFkZCh7eDogJ3ZhbHVlJ30sICd6enonKQorZXZlbnQuc291
cmNlLmFkZCh7eDogJ2Zvbyd9LCAnenp6JykKIFBBU1MgJ29uc3VjY2VzcycgaW4gcmVzdWx0IGlz
IHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCiBQQVNTICdyZWFkeVN0YXRl
JyBpbiByZXN1bHQgaXMgdHJ1ZQpAQCAtMjA4LDggKzE5OSwyMiBAQCBQQVNTICdvbmVycm9yJyBp
biBldmVudC50YXJnZXQgaXMgdHJ1ZQogUEFTUyAncmVhZHlTdGF0ZScgaW4gZXZlbnQudGFyZ2V0
IGlzIHRydWUKIFBBU1MgZXZlbnQudGFyZ2V0LnJlYWR5U3RhdGUgaXMgZXZlbnQudGFyZ2V0LkRP
TkUKIAotUEFTUyBldmVudC5yZXN1bHQueCBpcyAidmFsdWUiCitQQVNTIGV2ZW50LnJlc3VsdC55
IGlzICJ2YWx1ZSIKIHN0b3JlID0gZXZlbnQuc291cmNlCitzdG9yZS5nZXQodGVzdERhdGUpCitn
ZXRTdWNjZXNzRGF0ZUtleSgpOgorU3VjY2VzcyBldmVudCBmaXJlZDoKK1BBU1MgJ3Jlc3VsdCcg
aW4gZXZlbnQgaXMgdHJ1ZQorUEFTUyAnY29kZScgaW4gZXZlbnQgaXMgZmFsc2UKK1BBU1MgJ21l
c3NhZ2UnIGluIGV2ZW50IGlzIGZhbHNlCitQQVNTICdzb3VyY2UnIGluIGV2ZW50IGlzIHRydWUK
K1BBU1MgZXZlbnQuc291cmNlICE9IG51bGwgaXMgdHJ1ZQorUEFTUyAnb25zdWNjZXNzJyBpbiBl
dmVudC50YXJnZXQgaXMgdHJ1ZQorUEFTUyAnb25lcnJvcicgaW4gZXZlbnQudGFyZ2V0IGlzIHRy
dWUKK1BBU1MgJ3JlYWR5U3RhdGUnIGluIGV2ZW50LnRhcmdldCBpcyB0cnVlCitQQVNTIGV2ZW50
LnRhcmdldC5yZWFkeVN0YXRlIGlzIGV2ZW50LnRhcmdldC5ET05FCisKK1BBU1MgZXZlbnQucmVz
dWx0LnggaXMgImZvbyIKIHN0b3JlLmRlbGV0ZSgna2V5JykKIFBBU1MgJ29uc3VjY2VzcycgaW4g
cmVzdWx0IGlzIHRydWUKIFBBU1MgJ29uZXJyb3InIGluIHJlc3VsdCBpcyB0cnVlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9vYmplY3RzdG9yZS1iYXNpY3MuaHRt
bCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1s
CmluZGV4IDNkMmExZDJjNDc3OTY3NzZmYTlkMzVkMGEzZjRhMWE2YzFmZDgzODQuLmEzNjhjMDE0
NWQ2ODBiNWQzOTU1ZDg4NWM1ZmUxMTRlMjE5ZTRhOWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL29iamVjdHN0b3JlLWJhc2ljcy5odG1sCkBAIC0xMzYsNiAr
MTM2LDcgQEAgZnVuY3Rpb24gY2hlY2tNZXRhZGF0YSgpCiAgICAgYWRkRGF0YSgpOwogfQogCit2
YXIgdGVzdERhdGUgPSBuZXcgRGF0ZSgiQXVndXN0IDI1LCAxOTkxIDIwOjU3OjA4Iik7CiAKIGZ1
bmN0aW9uIGFkZERhdGEoKQogewpAQCAtMTQ0LDE3ICsxNDUsMTMgQEAgZnVuY3Rpb24gYWRkRGF0
YSgpCiAgICAgd2luZG93LnN0b3JlID0gZXZhbEFuZExvZygic3RvcmUgPSB0cmFuc2FjdGlvbi5v
YmplY3RTdG9yZSgnc3RvcmVOYW1lJykiKTsKIAogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0IGRh
dGEgd2l0aCBhIERhdGUga2V5OiIpOwotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCB3b3JrIGlu
IHRoZSBmdXR1cmUuCi0gICAgdHJ5IHsKLSAgICAgICAgZGVidWcoInN0b3JlLmFkZCh7eDogJ2Zv
byd9LCBuZXcgRGF0ZSgpKSIpOwotICAgICAgICBzdG9yZS5hZGQoe3g6ICdmb28nfSwgbmV3IERh
dGUoKSk7Ci0gICAgICAgIHRlc3RGYWlsZWQoIlBhc3NpbmcgYSBEYXRlIGFzIGtleSBhcmd1bWVu
dCBzaG91bGQgaGF2ZSB0aHJvd24uIik7Ci0gICAgfSBjYXRjaCAoZXJyKSB7Ci0gICAgICAgIHRl
c3RQYXNzZWQoIkV4Y2VwdGlvbiB0aHJvd24iKTsKLSAgICAgICAgY29kZSA9IGVyci5jb2RlOwot
ICAgICAgICBzaG91bGRCZSgiY29kZSIsICJET01FeGNlcHRpb24uVFlQRV9NSVNNQVRDSF9FUlIi
KTsKLSAgICB9CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiAnZm9vJ30s
IHRlc3REYXRlKSIpOworICAgIHJlc3VsdC5vbnN1Y2Nlc3MgPSBhZGREYXRlU3VjY2VzczsKKyAg
ICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOworfQogCitmdW5jdGlv
biBhZGREYXRlU3VjY2VzcygpCit7CiAgICAgZGVidWcoIlRyeSB0byBpbnNlcnQgYSB2YWx1ZSBu
b3QgaGFuZGxlZCBieSBzdHJ1Y3R1cmVkIGNsb25lOiIpOwogICAgIHRyeSB7CiAgICAgICAgIGRl
YnVnKCJzdG9yZS5hZGQoe3g6ICdiYXInLCB5OiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpfSwgJ2JhcicpIik7CkBAIC0xNjYsMTkgKzE2Myw4IEBAIGZ1bmN0aW9uIGFkZERhdGEo
KQogICAgICAgICBzaG91bGRCZSgiY29kZSIsICJET01FeGNlcHRpb24uTk9UX1NVUFBPUlRFRF9F
UlIiKTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgd29yayBpbiB0aGUgZnV0
dXJlLgogICAgIGRlYnVnKCJUcnkgdG8gaW5zZXJ0IGRhdGEgd2hlcmUga2V5IHBhdGggeWllbGRz
IGEgRGF0ZSBrZXk6Iik7Ci0gICAgcmVzdWx0ID0gZXZhbEFuZExvZygic3RvcmUuYWRkKHt4OiBu
ZXcgRGF0ZSgpfSwgJ2ZvbycpIik7Ci0gICAgcmVzdWx0Lm9uc3VjY2VzcyA9IHVuZXhwZWN0ZWRT
dWNjZXNzQ2FsbGJhY2s7Ci0gICAgcmVzdWx0Lm9uZXJyb3IgPSBhZGRLZXlQYXRoWWllbGRpbmdE
YXRlRmFpbHVyZTsKLX0KLQotZnVuY3Rpb24gYWRkS2V5UGF0aFlpZWxkaW5nRGF0ZUZhaWx1cmUo
KQotewotICAgIHRlc3RQYXNzZWQoIkFkZGluZyBkYXRhIHdoZXJlIGtleSBwYXRoIHlpZWxkZWQg
RGF0ZSBrZXkgcmVzdWx0ZWQgaW4gZXJyb3IuIik7Ci0KLSAgICByZXN1bHQgPSBldmFsQW5kTG9n
KCJzdG9yZS5hZGQoe3g6ICd2YWx1ZSd9LCAna2V5JykiKTsKLSAgICB2ZXJpZnlSZXN1bHQocmVz
dWx0KTsKKyAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJzdG9yZS5hZGQoe3g6IG5ldyBEYXRlKCks
IHk6ICd2YWx1ZSd9LCAna2V5JykiKTsKICAgICByZXN1bHQub25zdWNjZXNzID0gYWRkU3VjY2Vz
czsKICAgICByZXN1bHQub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwogfQpAQCAt
MTg5LDcgKzE3NSw3IEBAIGZ1bmN0aW9uIGFkZFN1Y2Nlc3MoKQogICAgIHZlcmlmeVN1Y2Nlc3NF
dmVudChldmVudCk7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJldmVudC5yZXN1bHQiLCAi
a2V5Iik7CiAKLSAgICByZXN1bHQgPSBldmFsQW5kTG9nKCJldmVudC5zb3VyY2UuYWRkKHt4OiAn
dmFsdWUnfSwgJ3p6eicpIik7CisgICAgcmVzdWx0ID0gZXZhbEFuZExvZygiZXZlbnQuc291cmNl
LmFkZCh7eDogJ2Zvbyd9LCAnenp6JykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKICAg
ICByZXN1bHQub25zdWNjZXNzID0gdW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKICAgICByZXN1
bHQub25lcnJvciA9IGFkZEFnYWluRmFpbHVyZTsKQEAgLTI0OCw4ICsyMzQsMTkgQEAgZnVuY3Rp
b24gZ2V0U3VjY2VzcygpCiB7CiAgICAgZGVidWcoImdldFN1Y2Nlc3MoKToiKTsKICAgICB2ZXJp
ZnlTdWNjZXNzRXZlbnQoZXZlbnQpOwotICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXZlbnQu
cmVzdWx0LngiLCAidmFsdWUiKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImV2ZW50LnJl
c3VsdC55IiwgInZhbHVlIik7CisKICAgICB2YXIgc3RvcmUgPSBldmFsQW5kTG9nKCJzdG9yZSA9
IGV2ZW50LnNvdXJjZSIpOworICAgIHJlc3VsdCA9IGV2YWxBbmRMb2coInN0b3JlLmdldCh0ZXN0
RGF0ZSkiKTsKKyAgICByZXN1bHQub25zdWNjZXNzID0gZ2V0U3VjY2Vzc0RhdGVLZXk7CisgICAg
cmVzdWx0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKK30KKworZnVuY3Rpb24g
Z2V0U3VjY2Vzc0RhdGVLZXkoKQoreworICAgIGRlYnVnKCJnZXRTdWNjZXNzRGF0ZUtleSgpOiIp
OworICAgIHZlcmlmeVN1Y2Nlc3NFdmVudChldmVudCk7CisgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJldmVudC5yZXN1bHQueCIsICJmb28iKTsKIAogICAgIHJlc3VsdCA9IGV2YWxBbmRMb2co
InN0b3JlLmRlbGV0ZSgna2V5JykiKTsKICAgICB2ZXJpZnlSZXN1bHQocmVzdWx0KTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2EzOGYz
OGJmZmYwYTk3ZDhkOTk2NmFmYTdlOWZjZTQ2NmFjOGQwYy4uNmVjYTc0N2ZmMTA2YTJhN2ZhNjRh
NWQwZmJmYmMwZjJiMDhlYTE3MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMC0xMi0xNyAgSGFucyBXZW5u
Ym9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEluZGV4ZWREQjogU3VwcG9ydCBEYXRlIG9iamVjdHMgYXMga2V5
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTkz
CisKKyAgICAgICAgKiBiaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNyZWF0ZUlEQktleUZyb21WYWx1ZSk6CisgICAgICAgIFVzZSB0aGUgbmV3
IElEQktleSBmYWN0b3J5IGZ1bmN0aW9ucywgYW5kIHN1cHBvcnQgRGF0ZSBvYmplY3RzLgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjp0b1Y4KToKKyAgICAgICAgQ3JlYXRlIERhdGUgb2JqZWN0cyBmcm9tIERhdGVUeXBl
IGtleXMuCisgICAgICAgICogc3RvcmFnZS9JREJLZXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SURCS2V5Ojpmcm9tUXVlcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5Ojppc0VxdWFsKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6d2hlcmVTeW50YXgpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCS2V5Ojpsb3dlckN1cnNvcldoZXJlRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6
SURCS2V5Ojp1cHBlckN1cnNvcldoZXJlRnJhZ21lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5OjpiaW5kKToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6YmluZFdpdGhOdWxscyk6Cisg
ICAgICAgIFVwZGF0ZSBhbGwgU1FMIHJlbGF0ZWQgZnVuY3Rpb25zIHRvIGhhbmRsZSBEYXRlIGtl
eXMuCisgICAgICAgICogc3RvcmFnZS9JREJLZXkuaDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktl
eTo6Y3JlYXRlTnVsbCk6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6OmNyZWF0ZU51bWJlcik6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXk6OmNyZWF0ZVN0cmluZyk6CisgICAgICAgIChXZWJD
b3JlOjpJREJLZXk6OmNyZWF0ZURhdGUpOgorICAgICAgICBSZW5hbWUgdGhlIGNyZWF0ZSBmYWN0
b3JpZXM7IHNpbmNlIGJvdGggbnVtYmVyIGFuZCBkYXRlIGlzIGp1c3QgYQorICAgICAgICBkb3Vi
bGUsIGZ1bmN0aW9uIG92ZXJsb2FkaW5nIGNhbid0IGJlIHVzZWQgdG8gZGlzY3JpbWluYXRlIGJl
dHdlZW4KKyAgICAgICAgdGhlIGZhY3Rvcmllcy4KKyAgICAgICAgKFdlYkNvcmU6OklEQktleTo6
ZGF0ZSk6CisgICAgICAgIEFkZCBnZXR0ZXIgZm9yIHRoZSBkYXRlIHZhbHVlLgorCiAyMDEwLTEy
LTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvSURCQmlu
ZGluZ1V0aWxpdGllcy5jcHAKaW5kZXggNTA5ZDdjNWUxM2QyZWE4MDg5MDcwNmU0ZTExMjQ4YTVm
M2IzMzU2My4uMmU4ZDRmZWEyOTcxZTY3OWMwZmUzYTZjZWVlOWJhZDQ5MmNjNWYxMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9JREJCaW5kaW5nVXRpbGl0aWVzLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L0lEQkJpbmRpbmdVdGlsaXRpZXMuY3BwCkBAIC00MCwxMyArNDAs
MTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZUlEQktl
eUZyb21WYWx1ZSh2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdmFsdWUpCiB7CiAgICAgaWYgKHZhbHVl
LT5Jc051bGwoKSkKLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKCk7CisgICAgICAgIHJl
dHVybiBJREJLZXk6OmNyZWF0ZU51bGwoKTsKICAgICBpZiAodmFsdWUtPklzTnVtYmVyKCkpCi0g
ICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZSh2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CisgICAg
ICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZU51bWJlcih2YWx1ZS0+TnVtYmVyVmFsdWUoKSk7CiAg
ICAgaWYgKHZhbHVlLT5Jc1N0cmluZygpKQotICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGUo
djhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2YWx1ZSkpOworICAgICAgICByZXR1cm4gSURCS2V5Ojpj
cmVhdGVTdHJpbmcodjhWYWx1ZVRvV2ViQ29yZVN0cmluZyh2YWx1ZSkpOwogICAgIGlmICh2YWx1
ZS0+SXNEYXRlKCkpCi0gICAgICAgIHJldHVybiAwOyAvLyBTaWduYWxzIHR5cGUgZXJyb3IuIEZJ
WE1FOiBJbXBsZW1lbnQgZGF0ZXMuCisgICAgICAgIHJldHVybiBJREJLZXk6OmNyZWF0ZURhdGUo
dmFsdWUtPk51bWJlclZhbHVlKCkpOwogCiAgICAgcmV0dXJuIDA7IC8vIFNpZ25hbHMgdHlwZSBl
cnJvci4KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5
Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SURCS2V5Q3VzdG9tLmNw
cAppbmRleCBiZTA1YTgwYmI3ZWIyY2U4NGM0YzkzZGEyY2QwYjNlZjg3NzEzNmI3Li4zODA1ZGNh
YTA0ZTc3MTQ5YzAxYTBhN2Q1MWJlZTUwZTY5OThiYzIzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L2N1c3RvbS9WOElEQktleUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5n
cy92OC9jdXN0b20vVjhJREJLZXlDdXN0b20uY3BwCkBAIC00OCw3ICs0OCw4IEBAIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiB0b1Y4KElEQktleSoga2V5KQogICAgICAgICByZXR1cm4gdjg6Ok51bWJl
cjo6TmV3KGtleS0+bnVtYmVyKCkpOwogICAgIGNhc2UgSURCS2V5OjpTdHJpbmdUeXBlOgogICAg
ICAgICByZXR1cm4gdjhTdHJpbmcoa2V5LT5zdHJpbmcoKSk7Ci0gICAgLy8gRklYTUU6IEltcGxl
bWVudCBkYXRlcy4KKyAgICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiB2
ODo6RGF0ZTo6TmV3KGtleS0+ZGF0ZSgpKTsKICAgICB9CiAKICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuY3BwIGIvV2ViQ29yZS9z
dG9yYWdlL0lEQktleS5jcHAKaW5kZXggZDQwMDM4MjI0YmRlYTBkNTI2MjFhNTVhZGJiMjU2YjA4
OWY5ZjUyYi4uZWIzOGQ4MWFjYTJlZTdlOTgwMTJiOWJmNDhjZTQwZTQyNTdkODM4ZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9zdG9yYWdlL0lEQktleS5jcHAKKysrIGIvV2ViQ29yZS9zdG9yYWdlL0lE
QktleS5jcHAKQEAgLTM4LDE4ICszOCw2IEBAIElEQktleTo6SURCS2V5KCkKIHsKIH0KIAotSURC
S2V5OjpJREJLZXkoZG91YmxlIG51bWJlcikKLSAgICA6IG1fdHlwZShOdW1iZXJUeXBlKQotICAg
ICwgbV9udW1iZXIobnVtYmVyKQotewotfQotCi1JREJLZXk6OklEQktleShjb25zdCBTdHJpbmcm
IHN0cmluZykKLSAgICA6IG1fdHlwZShTdHJpbmdUeXBlKQotICAgICwgbV9zdHJpbmcoc3RyaW5n
LmNyb3NzVGhyZWFkU3RyaW5nKCkpCi17Ci19Ci0KIElEQktleTo6fklEQktleSgpCiB7CiB9CkBA
IC01NywxNyArNDUsMTUgQEAgSURCS2V5Ojp+SURCS2V5KCkKIFBhc3NSZWZQdHI8SURCS2V5PiBJ
REJLZXk6OmZyb21RdWVyeShTUUxpdGVTdGF0ZW1lbnQmIHF1ZXJ5LCBpbnQgYmFzZUNvbHVtbikK
IHsKICAgICBpZiAoIXF1ZXJ5LmlzQ29sdW1uTnVsbChiYXNlQ29sdW1uKSkKLSAgICAgICAgcmV0
dXJuIElEQktleTo6Y3JlYXRlKHF1ZXJ5LmdldENvbHVtblRleHQoYmFzZUNvbHVtbikpOworICAg
ICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVTdHJpbmcocXVlcnkuZ2V0Q29sdW1uVGV4dChiYXNl
Q29sdW1uKSk7CiAKLSAgICBpZiAoIXF1ZXJ5LmlzQ29sdW1uTnVsbChiYXNlQ29sdW1uICsgMSkp
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1FOiBJbXBsZW1lbnQgZGF0
ZS4KLSAgICAgICAgcmV0dXJuIElEQktleTo6Y3JlYXRlKCk7Ci0gICAgfQorICAgIGlmICghcXVl
cnkuaXNDb2x1bW5OdWxsKGJhc2VDb2x1bW4gKyAxKSkKKyAgICAgICAgcmV0dXJuIElEQktleTo6
Y3JlYXRlRGF0ZShxdWVyeS5nZXRDb2x1bW5Eb3VibGUoYmFzZUNvbHVtbiArIDEpKTsKIAogICAg
IGlmICghcXVlcnkuaXNDb2x1bW5OdWxsKGJhc2VDb2x1bW4gKyAyKSkKLSAgICAgICAgcmV0dXJu
IElEQktleTo6Y3JlYXRlKHF1ZXJ5LmdldENvbHVtbkRvdWJsZShiYXNlQ29sdW1uICsgMikpOwor
ICAgICAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdW1iZXIocXVlcnkuZ2V0Q29sdW1uRG91Ymxl
KGJhc2VDb2x1bW4gKyAyKSk7CiAKLSAgICByZXR1cm4gSURCS2V5OjpjcmVhdGUoKTsgLy8gTnVs
bC4KKyAgICByZXR1cm4gSURCS2V5OjpjcmVhdGVOdWxsKCk7CiB9CiAKIGJvb2wgSURCS2V5Ojpp
c0VxdWFsKElEQktleSogb3RoZXIpCkBAIC03OCw3ICs2NCw4IEBAIGJvb2wgSURCS2V5Ojppc0Vx
dWFsKElEQktleSogb3RoZXIpCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIFN0cmlu
Z1R5cGU6CiAgICAgICAgIHJldHVybiBvdGhlci0+bV9zdHJpbmcgPT0gbV9zdHJpbmc7Ci0gICAg
Ly8gRklYTUU6IEltcGxlbWVudCBkYXRlcy4KKyAgICBjYXNlIERhdGVUeXBlOgorICAgICAgICBy
ZXR1cm4gb3RoZXItPm1fZGF0ZSA9PSBtX2RhdGU7CiAgICAgY2FzZSBOdW1iZXJUeXBlOgogICAg
ICAgICByZXR1cm4gb3RoZXItPm1fbnVtYmVyID09IG1fbnVtYmVyOwogICAgIGNhc2UgTnVsbFR5
cGU6CkBAIC05Niw3ICs4Myw4IEBAIFN0cmluZyBJREJLZXk6OndoZXJlU3ludGF4KFN0cmluZyBx
dWFsaWZpZWRUYWJsZU5hbWUpIGNvbnN0CiAgICAgICAgIHJldHVybiBxdWFsaWZpZWRUYWJsZU5h
bWUgKyAia2V5U3RyaW5nID0gPyAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleURh
dGUgSVMgTlVMTCAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciBJUyBO
VUxMICAiOwogICAgIGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgogICAgICAgICByZXR1cm4gcXVh
bGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZpZWRU
YWJsZU5hbWUgKyAia2V5RGF0ZSBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUg
KyAia2V5TnVtYmVyID0gPyAgIjsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IGRhdGUuCisgICAg
Y2FzZSBJREJLZXk6OkRhdGVUeXBlOgorICAgICAgICByZXR1cm4gcXVhbGlmaWVkVGFibGVOYW1l
ICsgImtleVN0cmluZyBJUyBOVUxMICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5
RGF0ZSA9ID8gIEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlOdW1iZXIgSVMgTlVM
TCAgIjsKICAgICBjYXNlIElEQktleTo6TnVsbFR5cGU6CiAgICAgICAgIHJldHVybiBxdWFsaWZp
ZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5nIElTIE5VTEwgIEFORCAgIiArIHF1YWxpZmllZFRhYmxl
TmFtZSArICJrZXlEYXRlIElTIE5VTEwgIEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJr
ZXlOdW1iZXIgSVMgTlVMTCAgIjsKICAgICB9CkBAIC0xMTAsNyArOTgsOCBAQCBTdHJpbmcgSURC
S2V5Ojpsb3dlckN1cnNvcldoZXJlRnJhZ21lbnQoU3RyaW5nIGNvbXBhcmlzb25PcGVyYXRvciwg
U3RyaW5nIHF1YWxpZgogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBTdHJpbmdUeXBl
OgogICAgICAgICByZXR1cm4gIj8gIiArIGNvbXBhcmlzb25PcGVyYXRvciArICIgIiArIHF1YWxp
ZmllZFRhYmxlTmFtZSArICJrZXlTdHJpbmcgIEFORCAgIjsKLSAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGRhdGUuCisgICAgY2FzZSBEYXRlVHlwZToKKyAgICAgICAgcmV0dXJuICIoPyAiICsgY29t
cGFyaXNvbk9wZXJhdG9yICsgIiAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleURhdGUgIE9S
IE5PVCAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMKSAgQU5EICAi
OwogICAgIGNhc2UgTnVtYmVyVHlwZToKICAgICAgICAgcmV0dXJuICIoPyAiICsgY29tcGFyaXNv
bk9wZXJhdG9yICsgIiAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciAgT1IgIE5P
VCAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleVN0cmluZyBJUyBOVUxMICBPUiAgTk9UICIg
KyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5RGF0ZSBJUyBOVUxMKSAgQU5EICAiOwogICAgIGNh
c2UgTnVsbFR5cGU6CkBAIC0xMjcsNyArMTE2LDggQEAgU3RyaW5nIElEQktleTo6dXBwZXJDdXJz
b3JXaGVyZUZyYWdtZW50KFN0cmluZyBjb21wYXJpc29uT3BlcmF0b3IsIFN0cmluZyBxdWFsaWYK
ICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgU3RyaW5nVHlwZToKICAgICAgICAgcmV0
dXJuICIoIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlTdHJpbmcgIiArIGNvbXBhcmlzb25P
cGVyYXRvciArICIgPyAgT1IgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5nIElT
IE5VTEwpICBBTkQgICI7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBkYXRlLgorICAgIGNhc2Ug
RGF0ZVR5cGU6CisgICAgICAgIHJldHVybiAiKCIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5
RGF0ZSAiICsgY29tcGFyaXNvbk9wZXJhdG9yICsgIiA/IE9SICIgKyBxdWFsaWZpZWRUYWJsZU5h
bWUgKyAia2V5RGF0ZSBJUyBOVUxMKSAgQU5EICAiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtl
eVN0cmluZyBJUyBOVUxMICBBTkQgICI7CiAgICAgY2FzZSBOdW1iZXJUeXBlOgogICAgICAgICBy
ZXR1cm4gIigiICsgcXVhbGlmaWVkVGFibGVOYW1lICsgImtleU51bWJlciAiICsgY29tcGFyaXNv
bk9wZXJhdG9yICsgIiA/IE9SICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5TnVtYmVyIElT
IE5VTEwpICBBTkQgICIgKyBxdWFsaWZpZWRUYWJsZU5hbWUgKyAia2V5U3RyaW5nIElTIE5VTEwg
IEFORCAgIiArIHF1YWxpZmllZFRhYmxlTmFtZSArICJrZXlEYXRlIElTIE5VTEwgIEFORCAgIjsK
ICAgICBjYXNlIE51bGxUeXBlOgpAQCAtMTQ2LDYgKzEzNiw5IEBAIGludCBJREJLZXk6OmJpbmQo
U1FMaXRlU3RhdGVtZW50JiBxdWVyeSwgaW50IGNvbHVtbikgY29uc3QKICAgICBjYXNlIElEQktl
eTo6U3RyaW5nVHlwZToKICAgICAgICAgcXVlcnkuYmluZFRleHQoY29sdW1uLCBtX3N0cmluZyk7
CiAgICAgICAgIHJldHVybiAxOworICAgIGNhc2UgSURCS2V5OjpEYXRlVHlwZToKKyAgICAgICAg
cXVlcnkuYmluZERvdWJsZShjb2x1bW4sIG1fZGF0ZSk7CisgICAgICAgIHJldHVybiAxOwogICAg
IGNhc2UgSURCS2V5OjpOdW1iZXJUeXBlOgogICAgICAgICBxdWVyeS5iaW5kRG91YmxlKGNvbHVt
biwgbV9udW1iZXIpOwogICAgICAgICByZXR1cm4gMTsKQEAgLTE2NSw2ICsxNTgsMTEgQEAgdm9p
ZCBJREJLZXk6OmJpbmRXaXRoTnVsbHMoU1FMaXRlU3RhdGVtZW50JiBxdWVyeSwgaW50IGJhc2VD
b2x1bW4pIGNvbnN0CiAgICAgICAgIHF1ZXJ5LmJpbmROdWxsKGJhc2VDb2x1bW4gKyAxKTsKICAg
ICAgICAgcXVlcnkuYmluZE51bGwoYmFzZUNvbHVtbiArIDIpOwogICAgICAgICBicmVhazsKKyAg
ICBjYXNlIElEQktleTo6RGF0ZVR5cGU6CisgICAgICAgIHF1ZXJ5LmJpbmROdWxsKGJhc2VDb2x1
bW4gKyAwKTsKKyAgICAgICAgcXVlcnkuYmluZERvdWJsZShiYXNlQ29sdW1uICsgMSwgbV9kYXRl
KTsKKyAgICAgICAgcXVlcnkuYmluZE51bGwoYmFzZUNvbHVtbiArIDIpOworICAgICAgICBicmVh
azsKICAgICBjYXNlIElEQktleTo6TnVtYmVyVHlwZToKICAgICAgICAgcXVlcnkuYmluZE51bGwo
YmFzZUNvbHVtbiArIDApOwogICAgICAgICBxdWVyeS5iaW5kTnVsbChiYXNlQ29sdW1uICsgMSk7
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3N0b3JhZ2UvSURCS2V5LmggYi9XZWJDb3JlL3N0b3JhZ2Uv
SURCS2V5LmgKaW5kZXggMDUxMzUxZmI4ZWY2Y2EzYWMzZDU1MTNlNDEwZDliOTY1ZjU0NzFlYS4u
OTExODc0M2ZjNGYzNzFjOTViMGFiZDExYzQyNzkwZTdmNmIzMDk2ZSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9zdG9yYWdlL0lEQktleS5oCisrKyBiL1dlYkNvcmUvc3RvcmFnZS9JREJLZXkuaApAQCAt
MzYsMjcgKzM2LDQ2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU1FMaXRlU3RhdGVt
ZW50OwogCi0vLyBGSVhNRTogQWRkIGRhdGVzLgogY2xhc3MgSURCS2V5IDogcHVibGljIFRocmVh
ZFNhZmVTaGFyZWQ8SURCS2V5PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8SURC
S2V5PiBjcmVhdGUoKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlTnVsbCgp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IElEQktleSgpKTsKKyAgICAgICAg
UmVmUHRyPElEQktleT4gaWRiS2V5KG5ldyBJREJLZXkoKSk7CisgICAgICAgIGlkYktleS0+bV90
eXBlID0gTnVsbFR5cGU7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOwogICAgIH0K
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZShkb3VibGUgbnVtYmVyKQorCisg
ICAgc3RhdGljIFBhc3NSZWZQdHI8SURCS2V5PiBjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCS2V5KG51bWJlcikpOworICAg
ICAgICBSZWZQdHI8SURCS2V5PiBpZGJLZXkobmV3IElEQktleSgpKTsKKyAgICAgICAgaWRiS2V5
LT5tX3R5cGUgPSBOdW1iZXJUeXBlOworICAgICAgICBpZGJLZXktPm1fbnVtYmVyID0gbnVtYmVy
OworICAgICAgICByZXR1cm4gaWRiS2V5LnJlbGVhc2UoKTsKICAgICB9Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SURCS2V5PiBjcmVhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCisKKyAgICBzdGF0
aWMgUGFzc1JlZlB0cjxJREJLZXk+IGNyZWF0ZVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykK
KyAgICB7CisgICAgICAgIFJlZlB0cjxJREJLZXk+IGlkYktleShuZXcgSURCS2V5KCkpOworICAg
ICAgICBpZGJLZXktPm1fdHlwZSA9IFN0cmluZ1R5cGU7CisgICAgICAgIGlkYktleS0+bV9zdHJp
bmcgPSBzdHJpbmc7CisgICAgICAgIHJldHVybiBpZGJLZXkucmVsZWFzZSgpOworICAgIH0KKwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPElEQktleT4gY3JlYXRlRGF0ZShkb3VibGUgZGF0ZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgSURCS2V5KHN0cmluZykpOworICAgICAg
ICBSZWZQdHI8SURCS2V5PiBpZGJLZXkobmV3IElEQktleSgpKTsKKyAgICAgICAgaWRiS2V5LT5t
X3R5cGUgPSBEYXRlVHlwZTsKKyAgICAgICAgaWRiS2V5LT5tX2RhdGUgPSBkYXRlOworICAgICAg
ICByZXR1cm4gaWRiS2V5LnJlbGVhc2UoKTsKICAgICB9CisKICAgICB+SURCS2V5KCk7CiAKICAg
ICAvLyBJbiBvcmRlciBvZiB0aGUgbGVhc3QgdG8gdGhlIGhpZ2hlc3QgcHJlY2VkZW50IGluIHRl
cm1zIG9mIHNvcnQgb3JkZXIuCiAgICAgZW51bSBUeXBlIHsKICAgICAgICAgTnVsbFR5cGUgPSAw
LCAvLyBGSVhNRTogUGhhc2Ugb3V0IHN1cHBvcnQgZm9yIG51bGwga2V5cy4KICAgICAgICAgU3Ry
aW5nVHlwZSwKKyAgICAgICAgRGF0ZVR5cGUsCiAgICAgICAgIE51bWJlclR5cGUKICAgICB9Owog
CkBAIC02OCw2ICs4NywxMiBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBtX3N0cmluZzsKICAg
ICB9CiAKKyAgICBkb3VibGUgZGF0ZSgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQobV90
eXBlID09IERhdGVUeXBlKTsKKyAgICAgICAgcmV0dXJuIG1fZGF0ZTsKKyAgICB9CisKICAgICBk
b3VibGUgbnVtYmVyKCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gTnVt
YmVyVHlwZSk7CkBAIC04OCwxMSArMTEzLDEwIEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBJ
REJLZXkoKTsKLSAgICBleHBsaWNpdCBJREJLZXkoZG91YmxlKTsKLSAgICBleHBsaWNpdCBJREJL
ZXkoY29uc3QgU3RyaW5nJik7CiAKICAgICBUeXBlIG1fdHlwZTsKICAgICBTdHJpbmcgbV9zdHJp
bmc7CisgICAgZG91YmxlIG1fZGF0ZTsKICAgICBkb3VibGUgbV9udW1iZXI7CiB9OwogCmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZwppbmRleCA1OTI1ODQ5MDA2OWI5ZWYwMzE2ZjE3MTY2YmJjZWEwMDEyN2E3MjhlLi4wOGMz
ODk4Y2FmN2I2YmNmM2I5MTAyZWI0Njk1Njc0MDNmMTRjMmY1IDEwMDY0NAotLS0gYS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxMC0xMi0xNyAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluZGV4
ZWREQjogU3VwcG9ydCBEYXRlIG9iamVjdHMgYXMga2V5cy4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxMTkzCisKKyAgICAgICAgVXBkYXRlIHRvIG1h
dGNoIHRoZSB1bmRlcmx5aW5nIFdlYkNvcmUgSURCS2V5IGNsYXNzOgorICAgICAgICBhZGQgdGhl
IERhdGVUeXBlLCBhZGQgY3JlYXRlKCkgZnVuY3Rpb25zIGZvciBlYWNoIHR5cGUsCisgICAgICAg
IGRlcHJlY2F0ZSB0aGUgcHVibGljIGNvbnN0cnVjdG9ycyAod2lsbCBiZSByZW1vdmVkIG9uY2UK
KyAgICAgICAgQ2hyb21pdW0gc2lkZSBpcyB1cGRhdGVkKS4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJJREJLZXkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5OjpXZWJJREJLZXkpOgorICAg
ICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2ViSURC
S2V5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCS2V5OjpjcmVhdGVTdHJpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJREJLZXk6OmNyZWF0ZURhdGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJREJLZXk6OmNyZWF0ZU51bWJlcik6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleTo6YXNz
aWduTnVsbCk6CisgICAgICAgIChXZWJLaXQ6OldlYklEQktleTo6YXNzaWduU3RyaW5nKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSURCS2V5Ojphc3NpZ25EYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSURCS2V5Ojphc3NpZ25OdW1iZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJLZXk6OmRh
dGUpOgorCiAyMDEwLTEyLTE2ICBKb2huIEtub3R0ZW5iZWx0ICA8amtub3R0ZW5AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEplcmVteSBPcmxvdy4KZGlmZiAtLWdpdCBhL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYklEQktleS5oCmluZGV4IGM3N2E1YjczMjIwYTFmZTg3YzQ4YWU3NDk1YjY4YjA5N2E4Zjcw
ZDEuLjU2MWFmMmZjY2E4YmFkMzg3YjA0ZTk5MGY1ZWIyODRlOTc0MzBhNjEgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViSURCS2V5LmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJJREJLZXkuaApAQCAtNDQsMTEgKzQ0LDE2IEBAIHB1YmxpYzoKICAgICB+V2Vi
SURCS2V5KCkgeyByZXNldCgpOyB9CiAKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJJREJLZXkg
Y3JlYXRlTnVsbCgpOworICAgIFdFQktJVF9BUEkgc3RhdGljIFdlYklEQktleSBjcmVhdGVTdHJp
bmcoY29uc3QgV2ViU3RyaW5nJik7CisgICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5IGNy
ZWF0ZURhdGUoZG91YmxlKTsKKyAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJJREJLZXkgY3JlYXRl
TnVtYmVyKGRvdWJsZSk7CiAgICAgV0VCS0lUX0FQSSBzdGF0aWMgV2ViSURCS2V5IGNyZWF0ZUlu
dmFsaWQoKTsKICAgICBXRUJLSVRfQVBJIHN0YXRpYyBXZWJJREJLZXkgY3JlYXRlRnJvbVZhbHVl
QW5kS2V5UGF0aChjb25zdCBXZWJTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBXZWJJREJL
ZXlQYXRoJik7CiAKLSAgICBXZWJJREJLZXkoY29uc3QgV2ViU3RyaW5nJiBzdHJpbmcpIHsgYXNz
aWduKHN0cmluZyk7IH0KLSAgICBXZWJJREJLZXkoZG91YmxlIG51bWJlcikgeyBhc3NpZ24obnVt
YmVyKTsgfQorICAgIC8vIEZJWE1FOiBSZW1vdmUgdGhlc2UgdHdvIGNvbnN0cnVjdG9ycyBhZnRl
ciBDaHJvbWl1bSBzaWRlIGlzIGRvbmUuCisgICAgV2ViSURCS2V5KGNvbnN0IFdlYlN0cmluZyYg
c3RyaW5nKSB7IGFzc2lnblN0cmluZyhzdHJpbmcpOyB9CisgICAgV2ViSURCS2V5KGRvdWJsZSBu
dW1iZXIpIHsgYXNzaWduTnVtYmVyKG51bWJlcik7IH0KKwogICAgIFdlYklEQktleShjb25zdCBX
ZWJJREJLZXkmIGUpIHsgYXNzaWduKGUpOyB9CiAgICAgV2ViSURCS2V5JiBvcGVyYXRvcj0oY29u
c3QgV2ViSURCS2V5JiBlKQogICAgIHsKQEAgLTU4LDE0ICs2MywxNiBAQCBwdWJsaWM6CiAKICAg
ICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGNvbnN0IFdlYklEQktleSYpOwogICAgIFdFQktJVF9B
UEkgdm9pZCBhc3NpZ25OdWxsKCk7Ci0gICAgV0VCS0lUX0FQSSB2b2lkIGFzc2lnbihjb25zdCBX
ZWJTdHJpbmcmKTsKLSAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduKGRvdWJsZSk7CisgICAgV0VC
S0lUX0FQSSB2b2lkIGFzc2lnblN0cmluZyhjb25zdCBXZWJTdHJpbmcmKTsKKyAgICBXRUJLSVRf
QVBJIHZvaWQgYXNzaWduRGF0ZShkb3VibGUpOworICAgIFdFQktJVF9BUEkgdm9pZCBhc3NpZ25O
dW1iZXIoZG91YmxlKTsKICAgICBXRUJLSVRfQVBJIHZvaWQgYXNzaWduSW52YWxpZCgpOwogICAg
IFdFQktJVF9BUEkgdm9pZCByZXNldCgpOwogCiAgICAgZW51bSBUeXBlIHsKICAgICAgICAgTnVs
bFR5cGUgPSAwLAogICAgICAgICBTdHJpbmdUeXBlLAorICAgICAgICBEYXRlVHlwZSwKICAgICAg
ICAgTnVtYmVyVHlwZSwKICAgICAgICAgLy8gVHlwZXMgbm90IGluIFdlYkNvcmU6OklEQktleToK
ICAgICAgICAgSW52YWxpZFR5cGUKQEAgLTczLDcgKzgwLDggQEAgcHVibGljOgogCiAgICAgV0VC
S0lUX0FQSSBUeXBlIHR5cGUoKSBjb25zdDsKICAgICBXRUJLSVRfQVBJIFdlYlN0cmluZyBzdHJp
bmcoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgU3RyaW5nVHlwZS4KLSAgICBXRUJLSVRfQVBJ
IGRvdWJsZSBudW1iZXIoKSBjb25zdDsgLy8gT25seSB2YWxpZCBmb3IgbnVtYmVyVHlwZS4KKyAg
ICBXRUJLSVRfQVBJIGRvdWJsZSBkYXRlKCkgY29uc3Q7IC8vIE9ubHkgdmFsaWQgZm9yIERhdGVU
eXBlLgorICAgIFdFQktJVF9BUEkgZG91YmxlIG51bWJlcigpIGNvbnN0OyAvLyBPbmx5IHZhbGlk
IGZvciBOdW1iZXJUeXBlLgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViSURC
S2V5KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+Jik7CmRpZmYgLS1naXQg
YS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBjZWVlZDhkYmM1ZmYyMjEy
YTI5OWFmNDkzMjE0ZWE5ODlmN2U4NTlhLi5iYTliNGU3ZTQ5MzE5ZGVlNmM3Zjc1MTYxZmJhZWU5
NTg0ZTBhODMyIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5n
RW51bXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5j
cHAKQEAgLTM2NSw2ICszNjUsNyBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlZp
ZXc6OlVzZXJTdHlsZUluamVjdEluU3Vic2VxdWVudERvY3VtZW50cywgSW5qZQogCiBDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklEQktleTo6TnVsbFR5cGUsIElEQktleTo6TnVsbFR5
cGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJJREJLZXk6OlN0cmluZ1R5cGUs
IElEQktleTo6U3RyaW5nVHlwZSk7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYklE
QktleTo6RGF0ZVR5cGUsIElEQktleTo6RGF0ZVR5cGUpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJJREJLZXk6Ok51bWJlclR5cGUsIElEQktleTo6TnVtYmVyVHlwZSk7CiAKICNp
ZiBFTkFCTEUoRklMRV9TWVNURU0pCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YklEQktleS5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQktleS5jcHAKaW5kZXggYjdh
N2RiODA4YzI0N2Y0YjU4YjkwZWRmODhmMDI3MTVlZWY4OTY1Yi4uN2U4NGRmMTdiMWI2MzI2M2Vk
NTlmZTU4OGYwZTUxZThjZDhiOGJkZCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJLZXkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCS2V5LmNwcApAQCAt
NDgsNiArNDgsMjcgQEAgV2ViSURCS2V5IFdlYklEQktleTo6Y3JlYXRlTnVsbCgpCiAgICAgcmV0
dXJuIGtleTsKIH0KIAorV2ViSURCS2V5IFdlYklEQktleTo6Y3JlYXRlU3RyaW5nKGNvbnN0IFdl
YlN0cmluZyYgc3RyaW5nKQoreworICAgIFdlYklEQktleSBrZXk7CisgICAga2V5LmFzc2lnblN0
cmluZyhzdHJpbmcpOworICAgIHJldHVybiBrZXk7Cit9CisKK1dlYklEQktleSBXZWJJREJLZXk6
OmNyZWF0ZURhdGUoZG91YmxlIGRhdGUpCit7CisgICAgV2ViSURCS2V5IGtleTsKKyAgICBrZXku
YXNzaWduRGF0ZShkYXRlKTsKKyAgICByZXR1cm4ga2V5OworfQorCitXZWJJREJLZXkgV2ViSURC
S2V5OjpjcmVhdGVOdW1iZXIoZG91YmxlIG51bWJlcikKK3sKKyAgICBXZWJJREJLZXkga2V5Owor
ICAgIGtleS5hc3NpZ25OdW1iZXIobnVtYmVyKTsKKyAgICByZXR1cm4ga2V5OworfQorCiBXZWJJ
REJLZXkgV2ViSURCS2V5OjpjcmVhdGVJbnZhbGlkKCkKIHsKICAgICBXZWJJREJLZXkga2V5OwpA
QCAtNjksMTcgKzkwLDIyIEBAIHZvaWQgV2ViSURCS2V5Ojphc3NpZ24oY29uc3QgV2ViSURCS2V5
JiB2YWx1ZSkKIAogdm9pZCBXZWJJREJLZXk6OmFzc2lnbk51bGwoKQogewotICAgIG1fcHJpdmF0
ZSA9IElEQktleTo6Y3JlYXRlKCk7CisgICAgbV9wcml2YXRlID0gSURCS2V5OjpjcmVhdGVOdWxs
KCk7Cit9CisKK3ZvaWQgV2ViSURCS2V5Ojphc3NpZ25TdHJpbmcoY29uc3QgV2ViU3RyaW5nJiBz
dHJpbmcpCit7CisgICAgbV9wcml2YXRlID0gSURCS2V5OjpjcmVhdGVTdHJpbmcoc3RyaW5nKTsK
IH0KIAotdm9pZCBXZWJJREJLZXk6OmFzc2lnbihjb25zdCBXZWJTdHJpbmcmIHN0cmluZykKK3Zv
aWQgV2ViSURCS2V5Ojphc3NpZ25EYXRlKGRvdWJsZSBkYXRlKQogewotICAgIG1fcHJpdmF0ZSA9
IElEQktleTo6Y3JlYXRlKHN0cmluZyk7CisgICAgbV9wcml2YXRlID0gSURCS2V5OjpjcmVhdGVE
YXRlKGRhdGUpOwogfQogCi12b2lkIFdlYklEQktleTo6YXNzaWduKGRvdWJsZSBudW1iZXIpCit2
b2lkIFdlYklEQktleTo6YXNzaWduTnVtYmVyKGRvdWJsZSBudW1iZXIpCiB7Ci0gICAgbV9wcml2
YXRlID0gSURCS2V5OjpjcmVhdGUobnVtYmVyKTsKKyAgICBtX3ByaXZhdGUgPSBJREJLZXk6OmNy
ZWF0ZU51bWJlcihudW1iZXIpOwogfQogCiB2b2lkIFdlYklEQktleTo6YXNzaWduSW52YWxpZCgp
CkBAIC0xMDQsNiArMTMwLDExIEBAIFdlYlN0cmluZyBXZWJJREJLZXk6OnN0cmluZygpIGNvbnN0
CiAgICAgcmV0dXJuIG1fcHJpdmF0ZS0+c3RyaW5nKCk7CiB9CiAKK2RvdWJsZSBXZWJJREJLZXk6
OmRhdGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3ByaXZhdGUtPmRhdGUoKTsKK30KKwogZG91
YmxlIFdlYklEQktleTo6bnVtYmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wcml2YXRlLT5u
dW1iZXIoKTsK
</data>
<flag name="review"
          id="67879"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>