<?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>150784</bug_id>
          
          <creation_ts>2015-11-01 14:51:10 -0800</creation_ts>
          <short_desc>Modern IDB: IBDObjectStore.delete() support</short_desc>
          <delta_ts>2015-11-02 17:09:11 -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>Other</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>
          <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>1138386</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-01 14:51:10 -0800</bug_when>
    <thetext>Modern IDB: IBDObjectStore.delete() support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138757</commentid>
    <comment_count>1</comment_count>
      <attachid>264645</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-02 16:23:33 -0800</bug_when>
    <thetext>Created attachment 264645
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138764</commentid>
    <comment_count>2</comment_count>
      <attachid>264645</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-11-02 16:47:23 -0800</bug_when>
    <thetext>Comment on attachment 264645
Patch v1

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

&gt; LayoutTests/storage/indexeddb/modern/idbobjectstore-delete-failures-expected.txt:4
&gt; +Failed to delete record from object store that has been deleted

Try deleting after clearing, and deleting before adding.  It probably won&apos;t be that exciting, but I think it&apos;s worth testing.  Also, deleting in a version change transaction.  Also, aborting delete transactions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138776</commentid>
    <comment_count>3</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-02 17:09:11 -0800</bug_when>
    <thetext>https://trac.webkit.org/changeset/191928</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264645</attachid>
            <date>2015-11-02 16:23:33 -0800</date>
            <delta_ts>2015-11-02 16:47:23 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>47817</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZjczZDc2Li5kYWY2NzMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTcgQEAKIDIwMTUtMTEt
MDIgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IElCRE9iamVjdFN0b3JlLmRlbGV0ZSgpIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3ODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1kZWxldGUtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0
b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9pZGJvYmplY3RzdG9yZS1kZWxldGUtMS5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVs
ZXRlLWZhaWx1cmVzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy5odG1sOiBBZGRlZC4K
KworMjAxNS0xMS0wMiAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAg
ICAgUkVHUkVTU0lPTiAoMTkxODk4KSBpZGJvYmplY3RzdG9yZS0qLWZhaWx1cmVzLmh0bWwgdGVz
dHMgZmFpbCBpbiBSZWxlYXNlIGJ1aWxkcy4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MDgxNQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3JlLWRl
bGV0ZS0xLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m
YzM0MzFiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
bW9kZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS0xLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDI1
IEBACitUaGlzIHRlc3QgZXhlcmNpc2VzIHZhcmlvdXMgdXNlcyBvZiBJREJPYmplY3RTdG9yZS5k
ZWxldGUoKQorSW5pdGlhbCB1cGdyYWRlIG5lZWRlZDogT2xkIHZlcnNpb24gLSAwIE5ldyB2ZXJz
aW9uIC0gMQorQ291bnQgaXMgMTEzCitJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFu
c2FjdGlvbiBjb21wbGV0ZQorRGVsZXRlZCAiTW9uIEphbiAwMyAyMDAwIDE2OjAwOjAwIEdNVC0w
ODAwIChQU1QpIiwgYW5kIHRoZXJlIHNob3VsZCBub3cgYmUgMSBsZXNzIHRoaW5ncyB0b3RhbC4K
K0NvdW50IGlzIDExMgorRGVsZXRlZCAiTW9uIEphbiAwMyAyMDAwIDE2OjAwOjAwIEdNVC0wODAw
IChQU1QpIiwgYW5kIHRoZXJlIHNob3VsZCBub3cgYmUgMCBsZXNzIHRoaW5ncyB0b3RhbC4KK0Nv
dW50IGlzIDExMgorRGVsZXRlZCAiYmFseWhvbyIsIGFuZCB0aGVyZSBzaG91bGQgbm93IGJlIDAg
bGVzcyB0aGluZ3MgdG90YWwuCitDb3VudCBpcyAxMTIKK0RlbGV0ZWQgIltvYmplY3QgSURCS2V5
UmFuZ2VdIiwgYW5kIHRoZXJlIHNob3VsZCBub3cgYmUgMCBsZXNzIHRoaW5ncyB0b3RhbC4KK0Nv
dW50IGlzIDExMgorRGVsZXRlZCAiW29iamVjdCBJREJLZXlSYW5nZV0iLCBhbmQgdGhlcmUgc2hv
dWxkIG5vdyBiZSAxIGxlc3MgdGhpbmdzIHRvdGFsLgorQ291bnQgaXMgMTExCitEZWxldGVkICJb
b2JqZWN0IElEQktleVJhbmdlXSIsIGFuZCB0aGVyZSBzaG91bGQgbm93IGJlIDEgbGVzcyB0aGlu
Z3MgdG90YWwuCitDb3VudCBpcyAxMTAKK0RlbGV0ZWQgIltvYmplY3QgSURCS2V5UmFuZ2VdIiwg
YW5kIHRoZXJlIHNob3VsZCBub3cgYmUgNSBsZXNzIHRoaW5ncyB0b3RhbC4KK0NvdW50IGlzIDEw
NQorRGVsZXRlZCAiW29iamVjdCBJREJLZXlSYW5nZV0iLCBhbmQgdGhlcmUgc2hvdWxkIG5vdyBi
ZSA5OCBsZXNzIHRoaW5ncyB0b3RhbC4KK0NvdW50IGlzIDcKK0RlbGV0ZWQgIltvYmplY3QgSURC
S2V5UmFuZ2VdIiwgYW5kIHRoZXJlIHNob3VsZCBub3cgYmUgMyBsZXNzIHRoaW5ncyB0b3RhbC4K
K0NvdW50IGlzIDQKK3JlYWR3cml0ZSB0cmFuc2FjdGlvbiBjb21wbGV0ZQorRG9uZQorCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3Rv
cmUtZGVsZXRlLTEuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9p
ZGJvYmplY3RzdG9yZS1kZWxldGUtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAuLjdlYzk5OTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLTEuaHRtbApAQCAtMCwwICsxLDEz
NSBAQAorVGhpcyB0ZXN0IGV4ZXJjaXNlcyB2YXJpb3VzIHVzZXMgb2YgSURCT2JqZWN0U3RvcmUu
ZGVsZXRlKCk8YnI+Cis8ZGl2IGlkPSJsb2dnZXIiPjwvZGl2PgorPHNjcmlwdD4KKworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQorewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dnZXIiKS5pbm5lckhUTUwgKz0gbWVzc2Fn
ZSArICI8YnI+IjsKK30KKworZnVuY3Rpb24gbG9nQ291bnQoKQoreworICAgIHZhciByZXEgPSBv
YmplY3RTdG9yZS5jb3VudCgpOworICAgIHJlcS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsgCisg
ICAgICAgIGxvZygiQ291bnQgaXMgIiArIHJlcS5yZXN1bHQpOworICAgIH0KK30KKworZnVuY3Rp
b24gZG9uZSgpCit7CisgICAgbG9nKCJEb25lIik7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwordmFyIGNyZWF0ZVJlcXVl
c3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIklEQk9iamVjdFN0b3JlRGVsZXRlMURhdGFiYXNl
IiwgMSk7Cit2YXIgZGF0YWJhc2U7Cit2YXIgb2JqZWN0U3RvcmU7CisKK3ZhciBkYXRlMSA9IG5l
dyBEYXRlKCIxOTk5LTEyLTI4VDIzOjAwOjAwIik7Cit2YXIgZGF0ZTIgPSBuZXcgRGF0ZSgiMTk5
OS0xMi0yOVQyMzowMDowMCIpOwordmFyIGRhdGUzID0gbmV3IERhdGUoIjE5OTktMTItMzBUMjM6
MDA6MDAiKTsKK3ZhciBkYXRlNCA9IG5ldyBEYXRlKCIxOTk5LTEyLTMxVDIzOjAwOjAwIik7Cit2
YXIgZGF0ZTUgPSBuZXcgRGF0ZSgiMjAwMC0wMS0wMVQwMDowMDowMCIpOwordmFyIGRhdGU2ID0g
bmV3IERhdGUoIjIwMDAtMDEtMDJUMDA6MDA6MDAiKTsKK3ZhciBkYXRlNyA9IG5ldyBEYXRlKCIy
MDAwLTAxLTAzVDAwOjAwOjAwIik7Cit2YXIgZGF0ZTggPSBuZXcgRGF0ZSgiMjAwMC0wMS0wNFQw
MDowMDowMCIpOworCitjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2
ZW50KSB7CisgICAgbG9nKCJJbml0aWFsIHVwZ3JhZGUgbmVlZGVkOiBPbGQgdmVyc2lvbiAtICIg
KyBldmVudC5vbGRWZXJzaW9uICsgIiBOZXcgdmVyc2lvbiAtICIgKyBldmVudC5uZXdWZXJzaW9u
KTsKKworICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSBjcmVhdGVSZXF1ZXN0LnRyYW5zYWN0
aW9uOworICAgIGRhdGFiYXNlID0gZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICBvYmplY3RTdG9y
ZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICAK
KyAgICBvYmplY3RTdG9yZS5wdXQoImJvbyIsICJmb28iKTsKKyAgICBvYmplY3RTdG9yZS5wdXQo
ImJvcCIsICJmb3AiKTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImJvcSIsICJmb3EiKTsKKyAgICBv
YmplY3RTdG9yZS5wdXQoImJvciIsICJmb3IiKTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImJvcyIs
ICJmb3MiKTsKKyAgICAKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAg
ICBvYmplY3RTdG9yZS5wdXQoIm51bWJlciAiICsgaSwgaSk7CisKKyAgICBvYmplY3RTdG9yZS5w
dXQoImRhdGUgMSIsIGRhdGUxKTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImRhdGUgMiIsIGRhdGUy
KTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImRhdGUgMyIsIGRhdGUzKTsKKyAgICBvYmplY3RTdG9y
ZS5wdXQoImRhdGUgNCIsIGRhdGU0KTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImRhdGUgNSIsIGRh
dGU1KTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImRhdGUgNiIsIGRhdGU2KTsKKyAgICBvYmplY3RT
dG9yZS5wdXQoImRhdGUgNyIsIGRhdGU3KTsKKyAgICBvYmplY3RTdG9yZS5wdXQoImRhdGUgOCIs
IGRhdGU4KTsKKworICAgIGxvZ0NvdW50KCk7CisKKyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25h
Ym9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygiSW5pdGlhbCB1cGdyYWRlIHZl
cnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBlY3RlZCBhYm9ydCIpOworICAgICAgICBkb25l
KCk7CisgICAgfQorCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlv
bihldmVudCkgeworICAgICAgICBsb2coIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRy
YW5zYWN0aW9uIGNvbXBsZXRlIik7CisgICAgICAgIGNvbnRpbnVlVGVzdDEoKTsKKyAgICB9CisK
KyAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgIGxvZygiSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gdW5leHBl
Y3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0
aW9uIGNvbnRpbnVlVGVzdDEoKQoreyAgIAorICAgIHZhciB0cmFuc2FjdGlvbiA9IGRhdGFiYXNl
LnRyYW5zYWN0aW9uKCJUZXN0T2JqZWN0U3RvcmUiLCAicmVhZHdyaXRlIik7CisgICAgb2JqZWN0
U3RvcmUgPSB0cmFuc2FjdGlvbi5vYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CisKKyAg
ICAvLyBUaGUgcGFpcnMgb2YgdGhpbmdzIGluIHRoZSBhcnJheSBhcmUgdGhlIHRoaW5ncyB0byBk
ZWxldGUgZm9sbG93ZWQgYnkgdGhlIGV4cGVjdGVkIGRlY3JlYXNlIGluIHRoZSB0b3RhbCBjb3Vu
dCBvZiBvYmplY3RzLgorICAgIHZhciB0aGluZ3NUb0RlbGV0ZSA9IFsKKyAgICAgICAgZGF0ZTgs
IDEsCisgICAgICAgIGRhdGU4LCAwLCAKKyAgICAgICAgImJhbHlob28iLCAwLCAKKyAgICAgICAg
SURCS2V5UmFuZ2UuYm91bmQoZGF0ZTYsIGRhdGU3LCB0cnVlLCB0cnVlKSwgMCwKKyAgICAgICAg
SURCS2V5UmFuZ2UuYm91bmQoZGF0ZTYsIGRhdGU3LCB0cnVlKSwgMSwKKyAgICAgICAgSURCS2V5
UmFuZ2UuYm91bmQoZGF0ZTUsIGRhdGU2LCBmYWxzZSwgdHJ1ZSksIDEsCisgICAgICAgIElEQktl
eVJhbmdlLmJvdW5kKGRhdGUxLCBkYXRlNiksIDUsCisgICAgICAgIElEQktleVJhbmdlLmJvdW5k
KDEsIDk4KSwgOTgsIAorICAgICAgICBJREJLZXlSYW5nZS5ib3VuZCgiZm9vIiwgImZvcyIsIHRy
dWUsIHRydWUpLCAzCisgICAgXTsKKyAgICB2YXIgY3VycmVudFRoaW5nID0gMDsKKyAgICAKKyAg
ICB2YXIgcnVuRGVsZXRlVGVzdHMgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBpZiAoIXRo
aW5nc1RvRGVsZXRlW2N1cnJlbnRUaGluZ10pCisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IAorICAgICAgICBvYmplY3RTdG9yZS5kZWxldGUodGhpbmdzVG9EZWxldGVbY3VycmVudFRoaW5n
XSkub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBsb2coIkRlbGV0ZWQgXCIi
ICsgdGhpbmdzVG9EZWxldGVbY3VycmVudFRoaW5nXSArICJcIiwgYW5kIHRoZXJlIHNob3VsZCBu
b3cgYmUgIiArIHRoaW5nc1RvRGVsZXRlW2N1cnJlbnRUaGluZyArIDFdICsgIiBsZXNzIHRoaW5n
cyB0b3RhbC4iKTsKKyAgICAgICAgICAgIGxvZ0NvdW50KCk7CisgICAgICAgICAgICBjdXJyZW50
VGhpbmcgKz0gMjsKKyAgICAgICAgICAgIHJ1bkRlbGV0ZVRlc3RzKCk7CisgICAgICAgIH0KKyAg
ICB9CisgICAgcnVuRGVsZXRlVGVzdHMoKTsKKyAgICAKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0
ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9nKCJyZWFkd3JpdGUgdHJhbnNhY3Rpb24g
dW5leHBlY3RlZCBhYm9ydCIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAg
ICB0cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9n
KCJyZWFkd3JpdGUgdHJhbnNhY3Rpb24gY29tcGxldGUiKTsKKyAgICAgICAgZG9uZSgpOworICAg
IH0KKworICAgIHRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAg
ICBsb2coInJlYWR3cml0ZSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsK
KyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZh
aWx1cmVzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVy
bi9pZGJvYmplY3RzdG9yZS1kZWxldGUtZmFpbHVyZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI5ZGZhNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZh
aWx1cmVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEwIEBACitUaGlzIHRlc3RzIHNvbWUgb2J2
aW91cyBmYWlsdXJlcyB0aGF0IGNhbiBoYXBwZW4gd2hpbGUgY2FsbGluZyBJREJPYmplY3RTdG9y
ZS5kZWxldGUoKS4KK0luaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcg
dmVyc2lvbiAtIDEKK0ZhaWxlZCB0byBkZWxldGUgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlIHdp
dGggYW4gaW52YWxpZCBrZXkKK0ZhaWxlZCB0byBkZWxldGUgcmVjb3JkIGZyb20gb2JqZWN0IHN0
b3JlIHRoYXQgaGFzIGJlZW4gZGVsZXRlZAorSW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2Ug
dHJhbnNhY3Rpb24gY29tcGxldGUKK0ZhaWxlZCB0byBkZWxldGUgYSByZWNvcmQgaW4gcmVhZC1v
bmx5IHRyYW5zYWN0aW9uCitGYWlsZWQgdG8gZGVsZXRlIHJlY29yZCB3aXRoIGluYWN0aXZlIHRy
YW5zYWN0aW9uCityZWFkd3JpdGUgdHJhbnNhY3Rpb24gY29tcGxldGUKK0RvbmUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVjdHN0b3Jl
LWRlbGV0ZS1mYWlsdXJlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2lkYm9iamVjdHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAuLjFlYjBkZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRlLWZhaWx1cmVz
Lmh0bWwKQEAgLTAsMCArMSwxMjAgQEAKK1RoaXMgdGVzdHMgc29tZSBvYnZpb3VzIGZhaWx1cmVz
IHRoYXQgY2FuIGhhcHBlbiB3aGlsZSBjYWxsaW5nIElEQk9iamVjdFN0b3JlLmRlbGV0ZSgpLjxi
cj4KKzxkaXYgaWQ9ImxvZ2dlciI+PC9kaXY+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImxvZ2dlciIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4i
OworfQorCitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBsb2coIkRvbmUiKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2
YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiSURCT2JqZWN0U3RvcmVE
ZWxldGVGYWlsdXJlc0RhdGFiYXNlIiwgMSk7Cit2YXIgZGF0YWJhc2U7CisKK2NyZWF0ZVJlcXVl
c3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICBsb2coIkluaXRpYWwg
dXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5l
dyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgdmFyIHZlcnNpb25UcmFu
c2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZGF0YWJhc2UgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9i
amVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0
b3JlLnB1dCgiYmFyIiwgImZvbyIpOworCisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmRlbGV0ZShOYU4p
OworICAgICAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgICAgIGxvZygiRmFpbGVkIHRvIGRlbGV0
ZSByZWNvcmQgZnJvbSBvYmplY3Qgc3RvcmUgd2l0aCBhbiBpbnZhbGlkIGtleSIpOworICAgICAg
ICB9CisgICAgICAgIAorICAgICAgICBkYXRhYmFzZS5kZWxldGVPYmplY3RTdG9yZSgiVGVzdE9i
amVjdFN0b3JlIik7CisgICAgICAgIAorICAgICAgICB0cnkgeworICAgICAgICAgICAgb2JqZWN0
U3RvcmUuZGVsZXRlKCJmb28iKTsKKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICBs
b2coIkZhaWxlZCB0byBkZWxldGUgcmVjb3JkIGZyb20gb2JqZWN0IHN0b3JlIHRoYXQgaGFzIGJl
ZW4gZGVsZXRlZCIpOworICAgICAgICB9IAorCisgICAgICAgIC8vIFJlY3JlYXRlIHRoZSBvYmpl
Y3RzdG9yZSBiZWNhdXNlIHdlJ2xsIG5lZWQgaXQgaW4gcGhhc2UgMi4KKyAgICAgICAgdmFyIG9i
amVjdFN0b3JlID0gZGF0YWJhc2UuY3JlYXRlT2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIp
OworICAgICAgICBvYmplY3RTdG9yZS5wdXQoImJhciIsICJmb28iKTsgICAgCisgICAgfQorICAg
IAorICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAg
ICAgICAgbG9nKCJJbml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiB1bmV4
cGVjdGVkIGFib3J0ZWQiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKworICAgIHZlcnNpb25U
cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9nKCJJ
bml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZSIpOworICAg
ICAgICBjb250aW51ZVRlc3QxKCk7CisgICAgfQorCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9u
ZXJyb3IgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBsb2coIkluaXRpYWwgdXBncmFkZSB2
ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgZXJyb3IiICsgZXZlbnQpOworICAg
ICAgICBkb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiBjb250aW51ZVRlc3QxKCkKK3sKKyAg
ICB2YXIgdHJhbnNhY3Rpb24gPSBkYXRhYmFzZS50cmFuc2FjdGlvbigiVGVzdE9iamVjdFN0b3Jl
IiwgInJlYWRvbmx5Iik7CisgICAgdmFyIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0
U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOworICAgIAorICAgIHRyeSB7CisgICAgICAgIG9iamVj
dFN0b3JlLmRlbGV0ZSgiZm9vIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIGxvZygiRmFp
bGVkIHRvIGRlbGV0ZSBhIHJlY29yZCBpbiByZWFkLW9ubHkgdHJhbnNhY3Rpb24iKTsKKyAgICB9
CisgICAgCisgICAgdmFyIHRyYW5zYWN0aW9uID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oIlRlc3RP
YmplY3RTdG9yZSIsICJyZWFkd3JpdGUiKTsKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSB0cmFuc2Fj
dGlvbi5vYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CisKKyAgICAvLyBTcGluIHRoZSB0
cmFuc2FjdGlvbiB3aXRoIGdldCByZXF1ZXN0cyB0byBrZWVwIGl0IGFsaXZlIGxvbmcgZW5vdWdo
IGZvciB0aGUgc2V0VGltZW91dCB0byBmaXJlLgorICAgIHZhciBjYW5GaW5pc2ggPSBmYWxzZTsK
KyAgICB2YXIgc3BpbkdldCA9IGZ1bmN0aW9uKCkgeyAKKyAgICAgICAgb2JqZWN0U3RvcmUuZ2V0
KCJmb28iKS5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGlmICghY2FuRmlu
aXNoKQorICAgICAgICAgICAgICAgIHNwaW5HZXQoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBz
cGluR2V0KCk7CisKKyAgICB2YXIgdGVzdFdoaWxlSW5hY3RpdmUgPSBmdW5jdGlvbigpIHsKKyAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgIG9iamVjdFN0b3JlLmRlbGV0ZSgiZm9vIik7CisgICAg
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgbG9nKCJGYWlsZWQgdG8gZGVsZXRlIHJlY29y
ZCB3aXRoIGluYWN0aXZlIHRyYW5zYWN0aW9uIik7CisgICAgICAgIH0KKyAgICAgICAgY2FuRmlu
aXNoID0gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgc2V0VGltZW91dCh0ZXN0V2hpbGVJbmFjdGl2
ZSwgMCk7CisgICAgCisgICAgdHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGV2ZW50KSB7
CisgICAgICAgIGxvZygicmVhZHdyaXRlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnQiICsg
ZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24ub25jb21w
bGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGxvZygicmVhZHdyaXRlIHRyYW5zYWN0
aW9uIGNvbXBsZXRlIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisKKyAgICB0cmFuc2FjdGlv
bi5vbmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgbG9nKCJyZWFkd3JpdGUgdHJh
bnNhY3Rpb24gdW5leHBlY3RlZCBlcnJvciIgKyBldmVudCk7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9Cit9CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDE4YTQ5N2MuLmZjZWJkNDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw3NCBAQAorMjAxNS0xMS0wMiAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjogSUJET2JqZWN0U3RvcmUuZGVsZXRl
KCkgc3VwcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE1MDc4NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vaWRib2JqZWN0c3RvcmUtZGVsZXRl
LTEuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2lkYm9iamVj
dHN0b3JlLWRlbGV0ZS1mYWlsdXJlcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRh
Ojppc1ZhbGlkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEu
aDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5l
Y3Rpb25Ub1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQkNvbm5l
Y3Rpb25Ub1NlcnZlcjo6ZGVsZXRlUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVSZWNvcmQpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaDoKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUu
aDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9iamVj
dFN0b3JlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQk9iamVjdFN0
b3JlOjpnZXQpOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJPYmplY3RTdG9yZTo6
ZGVsZXRlRnVuY3Rpb24pOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVu
dDo6SURCVHJhbnNhY3Rpb246OnJlcXVlc3REZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6ZGVsZXRlUmVjb3JkT25TZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6ZGlkRGVsZXRlUmVjb3Jk
T25TZXJ2ZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2Fj
dGlvbkltcGwuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQkJhY2tpbmdTdG9yZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6SURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWREZWxldGVSZWNvcmQpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVs
ZWdhdGUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6ZGVs
ZXRlUmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
Lmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJ
REJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmRlbGV0ZVJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVSZWNvcmQpOiBEZWxldGVkLgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAg
ICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6
OmRlbGV0ZVJhbmdlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
T2JqZWN0U3RvcmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybURlbGV0ZVJlY29yZCk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJm
b3JtRGVsZXRlUmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpnZXRDb3VudCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246
OmRlbGV0ZVJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
UmVzdWx0RGF0YTo6ZGVsZXRlUmVjb3JkU3VjY2Vzcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmRpZERlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpJblByb2Nlc3NJREJTZXJ2ZXI6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgICogTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oOgorCiAyMDE1LTExLTAyICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4
IE1hYyBDTWFrZSBidWlsZCBhZnRlciByMTkxOTA0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5jcHAKaW5kZXggYzAxYTJhZS4uNzZh
ZDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UmFuZ2VEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlSYW5nZURhdGEuY3BwCkBAIC03OSw2ICs3OSwyMCBAQCBib29sIElEQktleVJhbmdlRGF0YTo6
aXNFeGFjdGx5T25lS2V5KCkgY29uc3QKICAgICByZXR1cm4gIWxvd2VyS2V5LmNvbXBhcmUodXBw
ZXJLZXkpOwogfQogCitib29sIElEQktleVJhbmdlRGF0YTo6aXNWYWxpZCgpIGNvbnN0Cit7Cisg
ICAgaWYgKGlzTnVsbCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFsb3dlcktl
eS5pc1ZhbGlkKCkgJiYgIWxvd2VyS2V5LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoIXVwcGVyS2V5LmlzVmFsaWQoKSAmJiAhdXBwZXJLZXkuaXNOdWxsKCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKaW5k
ZXggOTMzYWE0MC4uZWRlNWY2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKQEAgLTY1LDYgKzY1LDcgQEAgc3RydWN0IElEQktl
eVJhbmdlRGF0YSB7CiAgICAgV0VCQ09SRV9FWFBPUlQgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4g
bWF5YmVDcmVhdGVJREJLZXlSYW5nZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBpc0V4YWN0bHlPbmVLZXkoKSBjb25zdDsKKyAgICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAog
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
ICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYs
IElEQktleVJhbmdlRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRl
eCA5MDM5YzFjLi45NWQ3NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApA
QCAtMTg2LDYgKzE4NiwyMiBAQCB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0Q291
bnQoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICBjb21wbGV0ZU9wZXJhdGlv
bihyZXN1bHREYXRhKTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRlbGV0ZVJl
Y29yZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmIGtleVJhbmdlRGF0YSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlvblRv
U2VydmVyOjpkZWxldGVSZWNvcmQiKTsKKworICAgIEFTU0VSVCgha2V5UmFuZ2VEYXRhLmlzTnVs
bCk7CisKKyAgICBzYXZlT3BlcmF0aW9uKG9wZXJhdGlvbik7CisgICAgbV9kZWxlZ2F0ZS0+ZGVs
ZXRlUmVjb3JkKElEQlJlcXVlc3REYXRhKG9wZXJhdGlvbiksIGtleVJhbmdlRGF0YSk7Cit9CisK
K3ZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpkaWREZWxldGVSZWNvcmQoY29uc3QgSURCUmVz
dWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiSURCQ29ubmVjdGlv
blRvU2VydmVyOjpkaWREZWxldGVSZWNvcmQiKTsKKyAgICBjb21wbGV0ZU9wZXJhdGlvbihyZXN1
bHREYXRhKTsKK30KKwogdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmVzdGFibGlzaFRyYW5z
YWN0aW9uKElEQlRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHsKICAgICBMT0coSW5kZXhlZERC
LCAiSURCQ29ubmVjdGlvblRvU2VydmVyOjplc3RhYmxpc2hUcmFuc2FjdGlvbiIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lE
QkNvbm5lY3Rpb25Ub1NlcnZlci5oCmluZGV4IDM0YTcxZTEuLjQ0ODMwOTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9T
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKQEAgLTc5LDYgKzc5LDkgQEAgcHVibGljOgogICAgIHZvaWQg
Z2V0Q291bnQoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsK
ICAgICB2b2lkIGRpZEdldENvdW50KGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIAorICAgIHZvaWQg
ZGVsZXRlUmVjb3JkKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
Jik7CisgICAgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgSURCUmVzdWx0RGF0YSYpOworCiAg
ICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihJREJUcmFuc2FjdGlvbiYpOwogICAgIHZvaWQgZGlk
Q29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlckRlbGVnYXRlLmgKaW5kZXggZTljOWMwYS4uN2Q0YzJhYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlckRlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlckRlbGVnYXRlLmgKQEAgLTYyLDYgKzYyLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIElE
QktleSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3Rv
cmVPdmVyd3JpdGVNb2RlKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldFJlY29yZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgZ2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURh
dGEmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZXN0
YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwg
Y29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRhdGFi
YXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVy
KSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCmluZGV4IDI5ZDIxMzguLmRlNzliN2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJP
YmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0xNjIsOSArMTYyLDcgQEAgUmVmUHRy
PFdlYkNvcmU6OklEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpnZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCogY29udGV4dCwKICAgICB9CiAKICAgICBJREJLZXlSYW5nZURhdGEga2V5UmFuZ2VE
YXRhKGtleVJhbmdlKTsKLSAgICBpZiAoa2V5UmFuZ2VEYXRhLmlzTnVsbAotICAgICAgICB8fCAo
IWtleVJhbmdlRGF0YS5sb3dlcktleS5pc1ZhbGlkKCkgJiYgIWtleVJhbmdlRGF0YS5sb3dlcktl
eS5pc051bGwoKSkKLSAgICAgICAgfHwgKCFrZXlSYW5nZURhdGEudXBwZXJLZXkuaXNWYWxpZCgp
ICYmICFrZXlSYW5nZURhdGEudXBwZXJLZXkuaXNOdWxsKCkpKSB7CisgICAgaWYgKCFrZXlSYW5n
ZURhdGEuaXNWYWxpZCgpKSB7CiAgICAgICAgIGVjID0gc3RhdGljX2Nhc3Q8RXhjZXB0aW9uQ29k
ZT4oSURCRXhjZXB0aW9uQ29kZTo6RGF0YUVycm9yKTsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQpAQCAtMjc3LDE0ICsyNzUsNDUgQEAgUmVmUHRyPFdlYkNvcmU6OklEQlJlcXVlc3Q+
IElEQk9iamVjdFN0b3JlOjpwdXRPckFkZChKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQzoKIH0K
IAogCi1SZWZQdHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6OmRlbGV0ZUZ1
bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBJREJLZXlSYW5nZSosIEV4Y2VwdGlvbkNv
ZGUmKQorUmVmUHRyPFdlYkNvcmU6OklEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVG
dW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBJREJLZXlSYW5nZSoga2V5
UmFuZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlv
biIpOworCisgICAgaWYgKG1fdHJhbnNhY3Rpb24tPmlzUmVhZE9ubHkoKSkgeworICAgICAgICBl
YyA9IHN0YXRpY19jYXN0PEV4Y2VwdGlvbkNvZGU+KElEQkV4Y2VwdGlvbkNvZGU6OlJlYWRPbmx5
RXJyb3IpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAoIW1fdHJh
bnNhY3Rpb24tPmlzQWN0aXZlKCkpIHsKKyAgICAgICAgZWMgPSBzdGF0aWNfY2FzdDxFeGNlcHRp
b25Db2RlPihJREJFeGNlcHRpb25Db2RlOjpUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3IpOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICB9CisKKyAgICBpZiAobV9kZWxldGVkKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIElEQktleVJhbmdlRGF0YSBrZXlSYW5nZURhdGEoa2V5UmFuZ2UpOworICAgIGlm
ICgha2V5UmFuZ2VEYXRhLmlzVmFsaWQoKSkgeworICAgICAgICBlYyA9IHN0YXRpY19jYXN0PEV4
Y2VwdGlvbkNvZGU+KElEQkV4Y2VwdGlvbkNvZGU6OkRhdGFFcnJvcik7CisgICAgICAgIHJldHVy
biBudWxscHRyOworICAgIH0KKworICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gbV90cmFu
c2FjdGlvbi0+cmVxdWVzdERlbGV0ZVJlY29yZCgqY29udGV4dCwgKnRoaXMsIGtleVJhbmdlRGF0
YSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZXF1ZXN0KTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OklEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpkZWxldGVGdW5jdGlvbihTY3JpcHRFeGVjdXRp
b25Db250ZXh0KiwgY29uc3QgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmLCBFeGNlcHRpb25Db2Rl
JikKK1JlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6ZGVsZXRlRnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uc3QgRGVwcmVjYXRlZDo6
U2NyaXB0VmFsdWUmIGtleSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICBET01SZXF1ZXN0U3RhdGUgcmVxdWVzdFN0YXRlKGNvbnRl
eHQpOworICAgIFJlZlB0cjxJREJLZXk+IGlkYktleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoJnJl
cXVlc3RTdGF0ZSwga2V5KTsKKyAgICBpZiAoIWlkYktleSB8fCBpZGJLZXktPnR5cGUoKSA9PSBL
ZXlUeXBlOjpJbnZhbGlkKSB7CisgICAgICAgIGVjID0gc3RhdGljX2Nhc3Q8RXhjZXB0aW9uQ29k
ZT4oSURCRXhjZXB0aW9uQ29kZTo6RGF0YUVycm9yKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgfQorCisgICAgcmV0dXJuIGRlbGV0ZUZ1bmN0aW9uKGNvbnRleHQsICZJREJLZXlSYW5n
ZTo6Y3JlYXRlKGlkYktleS5nZXQoKSkuZ2V0KCksIGVjKTsKIH0KIAogUmVmUHRyPFdlYkNvcmU6
OklEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpjbGVhcihTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAK
aW5kZXggODMxOWQ0Zi4uMmYxZmI2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKQEAg
LTQ2MCw2ICs0NjAsMzQgQEAgdm9pZCBJREJUcmFuc2FjdGlvbjo6ZGlkR2V0Q291bnRPblNlcnZl
cihJREJSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBJREJSZXN1bHREYXQKICAgICByZXF1ZXN0LnJl
cXVlc3RDb21wbGV0ZWQocmVzdWx0RGF0YSk7CiB9CiAKK1JlZjxJREJSZXF1ZXN0PiBJREJUcmFu
c2FjdGlvbjo6cmVxdWVzdERlbGV0ZVJlY29yZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBJREJPYmplY3RTdG9yZSYgb2JqZWN0U3RvcmUsIGNvbnN0IElEQktleVJhbmdlRGF0YSYg
cmFuZ2UpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0RGVs
ZXRlUmVjb3JkIik7CisgICAgQVNTRVJUKGlzQWN0aXZlKCkpOworICAgIEFTU0VSVCghcmFuZ2Uu
aXNOdWxsKTsKKworICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3Jl
YXRlKGNvbnRleHQsIG9iamVjdFN0b3JlLCAqdGhpcyk7CisgICAgYWRkUmVxdWVzdChyZXF1ZXN0
LmdldCgpKTsKKworICAgIHNjaGVkdWxlT3BlcmF0aW9uKGNyZWF0ZVRyYW5zYWN0aW9uT3BlcmF0
aW9uKCp0aGlzLCByZXF1ZXN0LmdldCgpLCAmSURCVHJhbnNhY3Rpb246OmRpZERlbGV0ZVJlY29y
ZE9uU2VydmVyLCAmSURCVHJhbnNhY3Rpb246OmRlbGV0ZVJlY29yZE9uU2VydmVyLCByYW5nZSkp
OworICAgIHJldHVybiByZXF1ZXN0OworfQorCit2b2lkIElEQlRyYW5zYWN0aW9uOjpkZWxldGVS
ZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmIGtleVJhbmdlKQoreworICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6ZGVsZXRlUmVjb3JkT25TZXJ2ZXIiKTsKKworICAgIHNlcnZlckNvbm5lY3Rpb24oKS5k
ZWxldGVSZWNvcmQob3BlcmF0aW9uLCBrZXlSYW5nZSk7Cit9CisKK3ZvaWQgSURCVHJhbnNhY3Rp
b246OmRpZERlbGV0ZVJlY29yZE9uU2VydmVyKElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElE
QlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5z
YWN0aW9uOjpkaWREZWxldGVSZWNvcmRPblNlcnZlciIpOworCisgICAgcmVxdWVzdC5zZXRSZXN1
bHRUb1VuZGVmaW5lZCgpOworICAgIHJlcXVlc3QucmVxdWVzdENvbXBsZXRlZChyZXN1bHREYXRh
KTsKK30KKwogUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0Q2xlYXJPYmpl
Y3RTdG9yZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBJREJPYmplY3RTdG9yZSYg
b2JqZWN0U3RvcmUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQlRyYW5zYWN0aW9uOjpyZXF1
ZXN0Q2xlYXJPYmplY3RTdG9yZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oCmluZGV4IDE2MzE0
ZTguLmFlZDlmY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmgKQEAgLTkxLDYgKzkxLDcgQEAg
cHVibGljOgogCiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RQdXRPckFkZChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgSURCT2JqZWN0U3RvcmUmLCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0
VmFsdWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgUmVmPElE
QlJlcXVlc3Q+IHJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9i
amVjdFN0b3JlJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgUmVmPElEQlJlcXVlc3Q+
IHJlcXVlc3REZWxldGVSZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0
b3JlJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVl
c3RDbGVhck9iamVjdFN0b3JlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBJREJPYmplY3RTdG9y
ZSYpOwogICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0Q291bnQoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYsIElEQk9iamVjdFN0b3JlJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAKQEAgLTE0
MCw2ICsxNDEsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0Q291bnRPblNlcnZlcihUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgZGlkR2V0
Q291bnRPblNlcnZlcihJREJSZXF1ZXN0JiwgY29uc3QgSURCUmVzdWx0RGF0YSYpOwogCisgICAg
dm9pZCBkZWxldGVSZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYpOworICAgIHZvaWQgZGlkRGVsZXRlUmVjb3JkT25TZXJ2ZXIoSURCUmVx
dWVzdCYsIGNvbnN0IElEQlJlc3VsdERhdGEmKTsKKwogICAgIHZvaWQgZGVsZXRlT2JqZWN0U3Rv
cmVPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3Rv
cmVOYW1lKTsKICAgICB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3JlT25TZXJ2ZXIoY29uc3QgSURC
UmVzdWx0RGF0YSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKaW5kZXggMTM1ZjYxOS4uZTY1MDEyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJh
Y2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJCYWNraW5nU3RvcmUuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBJREJFcnJvciBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpID0g
MDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGNsZWFyT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3Jl
SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RT
dG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYg
a2V5RXhpc3RzKSA9IDA7Ci0gICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVSZWNvcmQoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9i
amVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFs
IElEQkVycm9yIGRlbGV0ZVJhbmdlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIHB1dFJlY29yZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2Fm
ZURhdGFCdWZmZXImIHZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRSZWNvcmQo
Y29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2
NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgVGhyZWFk
U2FmZURhdGFCdWZmZXImIG91dFZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZXRD
b3VudChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCB1
aW50NjRfdCYgb3V0Q291bnQpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0aW9uVG9DbGllbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAK
aW5kZXggMjhkMThjMy4uYzYzNzJhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5j
cHAKQEAgLTkzLDYgKzkzLDExIEBAIHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50OjpkaWRHZXRD
b3VudChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCiAgICAgbV9kZWxlZ2F0ZS0+ZGlkR2V0
Q291bnQocmVzdWx0KTsKIH0KIAordm9pZCBJREJDb25uZWN0aW9uVG9DbGllbnQ6OmRpZERlbGV0
ZVJlY29yZChjb25zdCBJREJSZXN1bHREYXRhJiByZXN1bHQpCit7CisgICAgbV9kZWxlZ2F0ZS0+
ZGlkRGVsZXRlUmVjb3JkKHJlc3VsdCk7Cit9CisKIHZvaWQgSURCQ29ubmVjdGlvblRvQ2xpZW50
OjpkaWRDb21taXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5z
YWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImIGVycm9yKQogewogICAgIG1fZGVsZWdh
dGUtPmRpZENvbW1pdFRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgZXJyb3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNv
bm5lY3Rpb25Ub0NsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudC5oCmluZGV4IDc2NjJiNGMuLjRhN2JlOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJDb25uZWN0
aW9uVG9DbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50LmgKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgZGlkUHV0T3JBZGQoY29uc3QgSURCUmVzdWx0RGF0YSYpOwogICAgIHZvaWQgZGlkR2V0
UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lkIGRpZEdldENvdW50KGNvbnN0
IElEQlJlc3VsdERhdGEmKTsKKyAgICB2b2lkIGRpZERlbGV0ZVJlY29yZChjb25zdCBJREJSZXN1
bHREYXRhJik7CiAKICAgICB2b2lkIGZpcmVWZXJzaW9uQ2hhbmdlRXZlbnQoVW5pcXVlSURCRGF0
YWJhc2VDb25uZWN0aW9uJiwgdWludDY0X3QgcmVxdWVzdGVkVmVyc2lvbik7CiAgICAgdm9pZCBk
aWRTdGFydFRyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkNvbm5lY3Rpb25Ub0NsaWVudERlbGVnYXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlv
blRvQ2xpZW50RGVsZWdhdGUuaAppbmRleCBhZDA0MWI0Li45NTI3OWMxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQ29ubmVjdGlvblRvQ2xp
ZW50RGVsZWdhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCQ29ubmVjdGlvblRvQ2xpZW50RGVsZWdhdGUuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZEdldFJlY29yZChjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRHZXRDb3VudChjb25zdCBJREJSZXN1bHREYXRhJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgSURCUmVzdWx0RGF0
YSYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lvbkNoYW5nZUV2ZW50KFVuaXF1
ZUlEQkRhdGFiYXNlQ29ubmVjdGlvbiYsIHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkU3RhcnRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImKSA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2
ZXIuY3BwCmluZGV4IDRiMGE3NzkuLmNiYjAxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0yMjQsNiArMjI0
LDE3IEBAIHZvaWQgSURCU2VydmVyOjpnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVx
dWVzdERhdGEsIGNvbnN0IElEQktleVJhbmdlRGF0CiAgICAgdHJhbnNhY3Rpb24tPmdldENvdW50
KHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEpOwogfQogCit2b2lkIElEQlNlcnZlcjo6ZGVsZXRl
UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiBrZXlSYW5nZURhdGEpCit7CisgICAgTE9HKEluZGV4ZWREQiwgIklEQlNlcnZlcjo6
ZGVsZXRlUmVjb3JkIik7CisKKyAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMu
Z2V0KHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpKTsKKyAgICBpZiAoIXRyYW5z
YWN0aW9uKQorICAgICAgICByZXR1cm47CisKKyAgICB0cmFuc2FjdGlvbi0+ZGVsZXRlUmVjb3Jk
KHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEpOworfQorCiB2b2lkIElEQlNlcnZlcjo6ZXN0YWJs
aXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJT
ZXJ2ZXI6OmVzdGFibGlzaFRyYW5zYWN0aW9uIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKaW5kZXggZjY5Y2I5Mi4uNGZkZTBj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuaApAQCAtNjUsNiArNjUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBwdXRPckFkZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZl
RGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9k
ZSk7CiAgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIGdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgdm9pZCBkZWxldGVSZWNvcmQoY29uc3QgSURC
UmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIGVzdGFibGlz
aFRyYW5zYWN0aW9uKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogICAgIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2Vk
KHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJ
REJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDcyMmM3MTUuLmU1ZjVkYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5E
RVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlPYmplY3RTdG9yZS5oIgogCkBAIC0yMTAsMTcg
KzIxMSwyMCBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmtleUV4aXN0c0luT2Jq
ZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaQogICAgIHJldHVybiBJREJFcnJvcigp
OwogfQogCi1JREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJlY29yZChjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qg
b2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKQorSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpkZWxldGVSYW5nZShjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIHJhbmdlKQogewotICAgIExPRyhJbmRleGVk
REIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJlY29yZCIpOworICAgIExPRyhJbmRl
eGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmRlbGV0ZVJhbmdlIik7CiAKICAgICBBU1NF
UlQob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKIAorICAgIGlmICghbV90cmFuc2FjdGlvbnMuY29u
dGFpbnModHJhbnNhY3Rpb25JZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIElEQkVycm9yKElE
QkV4Y2VwdGlvbkNvZGU6OlVua25vd24sIFdURjo6QVNDSUlMaXRlcmFsKCJObyBiYWNraW5nIHN0
b3JlIHRyYW5zYWN0aW9uIGZvdW5kIHRvIGRlbGV0ZSBmcm9tIikpOworCiAgICAgTWVtb3J5T2Jq
ZWN0U3RvcmUqIG9iamVjdFN0b3JlID0gbV9vYmplY3RTdG9yZXNCeUlkZW50aWZpZXIuZ2V0KG9i
amVjdFN0b3JlSWRlbnRpZmllcik7Ci0gICAgUkVMRUFTRV9BU1NFUlQob2JqZWN0U3RvcmUpOwot
ICAgIFJFTEVBU0VfQVNTRVJUKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKHRyYW5zYWN0aW9uSWRl
bnRpZmllcikpOworICAgIGlmICghb2JqZWN0U3RvcmUpCisgICAgICAgIHJldHVybiBJREJFcnJv
cihJREJFeGNlcHRpb25Db2RlOjpVbmtub3duLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiTm8gYmFja2lu
ZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91bmQiKSk7CiAKLSAgICBvYmplY3RTdG9yZS0+ZGVsZXRl
UmVjb3JkKGtleURhdGEpOworICAgIG9iamVjdFN0b3JlLT5kZWxldGVSYW5nZShyYW5nZSk7CiAg
ICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaApp
bmRleCBhMjlmYzkwLi4wNWZlYmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBA
IC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmly
dHVhbCBJREJFcnJvciBjbGVhck9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIp
IG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3Iga2V5RXhpc3RzSW5PYmplY3RT
dG9yZShjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwgYm9vbCYg
a2V5RXhpc3RzKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJl
Y29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwg
dWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJikgb3ZlcnJp
ZGUgZmluYWw7CisgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVSYW5nZShjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKSBvdmVycmlkZSBmaW5hbDsKICAg
ICB2aXJ0dWFsIElEQkVycm9yIHB1dFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBj
b25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlKSBvdmVy
cmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZl
ciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0Q291
bnQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgdWlu
dDY0X3QmIG91dENvdW50KSBvdmVycmlkZSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
CmluZGV4IDZlNzNhZTkuLjlkYzY2MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcApAQCAt
MTA2LDYgKzEwNiwzMCBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpkZWxldGVSZWNvcmQoY29u
c3QgSURCS2V5RGF0YSYga2V5KQogICAgIG1fb3JkZXJlZEtleXMtPmVyYXNlKGtleSk7CiB9CiAK
K3ZvaWQgTWVtb3J5T2JqZWN0U3RvcmU6OmRlbGV0ZVJhbmdlKGNvbnN0IElEQktleVJhbmdlRGF0
YSYgaW5wdXRSYW5nZSkKK3sKKyAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5T2JqZWN0U3RvcmU6
OmRlbGV0ZVJhbmdlIik7CisKKyAgICBBU1NFUlQobV93cml0ZVRyYW5zYWN0aW9uKTsKKworICAg
IGlmIChpbnB1dFJhbmdlLmlzRXhhY3RseU9uZUtleSgpKSB7CisgICAgICAgIGRlbGV0ZVJlY29y
ZChpbnB1dFJhbmdlLmxvd2VyS2V5KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIElE
QktleVJhbmdlRGF0YSByYW5nZSA9IGlucHV0UmFuZ2U7CisgICAgd2hpbGUgKHRydWUpIHsKKyAg
ICAgICAgYXV0byBrZXkgPSBsb3dlc3RLZXlXaXRoUmVjb3JkSW5SYW5nZShyYW5nZSk7CisgICAg
ICAgIGlmIChrZXkuaXNOdWxsKCkpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICBkZWxl
dGVSZWNvcmQoa2V5KTsKKworICAgICAgICByYW5nZS5sb3dlcktleSA9IGtleTsKKyAgICAgICAg
cmFuZ2UubG93ZXJPcGVuID0gdHJ1ZTsKKyAgICB9Cit9CisKIHZvaWQgTWVtb3J5T2JqZWN0U3Rv
cmU6OnB1dFJlY29yZChNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24s
IGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2
YWx1ZSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5T2JqZWN0U3RvcmU6OnB1dFJlY29y
ZCIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L01lbW9yeU9iamVjdFN0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaAppbmRleCBmNzQ1M2ZkLi45NmU4ZTE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0
U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5T2JqZWN0U3RvcmUuaApAQCAtNTgsNiArNTgsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGNv
bnRhaW5zUmVjb3JkKGNvbnN0IElEQktleURhdGEmKTsKICAgICB2b2lkIGRlbGV0ZVJlY29yZChj
b25zdCBJREJLZXlEYXRhJik7CisgICAgdm9pZCBkZWxldGVSYW5nZShjb25zdCBJREJLZXlSYW5n
ZURhdGEmKTsKICAgICB2b2lkIHB1dFJlY29yZChNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlv
biYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUp
OwogCiAgICAgdm9pZCBzZXRLZXlWYWx1ZShjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFk
U2FmZURhdGFCdWZmZXImIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IGUw
ZThkODIuLjVlNDkwYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzkyLDcgKzM5
Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlCiAgICAgLy8gLi4uSWYgYSByZWNvcmQgYWxy
ZWFkeSBleGlzdHMgaW4gc3RvcmUgLi4uCiAgICAgLy8gdGhlbiByZW1vdmUgdGhlIHJlY29yZCBm
cm9tIHN0b3JlIHVzaW5nIHRoZSBzdGVwcyBmb3IgZGVsZXRpbmcgcmVjb3JkcyBmcm9tIGFuIG9i
amVjdCBzdG9yZS4uLgogICAgIC8vIFRoaXMgaXMgaW1wb3J0YW50IGJlY2F1c2UgZm9ybWFsbHkg
ZGVsZXRpbmcgaXQgZnJvbSBmcm9tIHRoZSBvYmplY3Qgc3RvcmUgYWxzbyByZW1vdmVzIGl0IGZy
b20gdGhlIGFwcHJvcHJpYXRlIGluZGV4ZXMuCi0gICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+
ZGVsZXRlUmVjb3JkKHRyYW5zYWN0aW9uSWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCB1c2VkS2V5KTsKKyAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZSh0cmFu
c2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgdXNlZEtleSk7CiAgICAg
aWYgKCFlcnJvci5pc051bGwoKSkgewogICAgICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNr
UmVwbHkoY3JlYXRlQ3Jvc3NUaHJlYWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRp
ZFBlcmZvcm1QdXRPckFkZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdXNlZEtleSkpOwog
ICAgICAgICByZXR1cm47CkBAIC00NzMsNiArNDczLDMzIEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRpZFBlcmZvcm1HZXRDb3VudCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElECiAgICAgcGVyZm9ybUNvdW50Q2FsbGJhY2soY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwg
Y291bnQpOwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJh
bmdlRGF0YSwgRXJyb3JDYWxsYmFjayBjYWxsYmFjaykKK3sKKyAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOworICAgIExPRyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRl
bGV0ZVJlY29yZCIpOworCisgICAgdWludDY0X3QgY2FsbGJhY2tJRCA9IHN0b3JlQ2FsbGJhY2so
Y2FsbGJhY2spOworICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2soY3JlYXRlQ3Jvc3NUaHJl
YWRUYXNrKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVSZWNvcmQsIGNh
bGxiYWNrSUQsIHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0
YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwga2V5UmFuZ2VEYXRhKSk7Cit9CisKK3ZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnBlcmZvcm1EZWxldGVSZWNvcmQodWludDY0X3QgY2FsbGJhY2tJZGVu
dGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
IHJhbmdlKQoreworICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworICAgIExPRyhJbmRleGVk
REIsICIoZGIpIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRGVsZXRlUmVjb3JkIik7CisKKyAg
ICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZSh0cmFuc2FjdGlv
bklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgcmFuZ2UpOworCisgICAgbV9zZXJ2
ZXIucG9zdERhdGFiYXNlVGFza1JlcGx5KGNyZWF0ZUNyb3NzVGhyZWFkVGFzaygqdGhpcywgJlVu
aXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlUmVjb3JkLCBjYWxsYmFja0lkZW50aWZp
ZXIsIGVycm9yKSk7Cit9CisKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1EZWxl
dGVSZWNvcmQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYgZXJy
b3IpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhlZERCLCAi
KG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRQZXJmb3JtRGVsZXRlUmVjb3JkIik7CisKKyAg
ICBwZXJmb3JtRXJyb3JDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIGVycm9yKTsKK30KKwog
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIEVycm9yQ2FsbGJhY2sgY2FsbGJhY2spCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggMWM4
ODEyOS4uZjViY2IzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTc2LDYgKzc2LDcgQEAg
cHVibGljOgogICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSwgSW5kZXhl
ZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUsIEtleURhdGFDYWxsYmFjayk7CiAgICAgdm9p
ZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
LCBWYWx1ZURhdGFDYWxsYmFjayk7CiAgICAgdm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYsIENvdW50Q2FsbGJhY2spOworICAgIHZvaWQg
ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBhYm9ydFRyYW5z
YWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKICAg
ICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
KTsKQEAgLTEwNyw2ICsxMDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVB1dE9yQWRk
KHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwg
Y29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEs
IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsKICAgICB2b2lkIHBlcmZvcm1H
ZXRSZWNvcmQodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIHBlcmZvcm1HZXRDb3Vu
dCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGNvbnN0IElEQktleVJhbmdlRGF0YSYpOworICAgIHZvaWQgcGVyZm9ybURlbGV0ZVJlY29yZCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgcGVyZm9ybUFjdGl2YXRlVHJhbnNhY3Rp
b25JbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlRy
YW5zYWN0aW9uSW5mbyYpOwogCiAgICAgLy8gTWFpbiB0aHJlYWQgY2FsbGJhY2tzCkBAIC0xMTcs
NiArMTE5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFBlcmZvcm1QdXRPckFkZCh1aW50NjRf
dCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgSURCS2V5RGF0YSYp
OwogICAgIHZvaWQgZGlkUGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQkVycm9yJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImKTsKICAgICB2
b2lkIGRpZFBlcmZvcm1HZXRDb3VudCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQkVycm9yJiwgdWludDY0X3QpOworICAgIHZvaWQgZGlkUGVyZm9ybURlbGV0ZVJlY29yZCh1
aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJik7CiAgICAgdm9pZCBk
aWRQZXJmb3JtQ29tbWl0VHJhbnNhY3Rpb24odWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJFcnJvciYsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyKTsKICAgICB2b2lkIGRpZFBlcmZvcm1BYm9ydFRyYW5zYWN0aW9uKHVpbnQ2NF90
IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCRXJyb3ImLCBjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgdm9pZCBkaWRQZXJmb3JtQWN0
aXZhdGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwgY29uc3QgSURCRXJyb3ImKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uLmNwcAppbmRleCBjZmZkMjQ0Li4zMTUxZTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCkBAIC0xOTgsNiArMTk4LDIzIEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjCiAgICAgfSk7CiB9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbjo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwg
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCit7CisgICAgTE9HKEluZGV4ZWRE
QiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmRlbGV0ZVJlY29yZCIpOworCisgICAg
QVNTRVJUKG1fdHJhbnNhY3Rpb25JbmZvLmlkZW50aWZpZXIoKSA9PSByZXF1ZXN0RGF0YS50cmFu
c2FjdGlvbklkZW50aWZpZXIoKSk7CisKKyAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbj4gcHJvdGVjdGVkVGhpcyh0aGlzKTsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+
ZGF0YWJhc2UoKS5kZWxldGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMsIHJlcXVlc3REYXRhXShjb25zdCBJREJFcnJvciYgZXJyb3IpIHsKKyAg
ICAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmRlbGV0
ZVJlY29yZCAoY2FsbGJhY2spIik7CisKKyAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQorICAg
ICAgICAgICAgbV9kYXRhYmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0NsaWVudCgpLmRpZERl
bGV0ZVJlY29yZChJREJSZXN1bHREYXRhOjpkZWxldGVSZWNvcmRTdWNjZXNzKHJlcXVlc3REYXRh
LnJlcXVlc3RJZGVudGlmaWVyKCkpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9kYXRh
YmFzZUNvbm5lY3Rpb24tPmNvbm5lY3Rpb25Ub0NsaWVudCgpLmRpZERlbGV0ZVJlY29yZChJREJS
ZXN1bHREYXRhOjplcnJvcihyZXF1ZXN0RGF0YS5yZXF1ZXN0SWRlbnRpZmllcigpLCBlcnJvcikp
OworICAgIH0pOworfQorCiBjb25zdCBWZWN0b3I8dWludDY0X3Q+JiBVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uOjpvYmplY3RTdG9yZUlkZW50aWZpZXJzKCkKIHsKICAgICBpZiAoIW1fb2Jq
ZWN0U3RvcmVJZGVudGlmaWVycy5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24uaAppbmRleCA5MzQ4Yjg0Li4zY2U0MDU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKQEAgLTcwLDYgKzcwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRh
JiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSwgSW5kZXhlZERCOjpPYmpl
Y3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwogICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBnZXRDb3VudChjb25z
dCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOworICAgIHZvaWQgZGVs
ZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7
CiAKICAgICB2b2lkIGRpZEFjdGl2YXRlSW5CYWNraW5nU3RvcmUoY29uc3QgSURCRXJyb3ImKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlJlc3VsdERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQlJlc3VsdERhdGEuY3BwCmluZGV4IDU0MjIzZDEuLjQ3NjQwMGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0
YS5jcHAKQEAgLTEyNSw2ICsxMjUsMTEgQEAgSURCUmVzdWx0RGF0YSBJREJSZXN1bHREYXRhOjpn
ZXRDb3VudFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXMKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCitJREJSZXN1bHREYXRhIElEQlJlc3VsdERhdGE6OmRlbGV0ZVJl
Y29yZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiByZXF1ZXN0SWRlbnRpZmll
cikKK3sKKyAgICByZXR1cm4geyBJREJSZXN1bHRUeXBlOjpEZWxldGVSZWNvcmRTdWNjZXNzLCBy
ZXF1ZXN0SWRlbnRpZmllciB9OworfQorCiBjb25zdCBJREJEYXRhYmFzZUluZm8mIElEQlJlc3Vs
dERhdGE6OmRhdGFiYXNlSW5mbygpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobV9kYXRh
YmFzZUluZm8pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQlJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJSZXN1bHREYXRhLmgKaW5kZXggYjgzNzAyNy4uYmJhZmJmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0
RGF0YS5oCkBAIC01MCw2ICs1MCw3IEBAIGVudW0gY2xhc3MgSURCUmVzdWx0VHlwZSB7CiAgICAg
UHV0T3JBZGRTdWNjZXNzLAogICAgIEdldFJlY29yZFN1Y2Nlc3MsCiAgICAgR2V0Q291bnRTdWNj
ZXNzLAorICAgIERlbGV0ZVJlY29yZFN1Y2Nlc3MsCiB9OwogCiBuYW1lc3BhY2UgSURCU2VydmVy
IHsKQEAgLTY4LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJREJSZXN1bHREYXRhIHB1
dE9yQWRkU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBJREJLZXlE
YXRhJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgZ2V0UmVjb3JkU3VjY2Vzcyhjb25zdCBJ
REJSZXNvdXJjZUlkZW50aWZpZXImLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVE
YXRhKTsKICAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSBnZXRDb3VudFN1Y2Nlc3MoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiwgdWludDY0X3QgY291bnQpOworICAgIHN0YXRpYyBJREJSZXN1
bHREYXRhIGRlbGV0ZVJlY29yZFN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJik7
CiAKICAgICBJREJSZXN1bHREYXRhKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9j
ZXNzSURCU2VydmVyLmNwcAppbmRleCA0NzA2MzJjOS4uMDczZjQwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vz
c0lEQlNlcnZlci5jcHAKQEAgLTE2Nyw2ICsxNjcsMTQgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2
ZXI6OmRpZEdldENvdW50KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiAgICAgfSk7
CiB9CiAKK3ZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkaWREZWxldGVSZWNvcmQoY29uc3QgSURC
UmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKK3sKKyAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVy
PiBzZWxmKHRoaXMpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2Vs
ZiwgcmVzdWx0RGF0YV0geworICAgICAgICBtX2Nvbm5lY3Rpb25Ub1NlcnZlci0+ZGlkRGVsZXRl
UmVjb3JkKHJlc3VsdERhdGEpOworICAgIH0pOworfQorCiB2b2lkIEluUHJvY2Vzc0lEQlNlcnZl
cjo6YWJvcnRUcmFuc2FjdGlvbihJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlc291cmNlSWRlbnRp
ZmllcikKIHsKICAgICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOwpAQCAt
MjM0LDYgKzI0MiwxNiBAQCB2b2lkIEluUHJvY2Vzc0lEQlNlcnZlcjo6Z2V0Q291bnQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZQogICAgICAgICBtX3NlcnZl
ci0+Z2V0Q291bnQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSk7CiAgICAgfSk7CiB9CisKK3Zv
aWQgSW5Qcm9jZXNzSURCU2VydmVyOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKK3sKKyAg
ICBSZWZQdHI8SW5Qcm9jZXNzSURCU2VydmVyPiBzZWxmKHRoaXMpOworCisgICAgUnVuTG9vcDo6
Y3VycmVudCgpLmRpc3BhdGNoKFt0aGlzLCBzZWxmLCByZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRh
XSB7CisgICAgICAgIG1fc2VydmVyLT5kZWxldGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdl
RGF0YSk7CisgICAgfSk7Cit9CisKIHZvaWQgSW5Qcm9jZXNzSURCU2VydmVyOjplc3RhYmxpc2hU
cmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJ
REJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiB7CiAgICAgUmVmUHRyPEluUHJvY2Vzc0lEQlNlcnZl
cj4gc2VsZih0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaAppbmRleCA1MmU3ODI3Li4xOTI5
NWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SW5Qcm9jZXNzSURCU2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJLZXkq
LCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zl
cndyaXRlTW9kZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGdldFJlY29yZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlIGZp
bmFsOwogICAgIHZpcnR1YWwgdm9pZCBnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNv
bnN0IElEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBk
ZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEm
KSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZXN0YWJsaXNoVHJhbnNhY3Rpb24o
dWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCVHJhbnNhY3Rp
b25JbmZvJikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVj
dGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSBvdmVycmlk
ZSBmaW5hbDsKIApAQCAtNzksNiArODAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkR2V0UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmKSBvdmVycmlkZSBmaW5h
bDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkR2V0Q291bnQoY29uc3QgSURCUmVzdWx0RGF0YSYpIG92
ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgdm9pZCBkaWREZWxldGVSZWNvcmQoY29uc3QgSURC
UmVzdWx0RGF0YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBmaXJlVmVyc2lv
bkNoYW5nZUV2ZW50KElEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJiwgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFN0YXJ0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2Fj
dGlvbklkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJikgb3ZlcnJpZGUgZmluYWw7CiAK
</data>
<flag name="review"
          id="289737"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>