<?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>127501</bug_id>
          
          <creation_ts>2014-01-23 12:07:10 -0800</creation_ts>
          <short_desc>IDB: Implement cross-thread and IPC plumbing for &apos;get&apos; support</short_desc>
          <delta_ts>2014-01-23 12:21:25 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>124521</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>alecflett</cc>
    
    <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jsbell</cc>
    
    <cc>rakuco</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971264</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 12:07:10 -0800</bug_when>
    <thetext>IDB: Implement cross-thread and IPC plumbing for &apos;get&apos; support</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971267</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 12:08:29 -0800</bug_when>
    <thetext>Implementing actual backing store support of fetching the record is tracked in https://bugs.webkit.org/show_bug.cgi?id=127502, as this patch can easily be reviewed/landed separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971272</commentid>
    <comment_count>2</comment_count>
      <attachid>222012</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 12:12:54 -0800</bug_when>
    <thetext>Created attachment 222012
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971275</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-23 12:14:35 -0800</bug_when>
    <thetext>Attachment 222012 did not pass style-queue:


ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:434:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/DatabaseProcess/IndexedDB/DatabaseProcessIDBConnection.h:80:  The parameter name &quot;keyRange&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 23 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>971276</commentid>
    <comment_count>4</comment_count>
      <attachid>222012</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2014-01-23 12:16:50 -0800</bug_when>
    <thetext>Comment on attachment 222012
Patch v1

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

&gt; Source/WebCore/Modules/indexeddb/IDBKeyRangeData.cpp:43
&gt; +    return std::move(result);

No need for move here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971281</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2014-01-23 12:21:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/162633</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222012</attachid>
            <date>2014-01-23 12:12:54 -0800</date>
            <delta_ts>2014-01-23 12:16:50 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>40833</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKaW5kZXggNWZlYjA3Ny4uZGYzNzI3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKQEAgLTgxNCw2ICs4MTQsNyBAQCBzZXQoV2ViQ29yZV9TT1VSQ0VTCiAgICAgTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlQ
YXRoLmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAorICAgIE1vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9J
REJPYmplY3RTdG9yZS5jcHAKICAgICBNb2R1bGVzL2luZGV4ZWRkYi9JREJPcGVuREJSZXF1ZXN0
LmNwcAogICAgIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlBlbmRpbmdUcmFuc2FjdGlvbk1vbml0b3Iu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggZjE2OWM1Ny4uODZiNGJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsx
LDM0IEBACiAyMDE0LTAxLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAor
ICAgICAgICBJREI6IEltcGxlbWVudCBjcm9zcy10aHJlYWQgYW5kIElQQyBwbHVtYmluZyBmb3Ig
J2dldCcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI3NTAxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIGlzb2xhdGVkQ29weSB0byB0aGUgSURCR2V0UmVzdWx0IG9iamVjdDoKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkdldFJlc3VsdDo6aXNvbGF0ZWRDb3B5KToKKworICAgICAgICBBZGQgYSBjcm9zcy10aHJl
YWQgYW5kIGNyb3NzLUlQQyBhcHByb3ByaWF0ZSBvYmplY3QgZm9yIElEQktleVJhbmdlczoKKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaC4KKyAgICAg
ICAgKFdlYkNvcmU6OklEQktleVJhbmdlRGF0YTo6aXNvbGF0ZWRDb3B5KToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCR2V0UmVzdWx0LmguCisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlSYW5nZURhdGE6OklEQktleVJhbmdlRGF0YSk6CisKKyAgICAgICAgQWRkIGEgZmV3
IG1vcmUgY3Jvc3MtdGhyZWFkIGNvcGllcnM6CisgICAgICAgICogcGxhdGZvcm0vQ3Jvc3NUaHJl
YWRDb3BpZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVzdWx0Pjo6Y29weSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE+Ojpjb3B5KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Dcm9zc1RocmVhZENvcGllci5oOgorCisgICAgICAgIFByb2plY3QgZmlsZSBndW5rOgor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06
CisgICAgICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorCisyMDE0LTAxLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKwogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KIAogICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRXhwb3J0IHRoZSBuZXcgaGVhZGVyIHNv
IFdlYktpdCBjYW4gc2VlIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmls
ZS5saXN0LmFtIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA1Y2Vi
YmM2Li43NzJmMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTE4NDAsNiAr
MTg0MCw3IEBAIHdlYmNvcmVfbW9kdWxlc19zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5QmFja2VuZEludGVyZmFjZS5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJGYWN0b3J5LmNwcCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRmFjdG9yeS5oIFwKKwlTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1bHQuaCBcCiAJU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCSGlzdG9ncmFtcy5oIFwKIAlTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJJbmRleC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QkluZGV4LmggXApAQCAtMTg1MSw2ICsxODUyLDggQEAgd2ViY29yZV9tb2R1bGVzX3NvdXJjZXMg
Kz0gXAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVBhdGguaCBcCiAJ
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5oIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwIFwKKwlTb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuaCBcCiAJU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJMZXZlbERCQ29kaW5nLmNwcCBcCiAJU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvbGV2ZWxkYi9JREJMZXZlbERCQ29kaW5nLmgg
XAogCVNvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcCBc
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJHZXRSZXN1
bHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oCmlu
ZGV4IDhjZTQwYWMuLjA0YWUwZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkdldFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQkdldFJlc3VsdC5oCkBAIC01Nyw2ICs1NywxNyBAQCBzdHJ1Y3QgSURCR2V0UmVz
dWx0IHsKICAgICB7CiAgICAgfQogCisgICAgSURCR2V0UmVzdWx0IGlzb2xhdGVkQ29weSgpIGNv
bnN0CisgICAgeworICAgICAgICBJREJHZXRSZXN1bHQgcmVzdWx0OworICAgICAgICBpZiAodmFs
dWVCdWZmZXIpCisgICAgICAgICAgICByZXN1bHQudmFsdWVCdWZmZXIgPSB2YWx1ZUJ1ZmZlci0+
Y29weSgpOworCisgICAgICAgIHJlc3VsdC5rZXlEYXRhID0ga2V5RGF0YS5pc29sYXRlZENvcHko
KTsKKyAgICAgICAgcmVzdWx0LmtleVBhdGggPSBrZXlQYXRoLmlzb2xhdGVkQ29weSgpOworICAg
ICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZh
bHVlQnVmZmVyOwogICAgIElEQktleURhdGEga2V5RGF0YTsKICAgICBJREJLZXlQYXRoIGtleVBh
dGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFu
Z2VEYXRhLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNjFkMWY4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
UmFuZ2VEYXRhLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgorCisjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworSURCS2V5UmFuZ2VEYXRhIElE
QktleVJhbmdlRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKK3sKKyAgICBJREJLZXlSYW5nZURh
dGEgcmVzdWx0OworCisgICAgcmVzdWx0LmlzTnVsbCA9IGlzTnVsbDsKKyAgICByZXN1bHQubG93
ZXJLZXkgPSBsb3dlcktleS5pc29sYXRlZENvcHkoKTsKKyAgICByZXN1bHQudXBwZXJLZXkgPSB1
cHBlcktleS5pc29sYXRlZENvcHkoKTsKKyAgICByZXN1bHQubG93ZXJPcGVuID0gbG93ZXJPcGVu
OworICAgIHJlc3VsdC51cHBlck9wZW4gPSB1cHBlck9wZW47CisKKyAgICByZXR1cm4gc3RkOjpt
b3ZlKHJlc3VsdCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwLi42YWU4Zjg4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgSURCS2V5UmFuZ2VEYXRhX2gKKyNkZWZpbmUgSURCS2V5UmFuZ2VEYXRhX2gKKwor
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorCisjaW5jbHVkZSAiSURCS2V5RGF0YS5oIgor
I2luY2x1ZGUgIklEQktleVJhbmdlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IElEQktleVJhbmdlRGF0YSB7CisgICAgSURCS2V5UmFuZ2VEYXRhKCkKKyAgICAgICAgOiBpc051
bGwodHJ1ZSkKKyAgICAgICAgLCBsb3dlck9wZW4oZmFsc2UpCisgICAgICAgICwgdXBwZXJPcGVu
KGZhbHNlKQorICAgIHsKKyAgICB9CisKKyAgICBJREJLZXlSYW5nZURhdGEoSURCS2V5UmFuZ2Uq
IGtleVJhbmdlKQorICAgICAgICA6IGlzTnVsbCgha2V5UmFuZ2UpCisgICAgICAgICwgbG93ZXJP
cGVuKGZhbHNlKQorICAgICAgICAsIHVwcGVyT3BlbihmYWxzZSkKKyAgICB7CisgICAgICAgIGlm
IChpc051bGwpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbG93ZXJLZXkgPSBrZXlS
YW5nZS0+bG93ZXIoKS5nZXQoKTsKKyAgICAgICAgdXBwZXJLZXkgPSBrZXlSYW5nZS0+dXBwZXIo
KS5nZXQoKTsKKyAgICAgICAgbG93ZXJPcGVuID0ga2V5UmFuZ2UtPmxvd2VyT3BlbigpOworICAg
ICAgICB1cHBlck9wZW4gPSBrZXlSYW5nZS0+dXBwZXJPcGVuKCk7CisgICAgfQorCisgICAgSURC
S2V5UmFuZ2VEYXRhIGlzb2xhdGVkQ29weSgpIGNvbnN0OworCisgICAgYm9vbCBpc051bGw7CisK
KyAgICBJREJLZXlEYXRhIGxvd2VyS2V5OworICAgIElEQktleURhdGEgdXBwZXJLZXk7CisKKyAg
ICBib29sIGxvd2VyT3BlbjsKKyAgICBib29sIHVwcGVyT3BlbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQorI2VuZGlm
IC8vIElEQktleVJhbmdlRGF0YV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDg4NGZkMmYuLjg2
OGY0M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDg5LDcgKzMwODksMTAgQEAgX19aTjdX
ZWJDb3JlMThJREJEYXRhYmFzZUJhY2tlbmQxNG9wZW5Db25uZWN0aW9uRU4zV1RGMTBQYXNzUmVm
UHRySU5TXzEySURCQ2FsbGIKIF9fWk43V2ViQ29yZTE4SURCRGF0YWJhc2VCYWNrZW5kNmNyZWF0
ZUVSS04zV1RGNlN0cmluZ0VTNF9QTlNfMjZJREJGYWN0b3J5QmFja2VuZEludGVyZmFjZUVSTlNf
MTlJREJTZXJ2ZXJDb25uZWN0aW9uRQogX19aTjdXZWJDb3JlMThJREJEYXRhYmFzZUJhY2tlbmRE
MUV2CiBfX1pON1dlYkNvcmUyMUNyb3NzVGhyZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzEwSURC
S2V5RGF0YUVFNGNvcHlFUktTMV8KK19fWk43V2ViQ29yZTIxQ3Jvc3NUaHJlYWRDb3BpZXJCYXNl
SUxiMEVMYjBFTlNfMTJJREJHZXRSZXN1bHRFRTRjb3B5RVJLUzFfCitfX1pON1dlYkNvcmUyMUNy
b3NzVGhyZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzE1SURCS2V5UmFuZ2VEYXRhRUU0Y29weUVS
S1MxXwogX19aTjdXZWJDb3JlMjFDcm9zc1RocmVhZENvcGllckJhc2VJTGIwRUxiMEVOU18yMklE
Qk9iamVjdFN0b3JlTWV0YWRhdGFFRTRjb3B5RVJLUzFfCitfX1pON1dlYkNvcmUyMUNyb3NzVGhy
ZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzlJbmRleGVkREIxMEN1cnNvclR5cGVFRTRjb3B5RVJL
UzJfCiBfX1pON1dlYkNvcmUyMUNyb3NzVGhyZWFkQ29waWVyQmFzZUlMYjBFTGIwRU5TXzlJbmRl
eGVkREIxNVRyYW5zYWN0aW9uTW9kZUVFNGNvcHlFUktTMl8KIF9fWk43V2ViQ29yZTZJREJLZXlE
MUV2CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCBmYzAzMWNjLi4wMDdkYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNzk4LDYgKzE3OTgsOCBA
QAogCQk1MTFFRjJEMTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3RvbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFRjJD
RTE3RjBGREYxMDBFNEZBMTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAgKi87IH07CiAJ
CTUxMUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUYyMzE1MERDMTYwREEwMDRG
MDAzMiAvKiBTdG9yYWdlVGhyZWFkLmNwcCAqLzsgfTsKIAkJNTExRjIzMUEwREMxNjBEQTAwNEYw
MDMyIC8qIFN0b3JhZ2VUaHJlYWQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMUYyMzE2MERDMTYwREEwMDRGMDAzMiAvKiBTdG9yYWdlVGhyZWFkLmgg
Ki87IH07CisJCTUxMjNBRjE4MTg5MEE0Q0EwMDMxQ0RDOSAvKiBJREJLZXlSYW5nZURhdGEuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyM0FGMTYx
ODkwQTRDQTAwMzFDREM5IC8qIElEQktleVJhbmdlRGF0YS5jcHAgKi87IH07CisJCTUxMjNBRjE5
MTg5MEE0Q0EwMDMxQ0RDOSAvKiBJREJLZXlSYW5nZURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMjNBRjE3MTg5MEE0Q0EwMDMxQ0RDOSAvKiBJ
REJLZXlSYW5nZURhdGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk1MTIzQUYxRDE4OTE4QUU0MDAzMUNEQzkgLyogSURCR2V0UmVzdWx0LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTIzQUYxQzE4OTE4
QUU0MDAzMUNEQzkgLyogSURCR2V0UmVzdWx0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTEyNkU2QkIwQTJFM0IxMjAwNUMyOUZBIC8qIEljb25E
YXRhYmFzZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1MTI2RTZCOTBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmNwcCAqLzsgfTsKIAkJ
NTEyNkU2QkMwQTJFM0IxMjAwNUMyOUZBIC8qIEljb25EYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEyNkU2QkEwQTJFM0IxMjAwNUMyOUZB
IC8qIEljb25EYXRhYmFzZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04NzUzLDYgKzg3NTUsOCBAQAogCQk1MTFFRjJDRTE3RjBGREYxMDBFNEZB
MTYgLyogSlNJREJPYmplY3RTdG9yZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBKU0lEQk9iamVjdFN0b3JlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExRjIzMTUwREMxNjBEQTAwNEYwMDMyIC8qIFN0b3JhZ2VUaHJlYWQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3RvcmFnZVRocmVhZC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUYyMzE2MERDMTYwREEwMDRGMDAz
MiAvKiBTdG9yYWdlVGhyZWFkLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0
b3JhZ2VUaHJlYWQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTEyM0FGMTYxODkw
QTRDQTAwMzFDREM5IC8qIElEQktleVJhbmdlRGF0YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBJREJLZXlSYW5nZURhdGEuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MTIzQUYxNzE4OTBBNENBMDAzMUNEQzkgLyogSURCS2V5UmFuZ2VEYXRhLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQktleVJhbmdlRGF0YS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTIzQUYxQzE4OTE4QUU0MDAzMUNEQzkgLyogSURC
R2V0UmVzdWx0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElEQkdldFJlc3Vs
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI2RTZCOTBBMkUzQjEyMDA1QzI5
RkEgLyogSWNvbkRhdGFiYXNlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBJY29uRGF0YWJhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTI2
RTZCQTBBMkUzQjEyMDA1QzI5RkEgLyogSWNvbkRhdGFiYXNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJY29uRGF0YWJhc2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE3NzE4LDYgKzE3NzIyLDggQEAKIAkJCQk1MUQ3MTk5NTE4MTEwNkUwMDAxNkRDNTEg
LyogSURCS2V5UmFuZ2UuY3BwICovLAogCQkJCTUxRDcxOTk2MTgxMTA2RTAwMDE2REM1MSAvKiBJ
REJLZXlSYW5nZS5oICovLAogCQkJCTUxRDcxOTk3MTgxMTA2RTAwMDE2REM1MSAvKiBJREJLZXlS
YW5nZS5pZGwgKi8sCisJCQkJNTEyM0FGMTYxODkwQTRDQTAwMzFDREM5IC8qIElEQktleVJhbmdl
RGF0YS5jcHAgKi8sCisJCQkJNTEyM0FGMTcxODkwQTRDQTAwMzFDREM5IC8qIElEQktleVJhbmdl
RGF0YS5oICovLAogCQkJCTUxRDcxOTk5MTgxMTA2RTAwMDE2REM1MSAvKiBJREJPYmplY3RTdG9y
ZS5jcHAgKi8sCiAJCQkJNTFENzE5OUExODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3Jl
LmggKi8sCiAJCQkJNTFENzE5OUIxODExMDZFMDAwMTZEQzUxIC8qIElEQk9iamVjdFN0b3JlLmlk
bCAqLywKQEAgLTI0NzAyLDYgKzI0NzA4LDcgQEAKIAkJCQkwRjU0RENEQTE4ODBGODY3MDAzRUVE
QkIgLyogRE9NVG91Y2hJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNFMEQwQUI3
NUE2RjAwMEU1QUM0IC8qIEpTU1ZHVHJhbnNmb3JtTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MDcyNzdFNEYxN0QwMThDQzAwMTU1MzREIC8qIEpTTWVkaWFTdHJlYW1BdWRpb0Rlc3RpbmF0aW9u
Tm9kZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTEyM0FGMTkxODkwQTRDQTAwMzFDREM5IC8qIElE
QktleVJhbmdlRGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJGQTNFMEYwQUI3NUE2RjAwMEU1
QUM0IC8qIEpTU1ZHVFJlZkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyRkEzRTExMEFC
NzVBNkYwMDBFNUFDNCAvKiBKU1NWR1RTcGFuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QjJGQTNFMTMwQUI3NUE2RjAwMEU1QUM0IC8qIEpTU1ZHVW5pdFR5cGVzLmggaW4gSGVhZGVycyAq
LywKQEAgLTI2OTE3LDYgKzI2OTI0LDcgQEAKIAkJCQlBNzgxQzZBNzEzODI4QjVEMDAxMkE2MkEg
LyogRG9jdW1lbnRNYXJrZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQ0UwNTdGQTUxMjIwNzMx
MTAwQTQ3NkQ1IC8qIERvY3VtZW50TWFya2VyQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkwNzYzMDZEQzE3RTE1RkIwMDA1QTdDNEUgLyogSlNNZWRpYVN0cmVhbVRyYWNrU291cmNl
c0NhbGxiYWNrLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMjNBRjE4MTg5MEE0Q0EwMDMxQ0RD
OSAvKiBJREJLZXlSYW5nZURhdGEuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQ5NDdGRkQxMkY4
MENEMjAwQTBGNjMxIC8qIERvY3VtZW50T3JkZXJlZE1hcC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBOEMyMjgwRTExRDRBNTk3MDBENUE3RDMgLyogRG9jdW1lbnRQYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMDc2MzA2RDIxN0UxNDc4RDAwNUE3QzRFIC8qIE1lZGlhU3RyZWFtVHJhY2tT
b3VyY2VzUmVxdWVzdC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0Nyb3NzVGhyZWFkQ29waWVyLmNwcAppbmRleCBiMGUzYTI3Li41N2QwNGUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Dcm9zc1RocmVhZENvcGllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuY3BwCkBAIC00Miw3ICs0
Miw5IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKICNpbmNsdWRlICJJREJEYXRh
YmFzZU1ldGFkYXRhLmgiCisjaW5jbHVkZSAiSURCR2V0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSURC
S2V5RGF0YS5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2VuZGlmCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTk0LDYgKzk2LDExIEBAIENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIElEQkRhdGFiYXNlTWV0YWRhdGE+OjpUeXBlIENyb3NzVGhyZWFkQ29waWVy
CiAgICAgcmV0dXJuIG1ldGFkYXRhLmlzb2xhdGVkQ29weSgpOwogfQogCitDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJREJHZXRSZXN1bHQ+OjpUeXBlIENyb3NzVGhyZWFkQ29w
aWVyQmFzZTxmYWxzZSwgZmFsc2UsIElEQkdldFJlc3VsdD46OmNvcHkoY29uc3QgSURCR2V0UmVz
dWx0JiByZXN1bHQpCit7CisgICAgcmV0dXJuIHJlc3VsdC5pc29sYXRlZENvcHkoKTsKK30KKwog
Q3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSURCSW5kZXhNZXRhZGF0YT46OlR5
cGUgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSURCSW5kZXhNZXRhZGF0YT46
OmNvcHkoY29uc3QgSURCSW5kZXhNZXRhZGF0YSYgbWV0YWRhdGEpCiB7CiAgICAgcmV0dXJuIG1l
dGFkYXRhLmlzb2xhdGVkQ29weSgpOwpAQCAtMTA0LDYgKzExMSwxMSBAQCBDcm9zc1RocmVhZENv
cGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJREJLZXlEYXRhPjo6VHlwZSBDcm9zc1RocmVhZENvcGll
ckJhc2U8ZmFscwogICAgIHJldHVybiBrZXlEYXRhLmlzb2xhdGVkQ29weSgpOwogfQogCitDcm9z
c1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBJREJLZXlSYW5nZURhdGE+OjpUeXBlIENy
b3NzVGhyZWFkQ29waWVyQmFzZTxmYWxzZSwgZmFsc2UsIElEQktleVJhbmdlRGF0YT46OmNvcHko
Y29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCit7CisgICAgcmV0dXJuIGtleVJh
bmdlRGF0YS5pc29sYXRlZENvcHkoKTsKK30KKwogQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNl
LCBmYWxzZSwgSURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OlR5cGUgQ3Jvc3NUaHJlYWRDb3BpZXJC
YXNlPGZhbHNlLCBmYWxzZSwgSURCT2JqZWN0U3RvcmVNZXRhZGF0YT46OmNvcHkoY29uc3QgSURC
T2JqZWN0U3RvcmVNZXRhZGF0YSYgbWV0YWRhdGEpCiB7CiAgICAgcmV0dXJuIG1ldGFkYXRhLmlz
b2xhdGVkQ29weSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Jvc3NU
aHJlYWRDb3BpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Nyb3NzVGhyZWFkQ29waWVy
LmgKaW5kZXggMDMyYTI3Yy4uM2Y4MWNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ3Jvc3NUaHJlYWRDb3BpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
cm9zc1RocmVhZENvcGllci5oCkBAIC0xNjcsNiArMTY3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBJREJEYXRhYmFzZU1ldGFkYXRhJik7
CiAgICAgfTsKIAorICAgIHN0cnVjdCBJREJHZXRSZXN1bHQ7CisgICAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSURCR2V0UmVzdWx0PiB7Cisg
ICAgICAgIHR5cGVkZWYgSURCR2V0UmVzdWx0IFR5cGU7CisgICAgICAgIHN0YXRpYyBUeXBlIGNv
cHkoY29uc3QgSURCR2V0UmVzdWx0Jik7CisgICAgfTsKKwogICAgIHN0cnVjdCBJREJJbmRleE1l
dGFkYXRhOwogICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxmYWxz
ZSwgZmFsc2UsIElEQkluZGV4TWV0YWRhdGE+IHsKICAgICAgICAgdHlwZWRlZiBJREJJbmRleE1l
dGFkYXRhIFR5cGU7CkBAIC0xNzksNiArMTg1LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgc3RhdGljIFR5cGUgY29weShjb25zdCBJREJLZXlEYXRhJik7CiAgICAgfTsKIAorICAg
IHN0cnVjdCBJREJLZXlSYW5nZURhdGE7CisgICAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJl
YWRDb3BpZXJCYXNlPGZhbHNlLCBmYWxzZSwgSURCS2V5UmFuZ2VEYXRhPiB7CisgICAgICAgIHR5
cGVkZWYgSURCS2V5UmFuZ2VEYXRhIFR5cGU7CisgICAgICAgIHN0YXRpYyBUeXBlIGNvcHkoY29u
c3QgSURCS2V5UmFuZ2VEYXRhJik7CisgICAgfTsKKwogICAgIHN0cnVjdCBJREJPYmplY3RTdG9y
ZU1ldGFkYXRhOwogICAgIHRlbXBsYXRlPD4gc3RydWN0IENyb3NzVGhyZWFkQ29waWVyQmFzZTxm
YWxzZSwgZmFsc2UsIElEQk9iamVjdFN0b3JlTWV0YWRhdGE+IHsKICAgICAgICAgdHlwZWRlZiBJ
REJPYmplY3RTdG9yZU1ldGFkYXRhIFR5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2NkMDg4NS4uZWQ3ZDk5
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE0LTAxLTIzICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBJREI6IEltcGxlbWVudCBjcm9zcy10aHJl
YWQgYW5kIElQQyBwbHVtYmluZyBmb3IgJ2dldCcgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI3NTAxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB0aGUgV2ViUHJvY2VzcyBjYWxsIG91
dCB0byB0aGUgRGF0YWJhc2VQcm9jZXNzIHdpdGggYSBnZXQgcmVxdWVzdCwgYW5kIGhhbmRsZSB0
aGUKKyAgICAgICAgcmVzcG9uc2UgZnJvbSB0aGUgRGF0YWJhc2VQcm9jZXNzOgorICAgICAgICAq
IFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6Z2V0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkR2V0UmVjb3JkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlv
bi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluOgorCisgICAgICAgIEdldCB0aGUgcmVxdWVzdCBmcm9t
IHRoZSBXZWJQcm9jZXNzIGFuZCBmb3J3YXJkIGl0IHRvIHRoZSBhcHByb3ByaWF0ZSB1bmlxdWUg
SURCIGRhdGFiYXNlOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJh
c2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb246OmdldFJlY29yZCk6CisgICAgICAgICogRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmg6CisgICAgICAgICogRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLm1lc3Nh
Z2VzLmluOgorCisgICAgICAgIEZvcndhcmQgdGhlIHJlcXVlc3QgdG8gdGhlIGRhdGFiYXNlIHRo
cmVhZCwgYW5kIHJlc3BvbnNlIHRvIHRoZSByZXN1bHQgZnJvbSB0aGF0IHRocmVhZDoKKyAgICAg
ICAgKiBEYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChX
ZWJLaXQ6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKToKKyAg
ICAgICAgKFdlYktpdDo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZEdldFJlY29yZEZyb21CYWNraW5n
U3RvcmUpOgorICAgICAgICAqIERhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0
YWJhc2UuaDoKKworICAgICAgICBJUEMgYW5kIGFzeW5jaHJvbm91cyByZXF1ZXN0IGluZnJhc3Ry
dWN0dXJlOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0Mi9tZXNzYWdlcy5weToKKyAgICAgICAg
KHN0cnVjdF9vcl9jbGFzcyk6CisKKyAgICAgICAgKiBTaGFyZWQvQXN5bmNUYXNrLmg6CisgICAg
ICAgIChXZWJLaXQ6OmNyZWF0ZUFzeW5jVGFzayk6CisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJHZXRS
ZXN1bHQ+OjplbmNvZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPElEQkdldFJlc3Vs
dD46OmRlY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29kZXI8SURCS2V5UmFuZ2VEYXRh
Pjo6ZW5jb2RlKToKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxJREJLZXlSYW5nZURhdGE+
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKwog
MjAxNC0wMS0yMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAK
ICAgICAgICAgW0dMSUJdIFVzZSBHVW5pcXVlUHRyIGluc3RlYWQgb2YgR093blB0cgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9J
bmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5jcHAKaW5kZXggNWY4MDczMS4u
YmI1ZmM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4
ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJvY2Vzc0lEQkNvbm5lY3Rpb24u
Y3BwCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgi
CiAjaW5jbHVkZSAiV2ViSURCU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8
V2ViQ29yZS9JREJEYXRhYmFzZU1ldGFkYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJTZXJ2
ZXJDb25uZWN0aW9uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbmRleGVkREIuaD4KIAogdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xODgsNiArMTg5LDE2IEBAIHZvaWQgRGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbjo6cHV0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0
cmFuc2FjCiAgICAgfSk7CiB9CiAKK3ZvaWQgRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbjo6
Z2V0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2
NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
JiBrZXlSYW5nZSwgaW50NjRfdCBjdXJzb3JUeXBlKQoreworICAgIEFTU0VSVChtX3VuaXF1ZUlE
QkRhdGFiYXNlKTsKKworICAgIExPRyhJREIsICJEYXRhYmFzZVByb2Nlc3MgZ2V0UmVjb3JkIHJl
cXVlc3QgSUQgJWxsdSwgb2JqZWN0IHN0b3JlIGlkICVsbGkiLCByZXF1ZXN0SUQsIG9iamVjdFN0
b3JlSUQpOworICAgIFJlZlB0cjxEYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uPiBjb25uZWN0
aW9uKHRoaXMpOworICAgIG1fdW5pcXVlSURCRGF0YWJhc2UtPmdldFJlY29yZChJREJUcmFuc2Fj
dGlvbklkZW50aWZpZXIoKnRoaXMsIHRyYW5zYWN0aW9uSUQpLCBvYmplY3RTdG9yZUlELCBpbmRl
eElELCBrZXlSYW5nZSwgc3RhdGljX2Nhc3Q8SW5kZXhlZERCOjpDdXJzb3JUeXBlPihjdXJzb3JU
eXBlKSwgW2Nvbm5lY3Rpb24sIHJlcXVlc3RJRF0oY29uc3QgSURCR2V0UmVzdWx0JiBnZXRSZXN1
bHQsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIHsKKyAg
ICAgICAgY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6V2ViSURCU2VydmVyQ29ubmVjdGlvbjo6
RGlkR2V0UmVjb3JkKHJlcXVlc3RJRCwgZ2V0UmVzdWx0LCBlcnJvckNvZGUsIGVycm9yTWVzc2Fn
ZSkpOworICAgIH0pOworfQogCiBJUEM6OkNvbm5lY3Rpb24qIERhdGFiYXNlUHJvY2Vzc0lEQkNv
bm5lY3Rpb246Om1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29u
bmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRh
YmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKaW5kZXggYWMyMTkyMS4uM2Q5MmJhNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVBy
b2Nlc3NJREJDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLmgKQEAgLTM2LDYgKzM2LDcg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogc3RydWN0IElEQktleURhdGE7CitzdHJ1Y3QgSURC
S2V5UmFuZ2VEYXRhOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTc2LDYgKzc3LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwg
aW50NjRfdCB0cmFuc2FjdGlvbklELCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhKTsK
ICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0
cmFuc2FjdGlvbklELCBpbnQ2NF90IG9iamVjdFN0b3JlSUQpOwogICAgIHZvaWQgcHV0UmVjb3Jk
KHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFuc2FjdGlvbklELCBpbnQ2NF90IG9iamVj
dFN0b3JlSUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBJUEM6OkRhdGFSZWZl
cmVuY2UmIHZhbHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5k
ZXhJRHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURCS2V5RGF0YT4+JiBpbmRleEtl
eXMpOworICAgIHZvaWQgZ2V0UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgaW50NjRfdCB0cmFu
c2FjdGlvbklELCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJRCwgY29uc3Qg
V2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZSwgaW50NjRfdCBjdXJzb3JUeXBlKTsK
IAogICAgIFJlZjxEYXRhYmFzZVRvV2ViUHJvY2Vzc0Nvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsK
ICAgICB1aW50NjRfdCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJ
REJDb25uZWN0aW9uLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNz
L0luZGV4ZWREQi9EYXRhYmFzZVByb2Nlc3NJREJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IGE5Mzg0MTEuLjE1MTNlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5kZXhlZERCL0RhdGFiYXNlUHJv
Y2Vzc0lEQkNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KQEAgLTM2LDYgKzM2LDcgQEAgbWVzc2FnZXMg
LT4gRGF0YWJhc2VQcm9jZXNzSURCQ29ubmVjdGlvbiBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ3Jl
YXRlT2JqZWN0U3RvcmUodWludDY0X3QgcmVxdWVzdElELCBpbnQ2NF90IHRyYW5zYWN0aW9uSUQs
IFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEgb2JqZWN0U3RvcmVNZXRhZGF0YSkKICAg
ICBEZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rp
b25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlEKQogICAgIFB1dFJlY29yZCh1aW50NjRfdCByZXF1
ZXN0SUQsIGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBXZWJD
b3JlOjpJREJLZXlEYXRhIGtleSwgSVBDOjpEYXRhUmVmZXJlbmNlIHZhbHVlLCBpbnQ2NF90IHB1
dE1vZGUsIFZlY3RvcjxpbnQ2NF90PiBpbmRleElEcywgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJ
REJLZXlEYXRhPj4gaW5kZXhLZXlzKQorICAgIEdldFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQs
IGludDY0X3QgdHJhbnNhY3Rpb25JRCwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGlu
ZGV4SUQsIFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSBrZXlSYW5nZSwgaW50NjRfdCBjdXJzb3JU
eXBlKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFCTEUo
REFUQUJBU0VfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJv
Y2Vzcy9JbmRleGVkREIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdDIvRGF0
YWJhc2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKaW5kZXggODMwMjJh
MC4uMDA1YjI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvRGF0YWJh
c2VQcm9jZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTM4LDcgKzM4LDkg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lE
QkRhdGFiYXNlQmFja2VuZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSURCRGF0YWJhc2VNZXRhZGF0
YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSURCR2V0UmVzdWx0Lmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9JREJLZXlEYXRhLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9JREJLZXlSYW5nZURhdGEuaD4KICNp
bmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC00MTYsNiArNDE4LDI5IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dFJlY29y
ZChjb25zdCBJREJUcmFuc2FjdGlvbklkZW50aWZpZXImIGlkZW50aWZpZXIsIGluCiAgICAgcG9z
dERhdGFiYXNlVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6
cHV0UmVjb3JkSW5CYWNraW5nU3RvcmUsIHJlcXVlc3RJRCwgaWRlbnRpZmllciwgbV9tZXRhZGF0
YS0+b2JqZWN0U3RvcmVzLmdldChvYmplY3RTdG9yZUlEKSwga2V5RGF0YSwgdmFsdWUudmVjdG9y
KCksIHB1dE1vZGUsIGluZGV4SURzLCBpbmRleEtleXMpKTsKIH0KIAordm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRp
ZmllciwgaW50NjRfdCBvYmplY3RTdG9yZUlELCBpbnQ2NF90IGluZGV4SUQsIGNvbnN0IFdlYkNv
cmU6OklEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhLCBXZWJDb3JlOjpJbmRleGVkREI6OkN1
cnNvclR5cGUgY3Vyc29yVHlwZSwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OklE
QkdldFJlc3VsdCYsIHVpbnQzMl90LCBjb25zdCBTdHJpbmcmKT4gY2FsbGJhY2spCit7CisgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKworICAgIGlmICghbV9hY2NlcHRpbmdOZXdSZXF1ZXN0
cykgeworICAgICAgICBjYWxsYmFjayhJREJHZXRSZXN1bHQoKSwgSU5WQUxJRF9TVEFURV9FUlIs
ICJVbmFibGUgdG8gZ2V0IHJlY29yZCBmcm9tIGRhdGFiYXNlIGJlY2F1c2UgaXQgaGFzIHNodXQg
ZG93biIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgQVNTRVJUKG1fbWV0YWRhdGEt
Pm9iamVjdFN0b3Jlcy5jb250YWlucyhvYmplY3RTdG9yZUlEKSk7CisKKyAgICBSZWZQdHI8QXN5
bmNSZXF1ZXN0PiByZXF1ZXN0ID0gQXN5bmNSZXF1ZXN0SW1wbDxjb25zdCBJREJHZXRSZXN1bHQm
LCB1aW50MzJfdCwgY29uc3QgU3RyaW5nJj46OmNyZWF0ZShbdGhpcywgY2FsbGJhY2tdKGNvbnN0
IElEQkdldFJlc3VsdCYgcmVzdWx0LCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSB7CisgICAgICAgIGNhbGxiYWNrKHJlc3VsdCwgZXJyb3JDb2RlLCBlcnJv
ck1lc3NhZ2UpOworICAgIH0sIFt0aGlzLCBjYWxsYmFja10oKSB7CisgICAgICAgIGNhbGxiYWNr
KElEQkdldFJlc3VsdCgpLCBJTlZBTElEX1NUQVRFX0VSUiwgIlVuYWJsZSB0byBnZXQgcmVjb3Jk
IGZyb20gZGF0YWJhc2UiKTsKKyAgICB9KTsKKworICAgIHVpbnQ2NF90IHJlcXVlc3RJRCA9IHJl
cXVlc3QtPnJlcXVlc3RJRCgpOworICAgIG1fcGVuZGluZ0RhdGFiYXNlVGFza3MuYWRkKHJlcXVl
c3RJRCwgcmVxdWVzdC5yZWxlYXNlKCkpOworCisgICAgcG9zdERhdGFiYXNlVGFzayhjcmVhdGVB
c3luY1Rhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkRnJvbUJhY2tpbmdT
dG9yZSwgcmVxdWVzdElELCBpZGVudGlmaWVyLCBtX21ldGFkYXRhLT5vYmplY3RTdG9yZXMuZ2V0
KG9iamVjdFN0b3JlSUQpLCBpbmRleElELCBrZXlSYW5nZURhdGEsIGN1cnNvclR5cGUpKTsKK30K
Kwogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uKGNv
bnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYgaWRlbnRpZmllciwgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBvYmplY3RTdG9yZUlEcywgSW5kZXhlZERCOjpUcmFuc2FjdGlvbk1vZGUgbW9kZSkK
IHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKQEAgLTU1Miw2ICs1NzcsMjEgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUHV0UmVjb3JkSW5CYWNraW5nU3RvcmUodWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBJREIKICAgICByZXF1ZXN0LT5jb21wbGV0ZVJlcXVlc3Qoa2V5RGF0
YSwgZXJyb3JDb2RlLCBlcnJvck1lc3NhZ2UpOwogfQogCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgSURC
VHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRh
ZGF0YSYsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwg
V2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1l
bnQKKworICAgIHBvc3RNYWluVGhyZWFkVGFzayhjcmVhdGVBc3luY1Rhc2soKnRoaXMsICZVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkR2V0UmVjb3JkRnJvbUJhY2tpbmdTdG9yZSwgcmVxdWVzdElELCBJ
REJHZXRSZXN1bHQoKSwgSURCRGF0YWJhc2VFeGNlcHRpb246OlVua25vd25FcnJvciwgQVNDSUlM
aXRlcmFsKCInZ2V0JyBzdXBwb3J0IG5vdCB5ZXQgaW1wbGVtZW50ZWQiKSkpOworfQorCit2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWRHZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgSURCR2V0UmVzdWx0JiByZXN1bHQsIHVpbnQzMl90IGVycm9yQ29k
ZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVz
dD4gcmVxdWVzdCA9IG1fcGVuZGluZ0RhdGFiYXNlVGFza3MudGFrZShyZXF1ZXN0SUQpOworICAg
IEFTU0VSVChyZXF1ZXN0KTsKKworICAgIHJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChyZXN1bHQs
IGVycm9yQ29kZSwgZXJyb3JNZXNzYWdlKTsKK30KKwogU3RyaW5nIFVuaXF1ZUlEQkRhdGFiYXNl
OjphYnNvbHV0ZURhdGFiYXNlRGlyZWN0b3J5KCkgY29uc3QKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9jZXNzL0lu
ZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYktpdDIvRGF0YWJhc2VQcm9j
ZXNzL0luZGV4ZWREQi9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IGJhOWI1NWIuLjk1YmQ1Yzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0RhdGFiYXNlUHJvY2Vzcy9JbmRleGVkREIvVW5p
cXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EYXRhYmFzZVByb2Nlc3MvSW5k
ZXhlZERCL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTc4LDYgKzc4LDcgQEAgcHVibGljOgogICAg
IHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwg
Y29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YSYsIHN0ZDo6ZnVuY3Rpb248dm9p
ZChib29sKT4gc3VjY2Vzc0NhbGxiYWNrKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNv
bnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGludDY0X3Qgb2JqZWN0U3RvcmVJRCwgc3Rk
OjpmdW5jdGlvbjx2b2lkKGJvb2wpPiBzdWNjZXNzQ2FsbGJhY2spOwogICAgIHZvaWQgcHV0UmVj
b3JkKGNvbnN0IElEQlRyYW5zYWN0aW9uSWRlbnRpZmllciYsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
RCwgY29uc3QgV2ViQ29yZTo6SURCS2V5RGF0YSYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYg
dmFsdWUsIGludDY0X3QgcHV0TW9kZSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElEcywg
Y29uc3QgVmVjdG9yPFZlY3RvcjxXZWJDb3JlOjpJREJLZXlEYXRhPj4mIGluZGV4S2V5cywgc3Rk
OjpmdW5jdGlvbjx2b2lkKGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCwgY29u
c3QgU3RyaW5nJik+IGNhbGxiYWNrKTsKKyAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJUcmFu
c2FjdGlvbklkZW50aWZpZXImLCBpbnQ2NF90IG9iamVjdFN0b3JlSUQsIGludDY0X3QgaW5kZXhJ
RCwgY29uc3QgV2ViQ29yZTo6SURCS2V5UmFuZ2VEYXRhJiwgV2ViQ29yZTo6SW5kZXhlZERCOjpD
dXJzb3JUeXBlLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoY29uc3QgV2ViQ29yZTo6SURCR2V0UmVzdWx0
JiwgdWludDMyX3QsIGNvbnN0IFN0cmluZyYpPiBjYWxsYmFjayk7CiAKIHByaXZhdGU6CiAgICAg
VW5pcXVlSURCRGF0YWJhc2UoY29uc3QgVW5pcXVlSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CkBA
IC0xMjAsNyArMTIxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlSW5C
YWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBJREJUcmFuc2FjdGlvbklkZW50
aWZpZXImLCBjb25zdCBXZWJDb3JlOjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJik7CiAgICAgdm9p
ZCBkZWxldGVPYmplY3RTdG9yZUluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgaW50NjRfdCBvYmplY3RTdG9yZUlEKTsKICAg
ICB2b2lkIHB1dFJlY29yZEluQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3Qg
SURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6SURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mIHZhbHVlLCBpbnQ2NF90IHB1dE1vZGUsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJ
RHMsIGNvbnN0IFZlY3RvcjxWZWN0b3I8V2ViQ29yZTo6SURCS2V5RGF0YT4+JiBpbmRleEtleXMp
OwotCisgICAgdm9pZCBnZXRSZWNvcmRGcm9tQmFja2luZ1N0b3JlKHVpbnQ2NF90IHJlcXVlc3RJ
RCwgY29uc3QgSURCVHJhbnNhY3Rpb25JZGVudGlmaWVyJiwgY29uc3QgV2ViQ29yZTo6SURCT2Jq
ZWN0U3RvcmVNZXRhZGF0YSYsIGludDY0X3QgaW5kZXhJRCwgY29uc3QgV2ViQ29yZTo6SURCS2V5
UmFuZ2VEYXRhJiwgV2ViQ29yZTo6SW5kZXhlZERCOjpDdXJzb3JUeXBlKTsKIAogICAgIHZvaWQg
c2h1dGRvd25CYWNraW5nU3RvcmUoKTsKIApAQCAtMTMyLDYgKzEzMyw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRDcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGJvb2wgc3Vj
Y2Vzcyk7CiAgICAgdm9pZCBkaWREZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGJvb2wgc3VjY2Vzcyk7CiAgICAgdm9pZCBkaWRQdXRSZWNvcmRJbkJhY2tpbmdTdG9yZSh1aW50
NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCBlcnJv
ckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEdldFJlY29y
ZEZyb21CYWNraW5nU3RvcmUodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpJREJH
ZXRSZXN1bHQmLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KTsKICAgICB2b2lkIGRpZFNodXRkb3duQmFja2luZ1N0b3JlKCk7CiAgICAgdm9pZCBkaWRDb21w
bGV0ZUJvb2xSZXF1ZXN0KHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5IGIvU291
cmNlL1dlYktpdDIvU2NyaXB0cy93ZWJraXQyL21lc3NhZ2VzLnB5CmluZGV4IDJkNjQ3NmMuLjdi
ODAwNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvd2Via2l0Mi9tZXNzYWdl
cy5weQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL3dlYmtpdDIvbWVzc2FnZXMucHkKQEAg
LTE3Nyw3ICsxNzcsOSBAQCBkZWYgc3RydWN0X29yX2NsYXNzKG5hbWVzcGFjZSwgdHlwZSk6CiAg
ICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJywKICAgICAgICAgJ1dlYkNvcmU6
OkdyYW1tYXJEZXRhaWwnLAogICAgICAgICAnV2ViQ29yZTo6SURCRGF0YWJhc2VNZXRhZGF0YScs
CisgICAgICAgICdXZWJDb3JlOjpJREJHZXRSZXN1bHQnLAogICAgICAgICAnV2ViQ29yZTo6SURC
S2V5RGF0YScsCisgICAgICAgICdXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEnLAogICAgICAgICAn
V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YScsCiAgICAgICAgICdXZWJDb3JlOjpJZGVu
dGl0eVRyYW5zZm9ybU9wZXJhdGlvbicsCiAgICAgICAgICdXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jVGFzay5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0FzeW5jVGFzay5oCmluZGV4IGJlZGQ4YzEuLmI4OTRlNmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Bc3luY1Rhc2suaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQXN5bmNUYXNrLmgKQEAgLTEzNCw2ICsxMzQsMjggQEAgc3RkOjp1bmlx
dWVfcHRyPEFzeW5jVGFzaz4gY3JlYXRlQXN5bmNUYXNrKAogICAgICAgICBXZWJDb3JlOjpDcm9z
c1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCkpOwogfQogCit0ZW1wbGF0ZTx0eXBl
bmFtZSBULCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgTVAxLCB0eXBlbmFtZSBQMiwgdHlwZW5hbWUg
TVAyLCB0eXBlbmFtZSBQMywgdHlwZW5hbWUgTVAzLCB0eXBlbmFtZSBQNCwgdHlwZW5hbWUgTVA0
LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgTVA1LCB0eXBlbmFtZSBQNiwgdHlwZW5hbWUgTVA2Pgor
c3RkOjp1bmlxdWVfcHRyPEFzeW5jVGFzaz4gY3JlYXRlQXN5bmNUYXNrKAorICAgIFQmIGNhbGxl
ZSwKKyAgICB2b2lkIChUOjoqbWV0aG9kKShNUDEsIE1QMiwgTVAzLCBNUDQsIE1QNSwgTVA2KSwK
KyAgICBjb25zdCBQMSYgcGFyYW1ldGVyMSwKKyAgICBjb25zdCBQMiYgcGFyYW1ldGVyMiwKKyAg
ICBjb25zdCBQMyYgcGFyYW1ldGVyMywKKyAgICBjb25zdCBQNCYgcGFyYW1ldGVyNCwKKyAgICBj
b25zdCBQNSYgcGFyYW1ldGVyNSwKKyAgICBjb25zdCBQNiYgcGFyYW1ldGVyNikKK3sKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxBc3luY1Rhc2tJbXBsPFQsIE1QMSwgTVAyLCBNUDMsIE1Q
NCwgTVA1LCBNUDY+PigKKyAgICAgICAgJmNhbGxlZSwKKyAgICAgICAgbWV0aG9kLAorICAgICAg
ICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQMT46OmNvcHkocGFyYW1ldGVyMSksCisgICAg
ICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFAyPjo6Y29weShwYXJhbWV0ZXIyKSwKKyAg
ICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDM+Ojpjb3B5KHBhcmFtZXRlcjMpLAor
ICAgICAgICBXZWJDb3JlOjpDcm9zc1RocmVhZENvcGllcjxQND46OmNvcHkocGFyYW1ldGVyNCks
CisgICAgICAgIFdlYkNvcmU6OkNyb3NzVGhyZWFkQ29waWVyPFA1Pjo6Y29weShwYXJhbWV0ZXI1
KSwKKyAgICAgICAgV2ViQ29yZTo6Q3Jvc3NUaHJlYWRDb3BpZXI8UDY+Ojpjb3B5KHBhcmFtZXRl
cjYpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIE1Q
MSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIE1QMiwgdHlwZW5hbWUgUDMsIHR5cGVuYW1lIE1QMywg
dHlwZW5hbWUgUDQsIHR5cGVuYW1lIE1QNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIE1QNSwgdHlw
ZW5hbWUgUDYsIHR5cGVuYW1lIE1QNiwgdHlwZW5hbWUgUDcsIHR5cGVuYW1lIE1QNywgdHlwZW5h
bWUgUDgsIHR5cGVuYW1lIE1QOD4KIHN0ZDo6dW5pcXVlX3B0cjxBc3luY1Rhc2s+IGNyZWF0ZUFz
eW5jVGFzaygKICAgICBUJiBjYWxsZWUsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4IDZmYmY4NDQuLmViZDJlY2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmgiCiAKKyNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiU2hhcmVhYmxl
Qml0bWFwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvQ2VydGlmaWNhdGVJbmZvLmg+CkBAIC00Miw4ICs0MywxMCBAQAog
I2luY2x1ZGUgPFdlYkNvcmUvR3JhcGhpY3NDb250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9H
cmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JREJEYXRhYmFzZU1ldGFkYXRhLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9JREJHZXRSZXN1bHQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lE
QktleURhdGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0lEQktleVBhdGguaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL0lEQktleVJhbmdlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2UuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0xlbmd0aC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luRGF0YS5o
PgpAQCAtMTYyMyw2ICsxNjI2LDQyIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxJREJJbmRleE1ldGFk
YXRhPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgSURCSW5kZXhNCiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxJREJHZXRSZXN1bHQ+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJHZXRSZXN1bHQmIHJlc3VsdCkKK3sK
KyAgICBib29sIG51bGxEYXRhID0gIXJlc3VsdC52YWx1ZUJ1ZmZlcjsKKyAgICBlbmNvZGVyIDw8
IG51bGxEYXRhOworCisgICAgaWYgKCFudWxsRGF0YSkKKyAgICAgICAgZW5jb2RlciA8PCBEYXRh
UmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KHJlc3VsdC52YWx1ZUJ1
ZmZlci0+ZGF0YSgpKSwgcmVzdWx0LnZhbHVlQnVmZmVyLT5zaXplKCkpOworCisgICAgZW5jb2Rl
ciA8PCByZXN1bHQua2V5RGF0YSA8PCByZXN1bHQua2V5UGF0aDsKK30KKworYm9vbCBBcmd1bWVu
dENvZGVyPElEQkdldFJlc3VsdD46OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElE
QkdldFJlc3VsdCYgcmVzdWx0KQoreworICAgIGJvb2wgbnVsbERhdGE7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShudWxsRGF0YSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChu
dWxsRGF0YSkKKyAgICAgICAgcmVzdWx0LnZhbHVlQnVmZmVyID0gbnVsbHB0cjsKKyAgICBlbHNl
IHsKKyAgICAgICAgRGF0YVJlZmVyZW5jZSBkYXRhOworICAgICAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGRhdGEpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIHJlc3VsdC52
YWx1ZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUo
KSk7CisgICAgfQorCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQua2V5RGF0YSkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0Lmtl
eVBhdGgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
dm9pZCBBcmd1bWVudENvZGVyPElEQktleURhdGE+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKQogewogICAgIGVuY29kZXIgPDwga2V5
RGF0YS5pc051bGw7CkBAIC0xNzM1LDYgKzE3NzQsMzggQEAgYm9vbCBBcmd1bWVudENvZGVyPElE
QktleVBhdGg+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlQYXRoJiBr
ZXkKICAgICB9CiB9CiAKK3ZvaWQgQXJndW1lbnRDb2RlcjxJREJLZXlSYW5nZURhdGE+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJh
bmdlKQoreworICAgIGVuY29kZXIgPDwga2V5UmFuZ2UuaXNOdWxsOworICAgIGlmIChrZXlSYW5n
ZS5pc051bGwpCisgICAgICAgIHJldHVybjsKKworICAgIGVuY29kZXIgPDwga2V5UmFuZ2UudXBw
ZXJLZXkgPDwga2V5UmFuZ2UubG93ZXJLZXkgPDwga2V5UmFuZ2UudXBwZXJPcGVuIDw8IGtleVJh
bmdlLmxvd2VyT3BlbjsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPElEQktleVJhbmdlRGF0YT46
OmRlY29kZShBcmd1bWVudERlY29kZXImIGRlY29kZXIsIElEQktleVJhbmdlRGF0YSYga2V5UmFu
Z2UpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShrZXlSYW5nZS5pc051bGwpKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoa2V5UmFuZ2UuaXNOdWxsKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoa2V5UmFuZ2UudXBwZXJLZXkpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdl
Lmxvd2VyS2V5KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZShrZXlSYW5nZS51cHBlck9wZW4pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKGtleVJhbmdlLmxvd2VyT3BlbikpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8SURCT2Jq
ZWN0U3RvcmVNZXRhZGF0YT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIsIGNvbnN0
IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG1ldGFkYXRhKQogewogICAgIGVuY29kZXIgPDwgbWV0
YWRhdGEubmFtZSA8PCBtZXRhZGF0YS5pZCA8PCBtZXRhZGF0YS5rZXlQYXRoIDw8IG1ldGFkYXRh
LmF1dG9JbmNyZW1lbnQgPDwgbWV0YWRhdGEubWF4SW5kZXhJZCA8PCBtZXRhZGF0YS5pbmRleGVz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4
IDU3M2YyNDQuLmEyNTZlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFy
Z3VtZW50Q29kZXJzLmgKQEAgLTY1LDggKzY1LDEwIEBAIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5h
dGl2ZTsKIHN0cnVjdCBEcmFnU2Vzc2lvbjsKIHN0cnVjdCBGaWxlQ2hvb3NlclNldHRpbmdzOwog
c3RydWN0IElEQkRhdGFiYXNlTWV0YWRhdGE7CitzdHJ1Y3QgSURCR2V0UmVzdWx0Owogc3RydWN0
IElEQkluZGV4TWV0YWRhdGE7CiBzdHJ1Y3QgSURCS2V5RGF0YTsKK3N0cnVjdCBJREJLZXlSYW5n
ZURhdGE7CiBzdHJ1Y3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YTsKIHN0cnVjdCBMZW5ndGg7CiBz
dHJ1Y3QgR3JhbW1hckRldGFpbDsKQEAgLTM2MCw2ICszNjIsMTEgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJREJEYXRhYmFzZU1ldGFkYXRhPiB7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQkRhdGFiYXNlTWV0
YWRhdGEmKTsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6
SURCR2V0UmVzdWx0PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYs
IGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShB
cmd1bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJHZXRSZXN1bHQmKTsKK307CisKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SURCSW5kZXhNZXRhZGF0YT4gewogICAg
IHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpJREJJ
bmRleE1ldGFkYXRhJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYs
IFdlYkNvcmU6OklEQkluZGV4TWV0YWRhdGEmKTsKQEAgLTM3NSw2ICszODIsMTEgQEAgdGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpJREJLZXlQYXRoPiB7CiAgICAgc3Rh
dGljIGJvb2wgZGVjb2RlKEFyZ3VtZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQktleVBhdGgmKTsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SURCS2V5UmFu
Z2VEYXRhPiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEFyZ3VtZW50RW5jb2RlciYsIGNvbnN0
IFdlYkNvcmU6OklEQktleVJhbmdlRGF0YSYpOworICAgIHN0YXRpYyBib29sIGRlY29kZShBcmd1
bWVudERlY29kZXImLCBXZWJDb3JlOjpJREJLZXlSYW5nZURhdGEmKTsKK307CisKIHRlbXBsYXRl
PD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6SURCT2JqZWN0U3RvcmVNZXRhZGF0YT4g
ewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShBcmd1bWVudEVuY29kZXImLCBjb25zdCBXZWJDb3Jl
OjpJREJPYmplY3RTdG9yZU1ldGFkYXRhJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKEFyZ3Vt
ZW50RGVjb2RlciYsIFdlYkNvcmU6OklEQk9iamVjdFN0b3JlTWV0YWRhdGEmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJT
ZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2Vz
L0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBmOTA5Y2RkLi5lYWI0
MzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRl
eGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlRv
RGF0YWJhc2VQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvSURCRGF0YWJh
c2VNZXRhZGF0YS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvSURCS2V5UmFuZ2VEYXRhLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKQEAgLTI5Nyw4ICsyOTgsMjMgQEAgdm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpkZWxl
dGVJbmRleChJREJUcmFuc2FjdGlvbkJhY2tlbmQmLCBjb25zdCBEZWxldGVJbmQKIHsKIH0KIAot
dm9pZCBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uOjpnZXQoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwg
Y29uc3QgR2V0T3BlcmF0aW9uJiwgc3RkOjpmdW5jdGlvbjx2b2lkKGNvbnN0IElEQkdldFJlc3Vs
dCYsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBjb21wbGV0aW9uQ2FsbGJhY2spCit2
b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246OmdldChJREJUcmFuc2FjdGlvbkJhY2tlbmQmIHRy
YW5zYWN0aW9uLCBjb25zdCBHZXRPcGVyYXRpb24mIG9wZXJhdGlvbiwgc3RkOjpmdW5jdGlvbjx2
b2lkKGNvbnN0IElEQkdldFJlc3VsdCYsIFBhc3NSZWZQdHI8SURCRGF0YWJhc2VFcnJvcj4pPiBj
b21wbGV0aW9uQ2FsbGJhY2spCiB7CisgICAgUmVmUHRyPEFzeW5jUmVxdWVzdD4gc2VydmVyUmVx
dWVzdCA9IEFzeW5jUmVxdWVzdEltcGw8Y29uc3QgSURCR2V0UmVzdWx0JiwgUGFzc1JlZlB0cjxJ
REJEYXRhYmFzZUVycm9yPj46OmNyZWF0ZShjb21wbGV0aW9uQ2FsbGJhY2spOworCisgICAgc2Vy
dmVyUmVxdWVzdC0+c2V0QWJvcnRIYW5kbGVyKFtjb21wbGV0aW9uQ2FsbGJhY2tdKCkgeworICAg
ICAgICBjb21wbGV0aW9uQ2FsbGJhY2soSURCR2V0UmVzdWx0KCksIElEQkRhdGFiYXNlRXJyb3I6
OmNyZWF0ZShJREJEYXRhYmFzZUV4Y2VwdGlvbjo6VW5rbm93bkVycm9yLCAiVW5rbm93biBlcnJv
ciBvY2N1cmVkIGdldHRpbmcgcmVjb3JkIikpOworICAgIH0pOworCisgICAgdWludDY0X3QgcmVx
dWVzdElEID0gc2VydmVyUmVxdWVzdC0+cmVxdWVzdElEKCk7CisgICAgQVNTRVJUKCFtX3NlcnZl
clJlcXVlc3RzLmNvbnRhaW5zKHJlcXVlc3RJRCkpOworICAgIG1fc2VydmVyUmVxdWVzdHMuYWRk
KHJlcXVlc3RJRCwgc2VydmVyUmVxdWVzdC5yZWxlYXNlKCkpOworCisgICAgTE9HKElEQiwgIldl
YlByb2Nlc3MgZ2V0IHJlcXVlc3QgSUQgJWxsdSIsIHJlcXVlc3RJRCk7CisKKyAgICBBU1NFUlQo
b3BlcmF0aW9uLmtleVJhbmdlKCkpOworCisgICAgc2VuZChNZXNzYWdlczo6RGF0YWJhc2VQcm9j
ZXNzSURCQ29ubmVjdGlvbjo6R2V0UmVjb3JkKHJlcXVlc3RJRCwgdHJhbnNhY3Rpb24uaWQoKSwg
b3BlcmF0aW9uLm9iamVjdFN0b3JlSUQoKSwgb3BlcmF0aW9uLmluZGV4SUQoKSwgb3BlcmF0aW9u
LmtleVJhbmdlKCksIHN0YXRpY19jYXN0PGludDY0X3Q+KG9wZXJhdGlvbi5jdXJzb3JUeXBlKCkp
KSk7CiB9CiAKIHZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6cHV0KElEQlRyYW5zYWN0aW9u
QmFja2VuZCYgdHJhbnNhY3Rpb24sIGNvbnN0IFB1dE9wZXJhdGlvbiYgb3BlcmF0aW9uLCBzdGQ6
OmZ1bmN0aW9uPHZvaWQoUGFzc1JlZlB0cjxJREJLZXk+LCBQYXNzUmVmUHRyPElEQkRhdGFiYXNl
RXJyb3I+KT4gY29tcGxldGlvbkNhbGxiYWNrKQpAQCAtMzQyLDYgKzM1OCwxOCBAQCB2b2lkIFdl
YklEQlNlcnZlckNvbm5lY3Rpb246OmRpZFB1dFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNv
bnN0IFdlYkNvcmU6OklEQgogICAgIHNlcnZlclJlcXVlc3QtPmNvbXBsZXRlUmVxdWVzdChyZXN1
bHRLZXkuaXNOdWxsID8gbnVsbHB0ciA6IHJlc3VsdEtleS5tYXliZUNyZWF0ZUlEQktleSgpLCBl
cnJvckNvZGUgPyBJREJEYXRhYmFzZUVycm9yOjpjcmVhdGUoZXJyb3JDb2RlLCBlcnJvck1lc3Nh
Z2UpIDogbnVsbHB0cik7CiB9CiAKK3ZvaWQgV2ViSURCU2VydmVyQ29ubmVjdGlvbjo6ZGlkR2V0
UmVjb3JkKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6SURCR2V0UmVzdWx0JiBn
ZXRSZXN1bHQsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
Cit7CisgICAgTE9HKElEQiwgIldlYlByb2Nlc3MgZGlkR2V0UmVjb3JkIHJlcXVlc3QgSUQgJWxs
dSAoZXJyb3IgLSAlcykiLCByZXF1ZXN0SUQsIGVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsK
KworICAgIFJlZlB0cjxBc3luY1JlcXVlc3Q+IHNlcnZlclJlcXVlc3QgPSBtX3NlcnZlclJlcXVl
c3RzLnRha2UocmVxdWVzdElEKTsKKworICAgIGlmICghc2VydmVyUmVxdWVzdCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc2VydmVyUmVxdWVzdC0+Y29tcGxldGVSZXF1ZXN0KGdldFJlc3VsdCwg
ZXJyb3JDb2RlID8gSURCRGF0YWJhc2VFcnJvcjo6Y3JlYXRlKGVycm9yQ29kZSwgZXJyb3JNZXNz
YWdlKSA6IG51bGxwdHIpOworfQorCiB2b2lkIFdlYklEQlNlcnZlckNvbm5lY3Rpb246Om9wZW5D
dXJzb3IoSURCVHJhbnNhY3Rpb25CYWNrZW5kJiwgY29uc3QgT3BlbkN1cnNvck9wZXJhdGlvbiYs
IHN0ZDo6ZnVuY3Rpb248dm9pZChQYXNzUmVmUHRyPElEQkRhdGFiYXNlRXJyb3I+KT4gY29tcGxl
dGlvbkNhbGxiYWNrKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvRGF0YWJhc2VzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXJDb25uZWN0
aW9uLmgKaW5kZXggNjlhNTQzZS4uNDRkYTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9EYXRhYmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURC
U2VydmVyQ29ubmVjdGlvbi5oCkBAIC0xMDcsNiArMTA3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRpZENyZWF0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBzdWNjZXNzKTsK
ICAgICB2b2lkIGRpZERlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IHJlcXVlc3RJRCwgYm9vbCBz
dWNjZXNzKTsKICAgICB2b2lkIGRpZFB1dFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0
IFdlYkNvcmU6OklEQktleURhdGEmLCB1aW50MzJfdCBlcnJvckNvZGUsIGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZEdldFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OklEQkdldFJlc3VsdCYsIHVpbnQzMl90IGVycm9yQ29kZSwgY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpOwogCiAgICAgdWludDY0X3QgbV9zZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9EYXRh
YmFzZXMvSW5kZXhlZERCL1dlYklEQlNlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29u
bmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCBiMGJhMTA4Li5iOWY4OGI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0RhdGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVy
Q29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0Rh
dGFiYXNlcy9JbmRleGVkREIvV2ViSURCU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAt
MzUsNiArMzUsNyBAQCBtZXNzYWdlcyAtPiBXZWJJREJTZXJ2ZXJDb25uZWN0aW9uIExlZ2FjeVJl
Y2VpdmVyIHsKICAgICBEaWRDcmVhdGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQsIGJv
b2wgc3VjY2VzcykKICAgICBEaWREZWxldGVPYmplY3RTdG9yZSh1aW50NjRfdCByZXF1ZXN0SUQs
IGJvb2wgc3VjY2VzcykKICAgICBEaWRQdXRSZWNvcmQodWludDY0X3QgcmVxdWVzdElELCBXZWJD
b3JlOjpJREJLZXlEYXRhIHJlc3VsdEtleSwgdWludDMyX3QgZXJyb3JDb2RlLCBTdHJpbmcgZXJy
b3JNZXNzYWdlKQorICAgIERpZEdldFJlY29yZCh1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6
OklEQkdldFJlc3VsdCBnZXRSZXN1bHQsIHVpbnQzMl90IGVycm9yQ29kZSwgU3RyaW5nIGVycm9y
TWVzc2FnZSkKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKSAmJiBFTkFC
TEUoREFUQUJBU0VfUFJPQ0VTUykK
</data>
<flag name="review"
          id="245996"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>