<?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>153548</bug_id>
          
          <creation_ts>2016-01-27 09:34:36 -0800</creation_ts>
          <short_desc>Modern IDB: SQLite backend doesn&apos;t update index records as object records are added</short_desc>
          <delta_ts>2016-01-27 13:57:34 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</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>
          
          <blocked>149117</blocked>
    
    <blocked>153021</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1159298</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-27 09:34:36 -0800</bug_when>
    <thetext>Modern IDB: SQLite backend doesn&apos;t update index records as object records are added</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159367</commentid>
    <comment_count>1</comment_count>
      <attachid>270022</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-27 12:25:31 -0800</bug_when>
    <thetext>Created attachment 270022
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159368</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-27 12:27:48 -0800</bug_when>
    <thetext>Attachment 270022 did not pass style-queue:


ERROR: Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.h:96:  The parameter name &quot;key&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 1 in 9 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159378</commentid>
    <comment_count>3</comment_count>
      <attachid>270022</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2016-01-27 12:47:11 -0800</bug_when>
    <thetext>Comment on attachment 270022
Patch v1

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

r=me

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:840
&gt; +        IDBError error = uncheckedPutIndexRecord(info.objectStoreIdentifier(), info.identifier(), key, indexKey.asOneKey());

auto?

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:851
&gt; +        bool hasRecord;
&gt; +        IDBError error;

The scope of these is strange.

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:862
&gt; +        IDBError error = uncheckedPutIndexRecord(info.objectStoreIdentifier(), info.identifier(), key, indexKey);

auto?

&gt; Source/WebCore/Modules/indexeddb/server/SQLiteIDBBackingStore.cpp:1077
&gt; +    auto indexes = info.indexMap();

I don&apos;t think this needs its own variable name if we are only going to iterate its values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159394</commentid>
    <comment_count>4</comment_count>
      <attachid>270032</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-01-27 13:10:46 -0800</bug_when>
    <thetext>Created attachment 270032
Patch for landing

I think the scoping on those makes sense.

Fixed everything else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159407</commentid>
    <comment_count>5</comment_count>
      <attachid>270032</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-27 13:57:31 -0800</bug_when>
    <thetext>Comment on attachment 270032
Patch for landing

Clearing flags on attachment: 270032

Committed r195689: &lt;http://trac.webkit.org/changeset/195689&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1159410</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-27 13:57:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270022</attachid>
            <date>2016-01-27 12:25:31 -0800</date>
            <delta_ts>2016-01-27 13:10:46 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20274</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmMTFlYmJjLi4yZjc2ZjU0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTYtMDEt
MjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IFNRTGl0ZSBiYWNrZW5kIGRvZXNuJ3QgdXBkYXRlIGluZGV4IHJlY29yZHMgYXMgb2JqZWN0
IHJlY29yZHMgYXJlIGFkZGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUzNTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTYt
MDEtMjcgIFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4gYW5k
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm4uZmFibGV0QGNyZi5jYW5vbi5mcj4KIAogICAgICAgICBb
R1RLXSBQcm9ibGVtIHJ1bm5pbmcgcHJvbWlzZXMgY29kZSBpbiB3b3JrZXJzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYTZmMTM1Yi4uMzI5
MWJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNDY0LDExICs0NjQsOCBAQCBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItZmluaXNoZWQu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluY29uc2lzdGVuY3ku
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5o
dG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwg
WyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1vdmVybG9hZHMuaHRtbCBbIEZh
aWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXByZXYtbm8tZHVwbGljYXRlLmh0bWwg
WyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci1wcmltYXJ5LWtleS1vcmRlci5o
dG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcHJvcGVydGllcy5odG1s
IFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItcmV2ZXJzZS1idWcuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29yLXNraXAtZGVsZXRlZC5odG1sIFsg
RmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJzb3ItdXBkYXRlLmh0bWwgWyBGYWlsdXJl
IF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12YWx1ZS5odG1sIFsgRmFpbHVyZSBdCkBAIC01
MTUsNyArNTEyLDYgQEAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2luZGV4LWdldC1jb3VudC1i
YXNpYy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3Rv
cmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1jb250aW51ZS1mYWlsdXJlcy5odG1sIFsg
RmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vcmVxdWVzdC1yZWFkeXN0YXRlLmh0
bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvYXV0b2luY3JlbWVudC1p
bmRleGVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvY2xlYXIu
aHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRp
b24tb2JqZWN0c3RvcmUtb25seS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9t
b3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTE1
NDI1NS4uNTQyMGU1YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNi0wMS0yNyAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjog
U1FMaXRlIGJhY2tlbmQgZG9lc24ndCB1cGRhdGUgaW5kZXggcmVjb3JkcyBhcyBvYmplY3QgcmVj
b3JkcyBhcmUgYWRkZWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNTM1NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBObyBuZXcgdGVzdHMgKDQgbW9yZSB0ZXN0cyBwYXNzLCBvdGhlcnMgaW1wcm92ZSku
CisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6
CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJC
YWNraW5nU3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjppbml0aWFsaXplVk0pOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnZtKToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnbG9i
YWxPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRl
SURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRQdXRJbmRleEtleSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlSW5kZXhlc0ZvckFkZFJl
Y29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6YWRkUmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtUHV0T3JBZGQpOgorICAgICAgICAKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmg6CisKIDIw
MTYtMDEtMjYgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAgQ2Fs
bGluZyB2aWRlby5jb250cm9scz10cnVlIGR1cmluZyBhIHNjcnViIG9wZXJhdGlvbiBjYW5jZWxz
IHNjcnViLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IGYxZTg4MzguLmIwZjk3ZDMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3Rv
cmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFj
a2luZ1N0b3JlLmgKQEAgLTY3LDcgKzY3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSURCRXJy
b3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJ
ZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlzdHNJbk9iamVjdFN0
b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBib29sJiBr
ZXlFeGlzdHMpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKLSAgICB2aXJ0
dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJ
REJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKSA9IDA7CisgICAg
dmlydHVhbCBJREJFcnJvciBhZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IElE
QktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpID0gMDsKICAgICB2
aXJ0dWFsIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpID0gMDsK
ICAgICB2aXJ0dWFsIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5
cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpID0gMDsK
ICAgICB2aXJ0dWFsIElEQkVycm9yIGdldENvdW50KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWludDY0
X3QmIG91dENvdW50KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4
IGU5OTJjZTAuLjc0ZGQ2ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCkBA
IC0yNjYsMTcgKzI2NiwxNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0
ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwogICAgIHJldHVybiBJ
REJFcnJvcigpOwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFkZFJlY29y
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBj
b25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpCitJREJFcnJvciBNZW1vcnlJREJCYWNr
aW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0
aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiBvYmplY3RTdG9yZUluZm8s
IGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2
YWx1ZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRS
ZWNvcmQiKTsKIAotICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIEFTU0VS
VChvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpKTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXRy
YW5zYWN0aW9uKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246
OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0b3JlIHRyYW5zYWN0aW9u
IGZvdW5kIHRvIHB1dCByZWNvcmQiKSk7CiAKLSAgICBNZW1vcnlPYmplY3RTdG9yZSogb2JqZWN0
U3RvcmUgPSBtX29iamVjdFN0b3Jlc0J5SWRlbnRpZmllci5nZXQob2JqZWN0U3RvcmVJZGVudGlm
aWVyKTsKKyAgICBNZW1vcnlPYmplY3RTdG9yZSogb2JqZWN0U3RvcmUgPSBtX29iamVjdFN0b3Jl
c0J5SWRlbnRpZmllci5nZXQob2JqZWN0U3RvcmVJbmZvLmlkZW50aWZpZXIoKSk7CiAgICAgaWYg
KCFvYmplY3RTdG9yZSkKICAgICAgICAgcmV0dXJuIElEQkVycm9yKElEQkRhdGFiYXNlRXhjZXB0
aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qg
c3RvcmUgZm91bmQgdG8gcHV0IHJlY29yZCIpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9y
ZS5oCmluZGV4IDRiMTNhZjYuLjYzYTllYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRl
SW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wm
IGtleUV4aXN0cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVS
YW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBv
dmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFC
dWZmZXImIHZhbHVlKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGFkZFJl
Y29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVh
ZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJF
cnJvciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiwgVGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZhbHVlKSBvdmVycmlkZSBmaW5hbDsK
ICAgICB2aXJ0dWFsIElEQkVycm9yIGdldEluZGV4UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5kZXhlZERCOjpJbmRleFJlY29yZFR5
cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJlc3VsdCYgb3V0VmFsdWUpIG92ZXJy
aWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0Q291bnQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmLCB1aW50NjRfdCYgb3V0Q291bnQpIG92ZXJyaWRlIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcAppbmRleCA5MzY2MGNlLi5iMjU1NTFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRl
SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIklEQkRhdGFi
YXNlRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiSURCR2V0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSURC
S2V5RGF0YS5oIgorI2luY2x1ZGUgIklEQk9iamVjdFN0b3JlSW5mby5oIgogI2luY2x1ZGUgIklE
QlNlcmlhbGl6YXRpb24uaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkluZm8uaCIKICNpbmNs
dWRlICJJbmRleEtleS5oIgpAQCAtMTI2LDYgKzEyNywzMCBAQCBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6On5TUUxpdGVJREJCYWNraW5nU3RvcmUoKQogICAgIH0KIH0KIAorCit2b2lkIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6aW5pdGlhbGl6ZVZNKCkKK3sKKyAgICBpZiAoIW1fdm0pIHsKKyAgICAg
ICAgQVNTRVJUKCFtX2dsb2JhbE9iamVjdCk7CisgICAgICAgIG1fdm0gPSBWTTo6Y3JlYXRlKCk7
CisKKyAgICAgICAgSlNMb2NrSG9sZGVyIGxvY2tlcihtX3ZtLmdldCgpKTsKKyAgICAgICAgbV9n
bG9iYWxPYmplY3Quc2V0KCptX3ZtLCBKU0dsb2JhbE9iamVjdDo6Y3JlYXRlKCptX3ZtLCBKU0ds
b2JhbE9iamVjdDo6Y3JlYXRlU3RydWN0dXJlKCptX3ZtLCBqc051bGwoKSkpKTsKKyAgICB9Cit9
CisKK1ZNJiBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnZtKCkKK3sKKyAgICBpbml0aWFsaXplVk0o
KTsKKyAgICByZXR1cm4gKm1fdm07Cit9CisKK0pTR2xvYmFsT2JqZWN0JiBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6Omdsb2JhbE9iamVjdCgpCit7CisgICAgaW5pdGlhbGl6ZVZNKCk7CisgICAgcmV0
dXJuICoqbV9nbG9iYWxPYmplY3Q7Cit9CisKIHN0YXRpYyBib29sIGNyZWF0ZU9yTWlncmF0ZVJl
Y29yZHNUYWJsZUlmTmVjZXNzYXJ5KFNRTGl0ZURhdGFiYXNlJiBkYXRhYmFzZSkKIHsKICAgICBT
dHJpbmcgY3VycmVudFNjaGVtYTsKQEAgLTcyNywxNSArNzUyLDcgQEAgSURCRXJyb3IgU1FMaXRl
SURCQmFja2luZ1N0b3JlOjpjcmVhdGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWMKICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25F
cnJvciwgQVNDSUlMaXRlcmFsKCJVbmFibGUgdG8gcG9wdWxhdGUgaW5kZXhlcyBpbiBkYXRhYmFz
ZSIpIH07CiAgICAgfQogCi0gICAgaWYgKCFtX3ZtKSB7Ci0gICAgICAgIEFTU0VSVCghbV9nbG9i
YWxPYmplY3QpOwotICAgICAgICBtX3ZtID0gVk06OmNyZWF0ZSgpOwotICAgIH0KLQotICAgIEpT
TG9ja0hvbGRlciBsb2NrZXIobV92bS5nZXQoKSk7Ci0KLSAgICBpZiAoIW1fZ2xvYmFsT2JqZWN0
KQotICAgICAgICBtX2dsb2JhbE9iamVjdC5zZXQoKm1fdm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVh
dGUoKm1fdm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKm1fdm0sIGpzTnVsbCgp
KSkpOworICAgIEpTTG9ja0hvbGRlciBsb2NrZXIodm0oKSk7CiAKICAgICB3aGlsZSAoIWN1cnNv
ci0+Y3VycmVudEtleSgpLmlzTnVsbCgpKSB7CiAgICAgICAgIGF1dG8mIGtleSA9IGN1cnNvci0+
Y3VycmVudEtleSgpOwpAQCAtODE3LDYgKzgzNCw0MCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OnVuY2hlY2tlZEhhc0luZGV4UmVjb3JkKGludDY0X3QgaW5kZXhJRCwgY29uc3Qg
SQogICAgIHJldHVybiB7IH07CiB9CiAKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
dW5jaGVja2VkUHV0SW5kZXhLZXkoY29uc3QgSURCSW5kZXhJbmZvJiBpbmZvLCBjb25zdCBJREJL
ZXlEYXRhJiBrZXksIGNvbnN0IEluZGV4S2V5JiBpbmRleEtleSkKK3sKKyAgICBpZiAoIWluZm8u
bXVsdGlFbnRyeSgpKSB7CisgICAgICAgIElEQkVycm9yIGVycm9yID0gdW5jaGVja2VkUHV0SW5k
ZXhSZWNvcmQoaW5mby5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwgaW5mby5pZGVudGlmaWVyKCks
IGtleSwgaW5kZXhLZXkuYXNPbmVLZXkoKSk7CisgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkp
IHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxlIHRvIHB1dCBpbmRleCByZWNvcmQgZm9y
IG5ld2x5IGNyZWF0ZWQgaW5kZXgiKTsKKyAgICAgICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIFZlY3RvcjxJREJLZXlEYXRhPiBpbmRleEtleXMgPSBpbmRleEtl
eS5tdWx0aUVudHJ5KCk7CisKKyAgICBpZiAoaW5mby51bmlxdWUoKSkgeworICAgICAgICBib29s
IGhhc1JlY29yZDsKKyAgICAgICAgSURCRXJyb3IgZXJyb3I7CisgICAgICAgIGZvciAoYXV0byYg
aW5kZXhLZXkgOiBpbmRleEtleXMpIHsKKyAgICAgICAgICAgIGVycm9yID0gdW5jaGVja2VkSGFz
SW5kZXhSZWNvcmQoaW5mby5pZGVudGlmaWVyKCksIGluZGV4S2V5LCBoYXNSZWNvcmQpOworICAg
ICAgICAgICAgaWYgKCFlcnJvci5pc051bGwoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gZXJy
b3I7CisgICAgICAgICAgICBpZiAoaGFzUmVjb3JkKQorICAgICAgICAgICAgICAgIHJldHVybiBJ
REJFcnJvcihJREJEYXRhYmFzZUV4Y2VwdGlvbjo6Q29uc3RyYWludEVycm9yKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIGZvciAoYXV0byYgaW5kZXhLZXkgOiBpbmRleEtleXMpIHsKKyAgICAg
ICAgSURCRXJyb3IgZXJyb3IgPSB1bmNoZWNrZWRQdXRJbmRleFJlY29yZChpbmZvLm9iamVjdFN0
b3JlSWRlbnRpZmllcigpLCBpbmZvLmlkZW50aWZpZXIoKSwga2V5LCBpbmRleEtleSk7CisgICAg
ICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5hYmxl
IHRvIHB1dCBpbmRleCByZWNvcmQgZm9yIG5ld2x5IGNyZWF0ZWQgaW5kZXgiKTsKKyAgICAgICAg
ICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB7IH07Cit9
CiAKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkUHV0SW5kZXhSZWNv
cmQoaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNvcmU6
OklEQktleURhdGEmIGtleVZhbHVlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiBpbmRleEtl
eSkKIHsKQEAgLTEwMTIsOSArMTA2Myw0MCBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwogICAg
IHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0ZXJh
bCgiQ3VycmVudGx5IHVuYWJsZSB0byBkZWxldGUgYWxsIHJlY29yZHMgaW4gYSBtdWx0aS1rZXkg
cmFuZ2UiKSB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29y
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgVGhy
ZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojp1cGRhdGVJbmRleGVzRm9yQWRkUmVjb3JkKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5m
bywgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFs
dWUpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSgpKTsKKworICAgIGF1dG8ganNWYWx1
ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKCpnbG9iYWxPYmplY3QoKS5nbG9i
YWxFeGVjKCksIHZhbHVlKTsKKyAgICBpZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgpKQor
ICAgICAgICByZXR1cm4geyB9OworCisgICAgSURCRXJyb3IgZXJyb3I7CisgICAgVmVjdG9yPHN0
ZDo6cGFpcjx1aW50NjRfdCwgSW5kZXhLZXk+PiBjaGFuZ2VkSW5kZXhSZWNvcmRzOworCisgICAg
YXV0byBpbmRleGVzID0gaW5mby5pbmRleE1hcCgpOworICAgIGZvciAoYXV0byYgaW5kZXggOiBp
bmRleGVzLnZhbHVlcygpKSB7CisgICAgICAgIEluZGV4S2V5IGluZGV4S2V5OworICAgICAgICBn
ZW5lcmF0ZUluZGV4S2V5Rm9yVmFsdWUoKm1fZ2xvYmFsT2JqZWN0LT5nbG9iYWxFeGVjKCksIGlu
ZGV4LCBqc1ZhbHVlLCBpbmRleEtleSk7CisKKyAgICAgICAgaWYgKGluZGV4S2V5LmlzTnVsbCgp
KQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgZXJyb3IgPSB1bmNoZWNrZWRQdXRJ
bmRleEtleShpbmRleCwga2V5LCBpbmRleEtleSk7CisgICAgICAgIGlmICghZXJyb3IuaXNOdWxs
KCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBjaGFuZ2VkSW5kZXhSZWNvcmRzLmFw
cGVuZChzdGQ6Om1ha2VfcGFpcihpbmRleC5pZGVudGlmaWVyKCksIGluZGV4S2V5KSk7CisgICAg
fQorCisgICAgLy8gRklYTUU6IElmIGFueSBvZiB0aGUgaW5kZXggcHV0cyBmYWlsZWQsIHJldmVy
dCB0aGUgb25lcyB0aGF0IHdlbnQgdGhyb3VnaCAoY2hhbmdlZEluZGV4UmVjb3JkcykuCisKKyAg
ICByZXR1cm4gZXJyb3I7Cit9CisKK0lEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YWRk
UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIG9iamVjdFN0b3JlSW5mbywgY29uc3QgSURCS2V5
RGF0YSYga2V5RGF0YSwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKQogewotICAg
IExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCAtIGtleSAl
cywgb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgp
LmRhdGEoKSwgb2JqZWN0U3RvcmVJRCk7CisgICAgTE9HKEluZGV4ZWREQiwgIlNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6YWRkUmVjb3JkIC0ga2V5ICVzLCBvYmplY3Qgc3RvcmUgJSIgUFJJdTY0LCBr
ZXlEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBvYmplY3RTdG9yZUluZm8uaWRl
bnRpZmllcigpKTsKIAogICAgIEFTU0VSVChtX3NxbGl0ZURCKTsKICAgICBBU1NFUlQobV9zcWxp
dGVEQi0+aXNPcGVuKCkpOwpAQCAtMTAzOCwxNiArMTEyMCwyMCBAQCBJREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aQogICAgIHsKICAgICAgICAgU1FMaXRlU3RhdGVtZW50IHNxbCgqbV9zcWxpdGVEQiwg
QVNDSUlMaXRlcmFsKCJJTlNFUlQgSU5UTyBSZWNvcmRzIFZBTFVFUyAoPywgQ0FTVCg/IEFTIFRF
WFQpLCA/KTsiKSk7CiAgICAgICAgIGlmIChzcWwucHJlcGFyZSgpICE9IFNRTElURV9PSwotICAg
ICAgICAgICAgfHwgc3FsLmJpbmRJbnQ2NCgxLCBvYmplY3RTdG9yZUlEKSAhPSBTUUxJVEVfT0sK
KyAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQoMSwgb2JqZWN0U3RvcmVJbmZvLmlkZW50aWZp
ZXIoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEJsb2IoMiwga2V5QnVm
ZmVyLT5kYXRhKCksIGtleUJ1ZmZlci0+c2l6ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAg
IHx8IHNxbC5iaW5kQmxvYigzLCB2YWx1ZS5kYXRhKCktPmRhdGEoKSwgdmFsdWUuZGF0YSgpLT5z
aXplKCkpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3FsLnN0ZXAoKSAhPSBTUUxJVEVf
RE9ORSkgewotICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3QgcHV0IHJlY29yZCBmb3Ig
b2JqZWN0IHN0b3JlICUiIFBSSWk2NCAiIGluIFJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgb2Jq
ZWN0U3RvcmVJRCwgbV9zcWxpdGVEQi0+bGFzdEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJv
ck1zZygpKTsKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHB1dCByZWNvcmQgZm9y
IG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiBpbiBSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG9i
amVjdFN0b3JlSW5mby5pZGVudGlmaWVyKCksIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3Nx
bGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CiAgICAgICAgICAgICByZXR1cm4geyBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBzdG9yZSBy
ZWNvcmQgaW4gb2JqZWN0IHN0b3JlIikgfTsKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biB7IH07CisgICAgYXV0byBlcnJvciA9IHVwZGF0ZUluZGV4ZXNGb3JBZGRSZWNvcmQob2JqZWN0
U3RvcmVJbmZvLCBrZXlEYXRhLCB2YWx1ZSk7CisKKyAgICAvLyBGSVhNRTogSWYgdGhlcmUgd2Fz
IGFuIGVycm9yIGluZGV4aW5nIHRoaXMgcmVjb3JkLCByZW1vdmUgaXQuCisKKyAgICByZXR1cm4g
ZXJyb3I7CiB9CiAKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlELCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlLCBUaHJlYWRT
YWZlRGF0YUJ1ZmZlciYgcmVzdWx0VmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgK
aW5kZXggM2QyMTNmMC4uZGUwZGQwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaApA
QCAtMzgsNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEluZGV4S2V5
OwogY2xhc3MgU1FMaXRlRGF0YWJhc2U7CiAKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewpAQCAtNjIs
NyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RTdG9yZShjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYga2V5RXhpc3Rz
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlIGZp
bmFsOwotICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFs
dWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJP
YmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFC
dWZmZXImIHZhbHVlKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGdldFJl
Y29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBU
aHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6OkluZGV4UmVjb3JkVHlwZSwgY29uc3Qg
SURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRWYWx1ZSkgb3ZlcnJpZGUgZmluYWw7
CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRDb3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIHVpbnQ2
NF90JiBvdXRDb3VudCkgb3ZlcnJpZGUgZmluYWw7CkBAIC04NywxMCArODgsMTYgQEAgcHJpdmF0
ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBleHRyYWN0RXhpc3RpbmdE
YXRhYmFzZUluZm8oKTsKIAogICAgIElEQkVycm9yIGRlbGV0ZVJlY29yZChTUUxpdGVJREJUcmFu
c2FjdGlvbiYsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5RGF0YSYpOworICAg
IElEQkVycm9yIHVuY2hlY2tlZFB1dEluZGV4S2V5KGNvbnN0IElEQkluZGV4SW5mbyYsIGNvbnN0
IElEQktleURhdGEmIGtleVZhbHVlLCBjb25zdCBJbmRleEtleSYpOwogICAgIElEQkVycm9yIHVu
Y2hlY2tlZFB1dEluZGV4UmVjb3JkKGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgaW50NjRfdCBpbmRl
eElELCBjb25zdCBJREJLZXlEYXRhJiBrZXlWYWx1ZSwgY29uc3QgSURCS2V5RGF0YSYgaW5kZXhL
ZXkpOwogICAgIElEQkVycm9yIHVuY2hlY2tlZEhhc0luZGV4UmVjb3JkKGludDY0X3QgaW5kZXhJ
RCwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGhhc1JlY29yZCk7CiAgICAgSURCRXJyb3IgdW5j
aGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yZUlELCB1aW50NjRf
dCYgb3V0VmFsdWUpOwogICAgIElEQkVycm9yIHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVl
KGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgdWludDY0X3QgdmFsdWUpOworICAgIElEQkVycm9yIHVw
ZGF0ZUluZGV4ZXNGb3JBZGRSZWNvcmQoY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3Qg
SURCS2V5RGF0YSYga2V5LCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpOworCisg
ICAgSlNDOjpWTSYgdm0oKTsKKyAgICBKU0M6OkpTR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qo
KTsKKyAgICB2b2lkIGluaXRpYWxpemVWTSgpOwogCiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVy
IG1faWRlbnRpZmllcjsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2Rh
dGFiYXNlSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDgwYzIxYTAuLjgwNThk
ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNzkxLDcgKzc5MSw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50
aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9
IG1fYmFja2luZ1N0b3JlLT5hZGRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIHVzZWRLZXksIGluamVjdGVkUmVjb3JkVmFsdWUuZGF0YSgpID8gaW5q
ZWN0ZWRSZWNvcmRWYWx1ZSA6IG9yaWdpbmFsUmVjb3JkVmFsdWUpOworICAgIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPmFkZFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsICpvYmplY3RTdG9y
ZUluZm8sIHVzZWRLZXksIGluamVjdGVkUmVjb3JkVmFsdWUuZGF0YSgpID8gaW5qZWN0ZWRSZWNv
cmRWYWx1ZSA6IG9yaWdpbmFsUmVjb3JkVmFsdWUpOwogICAgIGlmICghZXJyb3IuaXNOdWxsKCkp
IHsKICAgICAgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNh
bGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRLZXkpKTsKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVj
dFN0b3JlSW5mby5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5oCmluZGV4IGQ2N2IyY2MuLjI0OThkODUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0
U3RvcmVJbmZvLmgKQEAgLTU3LDYgKzU3LDcgQEAgcHVibGljOgogICAgIElEQkluZGV4SW5mbyog
aW5mb0ZvckV4aXN0aW5nSW5kZXgoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAogICAgIFZlY3RvcjxT
dHJpbmc+IGluZGV4TmFtZXMoKSBjb25zdDsKKyAgICBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBJ
REJJbmRleEluZm8+JiBpbmRleE1hcCgpIGNvbnN0IHsgcmV0dXJuIG1faW5kZXhNYXA7IH0KIAog
ICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3RyaW5nJiBpbmRleE5hbWUpOwogICAgIHZvaWQg
ZGVsZXRlSW5kZXgodWludDY0X3QgaW5kZXhJZGVudGlmaWVyKTsK
</data>
<flag name="review"
          id="294882"
          type_id="1"
          status="+"
          setter="achristensen"
    />
    <flag name="commit-queue"
          id="294883"
          type_id="3"
          status="-"
          setter="achristensen"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>270032</attachid>
            <date>2016-01-27 13:10:46 -0800</date>
            <delta_ts>2016-01-27 13:57:31 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20301</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNTZiZTAzLi45OThhYjAxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTYtMDEt
MjcgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IFNRTGl0ZSBiYWNrZW5kIGRvZXNuJ3QgdXBkYXRlIGluZGV4IHJlY29yZHMgYXMgb2JqZWN0
IHJlY29yZHMgYXJlIGFkZGVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUzNTQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxleCBDaHJpc3RlbnNl
bi4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy13azEvVGVzdEV4cGVjdGF0aW9uczoKKworMjAx
Ni0wMS0yNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgTGF5
b3V0VGVzdCBmYXN0L2xvYWRlci9zdGF0ZW9iamVjdHMvcmVwbGFjZXN0YXRlLWZyZXF1ZW5jeS1p
ZnJhbWUuaHRtbCBpcyBmbGFreSBvbiBFbCBDYXAsIGFsd2F5cyB0aW1lcyBvdXQgb24gWW9zZW1p
dGUuCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTM1
NTEKICAgICAgICAgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2sxL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYTZmMTM1Yi4uMzI5MWJiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjLXdrMS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy13azEvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDY0LDExICs0NjQsOCBAQCBzdG9yYWdlL2lu
ZGV4ZWRkYi9jdXJzb3ItZmluaXNoZWQuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLWluY29uc2lzdGVuY3kuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvY3Vyc29yLWluZGV4LWRlbGV0ZS5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3Ita2V5LW9yZGVyLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1vdmVybG9hZHMuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vyc29y
LXByZXYtbm8tZHVwbGljYXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1
cnNvci1wcmltYXJ5LWtleS1vcmRlci5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRk
Yi9jdXJzb3ItcHJvcGVydGllcy5odG1sIFsgRmFpbHVyZSBdCi1zdG9yYWdlL2luZGV4ZWRkYi9j
dXJzb3ItcmV2ZXJzZS1idWcuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvY3Vy
c29yLXNraXAtZGVsZXRlZC5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9jdXJz
b3ItdXBkYXRlLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2UvaW5kZXhlZGRiL2N1cnNvci12YWx1
ZS5odG1sIFsgRmFpbHVyZSBdCkBAIC01MTUsNyArNTEyLDYgQEAgc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2luZGV4LWdldC1jb3VudC1iYXNpYy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vb2JqZWN0c3RvcmUtY3Vyc29yLWFkdmFuY2UtZmFpbHVyZXMuaHRtbCBb
IEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL29iamVjdHN0b3JlLWN1cnNvci1j
b250aW51ZS1mYWlsdXJlcy5odG1sIFsgRmFpbHVyZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vcmVxdWVzdC1yZWFkeXN0YXRlLmh0bWwgWyBGYWlsdXJlIF0KLXN0b3JhZ2UvaW5kZXhlZGRi
L21vemlsbGEvYXV0b2luY3JlbWVudC1pbmRleGVzLmh0bWwgWyBGYWlsdXJlIF0KIHN0b3JhZ2Uv
aW5kZXhlZGRiL21vemlsbGEvY2xlYXIuaHRtbCBbIEZhaWx1cmUgXQogc3RvcmFnZS9pbmRleGVk
ZGIvbW96aWxsYS9jdXJzb3ItbXV0YXRpb24tb2JqZWN0c3RvcmUtb25seS5odG1sIFsgRmFpbHVy
ZSBdCiBzdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxhL2N1cnNvci1tdXRhdGlvbi5odG1sIFsgRmFp
bHVyZSBdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggY2Y1ZDczNi4uYzlkNzQyZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDMzIEBACisyMDE2LTAxLTI3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
KworICAgICAgICBNb2Rlcm4gSURCOiBTUUxpdGUgYmFja2VuZCBkb2Vzbid0IHVwZGF0ZSBpbmRl
eCByZWNvcmRzIGFzIG9iamVjdCByZWNvcmRzIGFyZSBhZGRlZC4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MzU0OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IEFsZXggQ2hyaXN0ZW5zZW4uCisKKyAgICAgICAgTm8gbmV3IHRlc3RzICg0IG1vcmUgdGVz
dHMgcGFzcywgb3RoZXJzIGltcHJvdmUpLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6aW5pdGlhbGl6ZVZNKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FM
aXRlSURCQmFja2luZ1N0b3JlOjp2bSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2xvYmFsT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkUHV0SW5k
ZXhLZXkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnVwZGF0ZUluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybVB1
dE9yQWRkKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
Qk9iamVjdFN0b3JlSW5mby5oOgorCiAyMDE2LTAxLTI3ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3
ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBBUEkgdG8gYWNjZXNzIGNsb3NlZCBzaGFkb3dSb290
IGluIEluamVjdGVkQnVuZGxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKaW5kZXggZjFlODgzOC4uYjBmOTdk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJCYWNraW5nU3RvcmUuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBJREJFcnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50
NjRfdCBpbmRleElkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0
c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0
YSYsIGJvb2wmIGtleUV4aXN0cykgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZGVsZXRlUmFu
Z2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJikgPSAw
OwotICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUp
ID0gMDsKKyAgICB2aXJ0dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZv
JiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkg
PSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIFRocmVhZFNhZmVEYXRhQnVmZmVyJiBvdXRW
YWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6Oklu
ZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSkgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0Q291bnQoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmLCB1aW50NjRfdCYgb3V0Q291bnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggZTk5MmNlMC4uNzRkZDZmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5jcHAKQEAgLTI2NiwxNyArMjY2LDE3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6ZGVsZXRlUmFuZ2UoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjCiAg
ICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6YWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEm
IGtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkKK0lEQkVycm9yIE1l
bW9yeUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mIG9iamVj
dFN0b3JlSW5mbywgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3QgVGhyZWFkU2FmZURh
dGFCdWZmZXImIHZhbHVlKQogewogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFkZFJlY29yZCIpOwogCi0gICAgQVNTRVJUKG9iamVjdFN0b3JlSWRlbnRpZmllcik7
CisgICAgQVNTRVJUKG9iamVjdFN0b3JlSW5mby5pZGVudGlmaWVyKCkpOwogCiAgICAgYXV0byB0
cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLmdldCh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwog
ICAgIGlmICghdHJhbnNhY3Rpb24pCiAgICAgICAgIHJldHVybiBJREJFcnJvcihJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIk5vIGJhY2tpbmcgc3RvcmUg
dHJhbnNhY3Rpb24gZm91bmQgdG8gcHV0IHJlY29yZCIpKTsKIAotICAgIE1lbW9yeU9iamVjdFN0
b3JlKiBvYmplY3RTdG9yZSA9IG1fb2JqZWN0U3RvcmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RT
dG9yZUlkZW50aWZpZXIpOworICAgIE1lbW9yeU9iamVjdFN0b3JlKiBvYmplY3RTdG9yZSA9IG1f
b2JqZWN0U3RvcmVzQnlJZGVudGlmaWVyLmdldChvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigp
KTsKICAgICBpZiAoIW9iamVjdFN0b3JlKQogICAgICAgICByZXR1cm4gSURCRXJyb3IoSURCRGF0
YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0
b3JlIG9iamVjdCBzdG9yZSBmb3VuZCB0byBwdXQgcmVjb3JkIikpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURC
QmFja2luZ1N0b3JlLmgKaW5kZXggNGIxM2FmNi4uNjNhOWVhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJF
cnJvciBkZWxldGVJbmRleChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRl
eElkZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhp
c3RzSW5PYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9u
SWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlE
YXRhJiwgYm9vbCYga2V5RXhpc3RzKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVy
cm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgSURCRXJyb3IgYWRkUmVjb3Jk
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJl
YWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgSURC
RXJyb3IgYWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBjb25zdCBJREJLZXlEYXRhJiwg
Y29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKSBvdmVycmlkZSBmaW5hbDsKICAgICB2
aXJ0dWFsIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJy
aWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0SW5kZXhSZWNvcmQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVj
dFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVyLCBJbmRleGVkREI6Oklu
ZGV4UmVjb3JkVHlwZSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgSURCR2V0UmVzdWx0JiBvdXRW
YWx1ZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRDb3VudChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCBpbmRleElkZW50aWZpZXIsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYsIHVpbnQ2NF90JiBvdXRDb3VudCkgb3ZlcnJpZGUgZmluYWw7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURC
QmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDkzNjYwY2UuLmVkODJkOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJC
YWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiSURCRGF0YWJhc2VFeGNlcHRpb24uaCIKICNpbmNsdWRlICJJREJHZXRSZXN1bHQuaCIKICNp
bmNsdWRlICJJREJLZXlEYXRhLmgiCisjaW5jbHVkZSAiSURCT2JqZWN0U3RvcmVJbmZvLmgiCiAj
aW5jbHVkZSAiSURCU2VyaWFsaXphdGlvbi5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5m
by5oIgogI2luY2x1ZGUgIkluZGV4S2V5LmgiCkBAIC0xMjYsNiArMTI3LDMwIEBAIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6flNRTGl0ZUlEQkJhY2tpbmdTdG9yZSgpCiAgICAgfQogfQogCisKK3Zv
aWQgU1FMaXRlSURCQmFja2luZ1N0b3JlOjppbml0aWFsaXplVk0oKQoreworICAgIGlmICghbV92
bSkgeworICAgICAgICBBU1NFUlQoIW1fZ2xvYmFsT2JqZWN0KTsKKyAgICAgICAgbV92bSA9IFZN
OjpjcmVhdGUoKTsKKworICAgICAgICBKU0xvY2tIb2xkZXIgbG9ja2VyKG1fdm0uZ2V0KCkpOwor
ICAgICAgICBtX2dsb2JhbE9iamVjdC5zZXQoKm1fdm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGUo
Km1fdm0sIEpTR2xvYmFsT2JqZWN0OjpjcmVhdGVTdHJ1Y3R1cmUoKm1fdm0sIGpzTnVsbCgpKSkp
OworICAgIH0KK30KKworVk0mIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dm0oKQoreworICAgIGlu
aXRpYWxpemVWTSgpOworICAgIHJldHVybiAqbV92bTsKK30KKworSlNHbG9iYWxPYmplY3QmIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2xvYmFsT2JqZWN0KCkKK3sKKyAgICBpbml0aWFsaXplVk0o
KTsKKyAgICByZXR1cm4gKiptX2dsb2JhbE9iamVjdDsKK30KKwogc3RhdGljIGJvb2wgY3JlYXRl
T3JNaWdyYXRlUmVjb3Jkc1RhYmxlSWZOZWNlc3NhcnkoU1FMaXRlRGF0YWJhc2UmIGRhdGFiYXNl
KQogewogICAgIFN0cmluZyBjdXJyZW50U2NoZW1hOwpAQCAtNzI3LDE1ICs3NTIsNyBAQCBJREJF
cnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmNyZWF0ZUluZGV4KGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhYwogICAgICAgICByZXR1cm4geyBJREJEYXRhYmFzZUV4Y2VwdGlv
bjo6VW5rbm93bkVycm9yLCBBU0NJSUxpdGVyYWwoIlVuYWJsZSB0byBwb3B1bGF0ZSBpbmRleGVz
IGluIGRhdGFiYXNlIikgfTsKICAgICB9CiAKLSAgICBpZiAoIW1fdm0pIHsKLSAgICAgICAgQVNT
RVJUKCFtX2dsb2JhbE9iamVjdCk7Ci0gICAgICAgIG1fdm0gPSBWTTo6Y3JlYXRlKCk7Ci0gICAg
fQotCi0gICAgSlNMb2NrSG9sZGVyIGxvY2tlcihtX3ZtLmdldCgpKTsKLQotICAgIGlmICghbV9n
bG9iYWxPYmplY3QpCi0gICAgICAgIG1fZ2xvYmFsT2JqZWN0LnNldCgqbV92bSwgSlNHbG9iYWxP
YmplY3Q6OmNyZWF0ZSgqbV92bSwgSlNHbG9iYWxPYmplY3Q6OmNyZWF0ZVN0cnVjdHVyZSgqbV92
bSwganNOdWxsKCkpKSk7CisgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSgpKTsKIAogICAgIHdo
aWxlICghY3Vyc29yLT5jdXJyZW50S2V5KCkuaXNOdWxsKCkpIHsKICAgICAgICAgYXV0byYga2V5
ID0gY3Vyc29yLT5jdXJyZW50S2V5KCk7CkBAIC04MTcsNiArODM0LDQwIEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkSGFzSW5kZXhSZWNvcmQoaW50NjRfdCBpbmRl
eElELCBjb25zdCBJCiAgICAgcmV0dXJuIHsgfTsKIH0KIAorSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjp1bmNoZWNrZWRQdXRJbmRleEtleShjb25zdCBJREJJbmRleEluZm8mIGluZm8s
IGNvbnN0IElEQktleURhdGEmIGtleSwgY29uc3QgSW5kZXhLZXkmIGluZGV4S2V5KQoreworICAg
IGlmICghaW5mby5tdWx0aUVudHJ5KCkpIHsKKyAgICAgICAgYXV0byBlcnJvciA9IHVuY2hlY2tl
ZFB1dEluZGV4UmVjb3JkKGluZm8ub2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIGluZm8uaWRlbnRp
ZmllcigpLCBrZXksIGluZGV4S2V5LmFzT25lS2V5KCkpOworICAgICAgICBpZiAoIWVycm9yLmlz
TnVsbCgpKSB7CisgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBwdXQgaW5kZXggcmVj
b3JkIGZvciBuZXdseSBjcmVhdGVkIGluZGV4Iik7CisgICAgICAgICAgICByZXR1cm4gZXJyb3I7
CisgICAgICAgIH0KKyAgICB9CisKKyAgICBWZWN0b3I8SURCS2V5RGF0YT4gaW5kZXhLZXlzID0g
aW5kZXhLZXkubXVsdGlFbnRyeSgpOworCisgICAgaWYgKGluZm8udW5pcXVlKCkpIHsKKyAgICAg
ICAgYm9vbCBoYXNSZWNvcmQ7CisgICAgICAgIElEQkVycm9yIGVycm9yOworICAgICAgICBmb3Ig
KGF1dG8mIGluZGV4S2V5IDogaW5kZXhLZXlzKSB7CisgICAgICAgICAgICBlcnJvciA9IHVuY2hl
Y2tlZEhhc0luZGV4UmVjb3JkKGluZm8uaWRlbnRpZmllcigpLCBpbmRleEtleSwgaGFzUmVjb3Jk
KTsKKyAgICAgICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIGVycm9yOworICAgICAgICAgICAgaWYgKGhhc1JlY29yZCkKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gSURCRXJyb3IoSURCRGF0YWJhc2VFeGNlcHRpb246OkNvbnN0cmFpbnRFcnJvcik7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmb3IgKGF1dG8mIGluZGV4S2V5IDogaW5kZXhLZXlzKSB7
CisgICAgICAgIGF1dG8gZXJyb3IgPSB1bmNoZWNrZWRQdXRJbmRleFJlY29yZChpbmZvLm9iamVj
dFN0b3JlSWRlbnRpZmllcigpLCBpbmZvLmlkZW50aWZpZXIoKSwga2V5LCBpbmRleEtleSk7Cisg
ICAgICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKKyAgICAgICAgICAgIExPR19FUlJPUigiVW5h
YmxlIHRvIHB1dCBpbmRleCByZWNvcmQgZm9yIG5ld2x5IGNyZWF0ZWQgaW5kZXgiKTsKKyAgICAg
ICAgICAgIHJldHVybiBlcnJvcjsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiB7IH07
Cit9CiAKIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkUHV0SW5kZXhS
ZWNvcmQoaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNv
cmU6OklEQktleURhdGEmIGtleVZhbHVlLCBjb25zdCBXZWJDb3JlOjpJREJLZXlEYXRhJiBpbmRl
eEtleSkKIHsKQEAgLTEwMTIsOSArMTA2MywzOSBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhYwog
ICAgIHJldHVybiB7IElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVbmtub3duRXJyb3IsIEFTQ0lJTGl0
ZXJhbCgiQ3VycmVudGx5IHVuYWJsZSB0byBkZWxldGUgYWxsIHJlY29yZHMgaW4gYSBtdWx0aS1r
ZXkgcmFuZ2UiKSB9OwogfQogCi1JREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJl
Y29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5RGF0YSwgY29uc3Qg
VGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKQorSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0
b3JlOjp1cGRhdGVJbmRleGVzRm9yQWRkUmVjb3JkKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYg
aW5mbywgY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYg
dmFsdWUpCit7CisgICAgSlNMb2NrSG9sZGVyIGxvY2tlcih2bSgpKTsKKworICAgIGF1dG8ganNW
YWx1ZSA9IGRlc2VyaWFsaXplSURCVmFsdWVEYXRhVG9KU1ZhbHVlKCpnbG9iYWxPYmplY3QoKS5n
bG9iYWxFeGVjKCksIHZhbHVlKTsKKyAgICBpZiAoanNWYWx1ZS5pc1VuZGVmaW5lZE9yTnVsbCgp
KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgSURCRXJyb3IgZXJyb3I7CisgICAgVmVjdG9y
PHN0ZDo6cGFpcjx1aW50NjRfdCwgSW5kZXhLZXk+PiBjaGFuZ2VkSW5kZXhSZWNvcmRzOworCisg
ICAgZm9yIChhdXRvJiBpbmRleCA6IGluZm8uaW5kZXhNYXAoKS52YWx1ZXMoKSkgeworICAgICAg
ICBJbmRleEtleSBpbmRleEtleTsKKyAgICAgICAgZ2VuZXJhdGVJbmRleEtleUZvclZhbHVlKCpt
X2dsb2JhbE9iamVjdC0+Z2xvYmFsRXhlYygpLCBpbmRleCwganNWYWx1ZSwgaW5kZXhLZXkpOwor
CisgICAgICAgIGlmIChpbmRleEtleS5pc051bGwoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
CisgICAgICAgIGVycm9yID0gdW5jaGVja2VkUHV0SW5kZXhLZXkoaW5kZXgsIGtleSwgaW5kZXhL
ZXkpOworICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKQorICAgICAgICAgICAgYnJlYWs7CisK
KyAgICAgICAgY2hhbmdlZEluZGV4UmVjb3Jkcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoaW5kZXgu
aWRlbnRpZmllcigpLCBpbmRleEtleSkpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBJZiBhbnkg
b2YgdGhlIGluZGV4IHB1dHMgZmFpbGVkLCByZXZlcnQgdGhlIG9uZXMgdGhhdCB3ZW50IHRocm91
Z2ggKGNoYW5nZWRJbmRleFJlY29yZHMpLgorCisgICAgcmV0dXJuIGVycm9yOworfQorCitJREJF
cnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZv
JiBvYmplY3RTdG9yZUluZm8sIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IFRocmVh
ZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkKIHsKLSAgICBMT0coSW5kZXhlZERCLCAiU1FMaXRlSURC
QmFja2luZ1N0b3JlOjphZGRSZWNvcmQgLSBrZXkgJXMsIG9iamVjdCBzdG9yZSAlIiBQUkl1NjQs
IGtleURhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG9iamVjdFN0b3JlSUQpOwor
ICAgIExPRyhJbmRleGVkREIsICJTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFkZFJlY29yZCAtIGtl
eSAlcywgb2JqZWN0IHN0b3JlICUiIFBSSXU2NCwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCkudXRm
OCgpLmRhdGEoKSwgb2JqZWN0U3RvcmVJbmZvLmlkZW50aWZpZXIoKSk7CiAKICAgICBBU1NFUlQo
bV9zcWxpdGVEQik7CiAgICAgQVNTRVJUKG1fc3FsaXRlREItPmlzT3BlbigpKTsKQEAgLTEwMzgs
MTYgKzExMTksMjAgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGkKICAgICB7CiAgICAgICAgIFNR
TGl0ZVN0YXRlbWVudCBzcWwoKm1fc3FsaXRlREIsIEFTQ0lJTGl0ZXJhbCgiSU5TRVJUIElOVE8g
UmVjb3JkcyBWQUxVRVMgKD8sIENBU1QoPyBBUyBURVhUKSwgPyk7IikpOwogICAgICAgICBpZiAo
c3FsLnByZXBhcmUoKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8IHNxbC5iaW5kSW50NjQo
MSwgb2JqZWN0U3RvcmVJRCkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzcWwuYmluZElu
dDY0KDEsIG9iamVjdFN0b3JlSW5mby5pZGVudGlmaWVyKCkpICE9IFNRTElURV9PSwogICAgICAg
ICAgICAgfHwgc3FsLmJpbmRCbG9iKDIsIGtleUJ1ZmZlci0+ZGF0YSgpLCBrZXlCdWZmZXItPnNp
emUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzcWwuYmluZEJsb2IoMywgdmFsdWUu
ZGF0YSgpLT5kYXRhKCksIHZhbHVlLmRhdGEoKS0+c2l6ZSgpKSAhPSBTUUxJVEVfT0sKICAgICAg
ICAgICAgIHx8IHNxbC5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKLSAgICAgICAgICAgIExPR19F
UlJPUigiQ291bGQgbm90IHB1dCByZWNvcmQgZm9yIG9iamVjdCBzdG9yZSAlIiBQUklpNjQgIiBp
biBSZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG9iamVjdFN0b3JlSUQsIG1fc3FsaXRlREItPmxh
c3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICBMT0df
RVJST1IoIkNvdWxkIG5vdCBwdXQgcmVjb3JkIGZvciBvYmplY3Qgc3RvcmUgJSIgUFJJaTY0ICIg
aW4gUmVjb3JkcyB0YWJsZSAoJWkpIC0gJXMiLCBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigp
LCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwog
ICAgICAgICAgICAgcmV0dXJuIHsgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwg
QVNDSUlMaXRlcmFsKCJVbmFibGUgdG8gc3RvcmUgcmVjb3JkIGluIG9iamVjdCBzdG9yZSIpIH07
CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4geyB9OworICAgIGF1dG8gZXJyb3IgPSB1
cGRhdGVJbmRleGVzRm9yQWRkUmVjb3JkKG9iamVjdFN0b3JlSW5mbywga2V5RGF0YSwgdmFsdWUp
OworCisgICAgLy8gRklYTUU6IElmIHRoZXJlIHdhcyBhbiBlcnJvciBpbmRleGluZyB0aGlzIHJl
Y29yZCwgcmVtb3ZlIGl0LgorCisgICAgcmV0dXJuIGVycm9yOwogfQogCiBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJRCwgY29uc3QgSURC
S2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgVGhyZWFkU2FmZURhdGFCdWZmZXImIHJlc3VsdFZhbHVl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDNkMjEzZjAuLmQxOTVhZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJ
REJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitjbGFzcyBJbmRleEtleTsKIGNsYXNzIFNRTGl0ZURhdGFiYXNlOwog
CiBuYW1lc3BhY2UgSURCU2VydmVyIHsKQEAgLTYyLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgSURCRXJyb3IgZGVsZXRlSW5kZXgoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWlu
dDY0X3QgaW5kZXhJZGVudGlmaWVyKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVy
cm9yIGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0
cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29u
c3QgSURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCBJREJFcnJvciBkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25z
dCBJREJLZXlSYW5nZURhdGEmKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIElEQkVycm9y
IGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwg
Y29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKSBvdmVycmlkZSBmaW5hbDsKKyAgICB2
aXJ0dWFsIElEQkVycm9yIGFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgY29uc3QgSURC
S2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZSkgb3ZlcnJpZGUgZmlu
YWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgVGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZh
bHVlKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGdldEluZGV4UmVjb3Jk
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVpbnQ2NF90IGluZGV4SWRlbnRpZmllciwgSW5k
ZXhlZERCOjpJbmRleFJlY29yZFR5cGUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIElEQkdldFJl
c3VsdCYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0
Q291bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIs
IHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgdWludDY0X3QgaW5kZXhJZGVudGlmaWVy
LCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCB1aW50NjRfdCYgb3V0Q291bnQpIG92ZXJyaWRlIGZp
bmFsOwpAQCAtODcsMTAgKzg4LDE2IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPElE
QkRhdGFiYXNlSW5mbz4gZXh0cmFjdEV4aXN0aW5nRGF0YWJhc2VJbmZvKCk7CiAKICAgICBJREJF
cnJvciBkZWxldGVSZWNvcmQoU1FMaXRlSURCVHJhbnNhY3Rpb24mLCBpbnQ2NF90IG9iamVjdFN0
b3JlSUQsIGNvbnN0IElEQktleURhdGEmKTsKKyAgICBJREJFcnJvciB1bmNoZWNrZWRQdXRJbmRl
eEtleShjb25zdCBJREJJbmRleEluZm8mLCBjb25zdCBJREJLZXlEYXRhJiBrZXlWYWx1ZSwgY29u
c3QgSW5kZXhLZXkmKTsKICAgICBJREJFcnJvciB1bmNoZWNrZWRQdXRJbmRleFJlY29yZChpbnQ2
NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgSURCS2V5RGF0YSYga2V5
VmFsdWUsIGNvbnN0IElEQktleURhdGEmIGluZGV4S2V5KTsKICAgICBJREJFcnJvciB1bmNoZWNr
ZWRIYXNJbmRleFJlY29yZChpbnQ2NF90IGluZGV4SUQsIGNvbnN0IElEQktleURhdGEmLCBib29s
JiBoYXNSZWNvcmQpOwogICAgIElEQkVycm9yIHVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVl
KGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgdWludDY0X3QmIG91dFZhbHVlKTsKICAgICBJREJFcnJv
ciB1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3JlSUQsIHVp
bnQ2NF90IHZhbHVlKTsKKyAgICBJREJFcnJvciB1cGRhdGVJbmRleGVzRm9yQWRkUmVjb3JkKGNv
bnN0IElEQk9iamVjdFN0b3JlSW5mbyYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRT
YWZlRGF0YUJ1ZmZlciYgdmFsdWUpOworCisgICAgSlNDOjpWTSYgdm0oKTsKKyAgICBKU0M6OkpT
R2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QoKTsKKyAgICB2b2lkIGluaXRpYWxpemVWTSgpOwog
CiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8SURCRGF0YWJhc2VJbmZvPiBtX2RhdGFiYXNlSW5mbzsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCmluZGV4IDgwYzIxYTAuLjgwNThkZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNw
cApAQCAtNzkxLDcgKzc5MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRP
ckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hZGRSZWNvcmQodHJh
bnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIHVzZWRLZXksIGluamVj
dGVkUmVjb3JkVmFsdWUuZGF0YSgpID8gaW5qZWN0ZWRSZWNvcmRWYWx1ZSA6IG9yaWdpbmFsUmVj
b3JkVmFsdWUpOworICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFkZFJlY29yZCh0cmFuc2Fj
dGlvbklkZW50aWZpZXIsICpvYmplY3RTdG9yZUluZm8sIHVzZWRLZXksIGluamVjdGVkUmVjb3Jk
VmFsdWUuZGF0YSgpID8gaW5qZWN0ZWRSZWNvcmRWYWx1ZSA6IG9yaWdpbmFsUmVjb3JkVmFsdWUp
OwogICAgIGlmICghZXJyb3IuaXNOdWxsKCkpIHsKICAgICAgICAgbV9zZXJ2ZXIucG9zdERhdGFi
YXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFi
YXNlOjpkaWRQZXJmb3JtUHV0T3JBZGQsIGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHVzZWRL
ZXkpKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5oCmluZGV4IGQ2N2Iy
Y2MuLjI0OThkODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmgKQEAgLTU3LDYgKzU3LDcgQEAg
cHVibGljOgogICAgIElEQkluZGV4SW5mbyogaW5mb0ZvckV4aXN0aW5nSW5kZXgoY29uc3QgU3Ry
aW5nJiBuYW1lKTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IGluZGV4TmFtZXMoKSBjb25zdDsKKyAg
ICBjb25zdCBIYXNoTWFwPHVpbnQ2NF90LCBJREJJbmRleEluZm8+JiBpbmRleE1hcCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5kZXhNYXA7IH0KIAogICAgIHZvaWQgZGVsZXRlSW5kZXgoY29uc3QgU3Ry
aW5nJiBpbmRleE5hbWUpOwogICAgIHZvaWQgZGVsZXRlSW5kZXgodWludDY0X3QgaW5kZXhJZGVu
dGlmaWVyKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>